Skip to content
→ All work

Case study 09 / 26

DataItemize

One inventory engine for many businesses — hardware, electronics, jewellery, pharmacy, clothing, rentals — configured, not coded, on an immutable stock ledger.

Status
Working build
Domain
web
Source of claims
Private repository README (reviewed). Source and deployment are not public.

Items, item types, attribute definitions, variants, serials and batches cover every industry without per-industry tables. Purchasing, sales, POS, multi-currency, valuation, assets, rentals and repairs sit on a ledger the database itself refuses to rewrite.

01/The problem

Inventory software usually hard-codes an industry. A hardware store tracks serials, a jeweller tracks weight and purity, a clothing shop tracks size and colour — and all of them need to know why a stock number is what it is.

02/The system

Items, item types, attribute definitions, variants, serials and batches cover every industry without per-industry tables. Purchasing, sales, POS, multi-currency, valuation, assets, rentals and repairs sit on a ledger the database itself refuses to rewrite.

03/Scope

  1. 01A universal item engine — item types with tracking flags, attribute definitions, variants, serials and batches — with no industry-specific branches anywhere.
  2. 02Weighted average, FIFO, standard and specific valuation; FIFO/FEFO batch picking.
  3. 03Purchasing with approvals and goods receipts; sales, invoices with COGS capture, payments, returns and a POS with hold/resume and split tender.
  4. 04Company → businesses → branches → warehouses → locations, with RBAC, custom roles, plan limits and feature flags.
  5. 05Assets with depreciation, rentals with overlap checks and repair jobs that consume parts.

04/Engineering

Every number has a 'why'

Every change is a stock movement row and balances are a locked projection; the database refuses UPDATE and DELETE on the ledger and the audit log.

History is never rewritten

Every document snapshots its currency and exchange rate, so later rate changes never alter past totals.

05/Interface

Interface screenshots of this commercial product are not public. The visual above is an abstract representation of its modules — not the product itself.

06/Tech stack

  • FastAPI
  • Python 3.13
  • SQLAlchemy 2
  • Alembic
  • Next.js 16
  • React 19
  • TanStack Query
  • PostgreSQL
  • Redis

07/Result

Verified outcomes

  • 21 backend tests against real PostgreSQL: four industries end to end, tenant isolation, negative stock, duplicate serials, FEFO, multi-currency, 25 concurrent sales and DB-level immutability.

Known limitations

  • Offline POS sync is not complete — locally held carts exist, full offline sync does not.

08/Links

Private commercial codebase — no public links.

Next case study

MultiPaisa →