liam@portfolio:~ cat case-study.md
$ stack
01 // problem
Parents and landlords were tracking multiple rental rooms with spreadsheets, manual utility math, and ad-hoc invoices. Nothing was mobile-first or fully in Vietnamese, and re-logging in every week added friction. Meter readings lived in camera rolls or paper notes; rent and utility totals were recalculated by hand each month. When a tenant asked for a breakdown, there was no single source of truth — only scattered messages and half-finished spreadsheets.
02 // solution
Built EasyBill as a SvelteKit app with a revenue dashboard, room payment status, AI-assisted meter capture, automated billing, PDF/share invoices, multi-merchant SQLite isolation, and one-year PIN sessions tuned for non-technical users. Landlords see monthly collection at a glance, filter rooms by paid or vacant, and generate itemized bills from configured rates. Vision OCR on meter photos reduces typos; Kamal deploys keep the stack small enough to run on a single VPS. The outcome is fewer billing mistakes and less time spent reconciling rooms each cycle.
$ screenshots
Monthly collection hero with room status filters Room grid with paid, unpaid, and vacant states Automated bill breakdown ready to export New reading entry with camera-assisted capture Per-room utility rates and fee configuration