All projects

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