ClothTrends
Inventory and billing for a cloth shop: point of sale at the counter, stock tracked by supplier lot, and labels and receipts printed over Bluetooth.
Source is private for now.
scan -> bill -> print receipt stock -> label -> print label
What it does
A shop runs billing from a barcode scanner: scan an item, build the bill, print the receipt. Stock is tracked by supplier lot, labels are printed with CODE_128 barcodes, and past bills are searchable.
How it is built
- A Next.js progressive web app on Supabase: Postgres, Auth, and row level security for multi-tenancy.
- A Kotlin Android app wraps the web app in a WebView and bridges two Bluetooth thermal printers, one for receipts (ESC/POS) and one for labels (TSPL), plus the native camera scanner.
- An earlier Express and CouchDB backend came first and was replaced by the Supabase version.
What I cared about
- Software that works at a busy counter: scanning, billing and printing without friction.
- Isolation between shops enforced in the database through row level security, not only in application code.
Stack: Next.js, Supabase (Postgres, Auth, RLS), Kotlin, Android WebView.