WHAT WE BUILT
This project was developed during a LIA (Learning in Work) experience, where we designed and implemented POS system from scratch, covering architecture, payment flows, and core system behavior.
We started with on-device payments using a terminal and later expanded into off-device flows to support more flexible business scenarios. The payment layer is built on a repository abstraction over an event-driven SDK, providing clean suspending operations, predictable transaction handling, and stable UI integration.
The system supports advanced flows such as split payments and refunds
Beyond payments, we integrated barcode scanning via the terminal SDK and external printing via Epson ePOS. On-device flows use terminal capabilities combined with our own logic, while off-device flows required additional custom implementations.
We implemented our own receipt system instead of relying on terminal-generated receipts. It builds receipts from real transaction data, including products, variants, discounts, VAT, and payment details, and supports bank slips, barcodes, branding, and refund receipts.
Product and order management is powered by a structured Room database, enabling reliable handling of variants, pricing logic, and full order lifecycle tracking.