Inventory Management System
Ceylon Business Appliances · 2026
A system that tracks stock from purchase to machine for a vending-machine business. I designed and built it alone, starting with a clickable prototype to agree the workflow, then moving to Spring Boot and PostgreSQL.
By W.K.D. Kavishka, Flutter & Android Developer
What I built
- Append-only stock ledger with a full audit trail: balances come from movements and are never edited by hand.
- First-expiry-first-out picking, with pessimistic and optimistic locking so stock can't be booked twice.
- Multi-step approval workflow and role-based access.
- Spreadsheet and CSV import, server-side paging and reports.
- API types generated from the OpenAPI spec, Flyway migrations, CI on Bitbucket Pipelines and Docker Compose for local development.
- The first version was a Next.js prototype that kept all data in the browser (IndexedDB), so the client could try the workflow before the backend existed.
Tech
- Next.js
- React
- TypeScript
- TanStack Table
- Spring Boot
- Java
- PostgreSQL
- Flyway
- Docker
- Bitbucket Pipelines