No description
- TypeScript 90.6%
- Shell 5.8%
- CSS 1.8%
- Dockerfile 1%
- JavaScript 0.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Lens social captions and model reasoning were landing in item_name; score and sanitize titles so only product-like names are kept, otherwise fall back to vision with a naming-only prompt. Co-authored-by: Cursor <[email protected]> |
||
| docs | ||
| jenkins | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Jenkinsfile | ||
| next.config.mjs | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| README.md | ||
| sentry.client.config.ts | ||
| sentry.edge.config.ts | ||
| sentry.server.config.ts | ||
| tailwind.config.ts | ||
| tsconfig.json | ||
| VERSION | ||
Estate Inventory Scanner
PWA that photographs tools, identifies them via Estate OpenWebUI/Ollama vision,
creates ERPNext Items (Household, Maintain Stock), and appends lines to a
draft Stock Reconciliation (default MAT-RECO-2026-00001 / SmallShedSR1 - TAE).
Secrets (Authentik client secret, ERPNext API key, OpenWebUI key) live only in Coolify env — never in the phone app.
Flow
- Authentik login
- Settings: warehouse + draft Stock Reconciliation
- Scan photo → AI returns item name, item code, avg market price
- You confirm qty (and optionally tweak fields) → Commit
- Server creates ERPNext Item (if new) and appends draft recon line — does not submit the recon
Local
cp .env.example .env
# fill secrets; ALLOW_DEV_LOGIN=true for local-only credentials provider
npm install
npm test
npm run dev
Coolify
Compose service scanner listens on 3000. Assign domain with port:
https://scanner.aexoradao.com:3000
Set env from .env.example. Deploy once after Authentik app + env are ready.
API
| Route | Auth | Role |
|---|---|---|
GET /api/health |
no | liveness |
GET/PUT /api/settings |
yes | defaults |
POST /api/identify |
yes | vision → suggestion |
POST /api/commit |
yes | Item + draft recon line |
GET /api/recon/summary |
yes | draft totals |
Jenkins
Job name Scanner. scripts/setup_jenkins_job.sh creates/updates from
jenkins/scanner-job.xml. Publish gate reads ./VERSION.