The first of seven planned modules — from raw yarn to finished export. Each capability below is live in the demo.
Digital roll register. Bulk-register a truck of 24 rolls in one step, issue partial rolls to cutting or dyeing — over-issue is impossible, even with two supervisors clicking at once.
Every kilo in or out is an append-only entry with a running balance. Stock can't be typed over — only posted. Negative stock is rejected by the database itself.
Shift-by-shift loom and machine logs with picks, ends, gauge and grade. Logging a shift draws its yarn from the ledger atomically — all or nothing.
Track an LC from opening to port clearance to warehouse. Landed cost per meter is computed server-side and locked once the imported lot is valued.
Scan a roll's QR label to see its chain of custody: supplier or LC, the looms and operators that wove it, and every issue to the floor.
Seven deterministic rules — dead stock, yarn runway, port demurrage risk, loom quality drift — each alert showing the exact numbers that fired it. No AI guesswork.
Row-Level Security with FORCE on every table. A query with no WHERE clause still can't see another mill's rows — proven by a test that runs raw SQL.
Owner, manager, operator, accountant. The API enforces it; the UI only mirrors it. Switch roles in the demo and watch buttons — and permissions — change.
Row locks on stock movements, a strict ledger sequence, CHECK constraints, forward-only LC status. 42 backend tests, including a mutation-checked concurrency race.
Built against a written spec (SPEC-ERP.md) with CI on every push. FastAPI · SQLAlchemy 2 async · Next.js 15 · TypeScript strict.
Module 1
Fabric Mill
Complete
Module 2
CMT order lifecycle & auto-billing
Specced
Modules 3–5
BOM inventory, party ledgers, financials
Specced
SaaS
Billing: Stripe, JazzCash, EasyPaisa, Meezan
Specced