QIMS
A multi-tenant inventory & point-of-sale SaaS for retail. Built up from an open-source inventory base (MIT) into a commercial platform: one codebase serving many isolated stores — with multi-branch, POS (thermal receipts + PDF invoices), a Flutter cashier app, and an integration REST API. QMT's own product, live.
- Product
- QIMS (QMT's own product)
- Role
- Solo full-stack (web + mobile + API)
- Platform
- Web admin/POS · Android · iOS · REST API
- Core stack
- Laravel 12 · Livewire 3 · Flutter
One codebase, many isolated stores.
I transformed an open-source inventory base into a SaaS platform: per-tenant data isolation, super-admin & subscriptions, per-branch stock with inter-branch transfers, multi-unit / wholesale pricing, then a POS with thermal receipts & PDF invoices — and transactional services that auto-post the finance ledger (sales → income, purchases → expense).
- 32Business models
- 65DB migrations
- 42Controllers
- 133Commits (~7 wks)
The base inventory/POS module is derived from an MIT-licensed open-source project. API endpoints, credentials & tenant data are hidden for security.


What I built
- Multi-tenancy migration — per-tenant data isolation, a super-admin panel + activity log, a Plan/subscription model, and tenant-scoped caching & search (prevents data leaks between stores).
- Multi-branch — per-branch stock (
ProductBranchStock), inter-branch stock transfers, a branch switcher + all-branches mode, and per-branch receipt headers/footers. - Multi-unit & wholesale pricing — one product sold/bought in many units (pcs/strip/box) with a
conversion_factorand non-linear pricing; stock lives in a base unit, every transaction carriesquantity_in_base. - POS & documents — 58/80mm thermal receipt printing, auto-fit single-page PDF invoices (DomPDF), multiple payment methods, cashier shifts, customer wallet, and trade-in.
- Service architecture — a thin Controller/Livewire → Service → DTO pattern; transactional services lock rows (
lockForUpdate) and auto-post the finance ledger (sale → income, purchase → expense). - Flutter mobile app — a branch-aware cashier & receipt builder (Android/iOS) consuming the V1 REST API (Sanctum) with multi-unit support + fallback for older clients.
- API & integrations — a V1 REST API (Sanctum), with Bujang Kurir (super-admin panel) and Gerai (sales source-tagging + per-branch stock) integrations.
Outcome & impact
- A live/commercial SaaS product (founding-member) — one platform serving many fully isolated stores/tenants.
- Data stays consistent — every stock & money mutation goes through one row-locking transactional service, used identically by web and mobile.
- Full stack from one codebase — web admin/POS (Livewire) + mobile (Flutter) + REST API; 32 models, 65 migrations, 42 controllers, 133 commits in ~7 weeks.
Need an inventory/POS SaaS or a multi-branch cashier app?
I help design & build similar systems — web admin, POS, a mobile app, and the backend — from scratch or by extending what you already have. Scope & cost are clear upfront.