Bhok Lagyo
A restaurant POS application covering tenant setup, order and item management, takeaway orders, and batched receipt printing with multiple copies.
Overview
Bhok Lagyo is a restaurant-focused point-of-sale application built to simplify how orders are taken, corrected and printed. It handles restaurant login, tenant setup per restaurant, order and order-item management, takeaway orders, and the receipt printing workflow including batched prints and multiple copies.
The printing workflow is the part that makes it business software rather than a demo: real restaurants need several copies of a bill at once — for the kitchen, for the customer and for the register — and they need to reprint when something is wrong.
Problem
Restaurants running on paper or a basic register lose orders, mis-charge items and produce bills that are slow to produce during service.
Printing several copies of the same bill reliably is genuinely awkward. Kitchen copy, customer copy and register copy need to come out together and in the right order.
Each restaurant operates as its own business. Menu, staff and order data cannot bleed between tenants.
Mistakes at the counter must be fixable — a wrong or unwanted order item should be removable without corrupting the order or its history.
Solution
A Flutter POS client driving an API-driven restaurant workflow, so ordering behaviour is defined on the server and every action is recorded consistently.
Tenant-aware setup: each restaurant configures its own domain and context after login, and its data stays separate from every other restaurant's.
Order and order-item management with the ability to delete an item from an order cleanly.
A print batch workflow that issues multiple receipt copies in one action, supporting takeaway orders as well as in-house service.
Features
Each feature is labelled by its current state: Implemented means it is built and working, Integrated means it is connected to hardware or an external service, and In Development means it is actively being built and is not yet complete.
Restaurant login
ImplementedEach restaurant signs in to its own isolated context.
Tenant and domain setup
ImplementedPer-restaurant configuration so data stays separated between tenants.
Order management
ImplementedOrders created, tracked and managed through API-backed workflows.
Order item management
ImplementedItems added, adjusted and removed from an order.
Order item deletion
ImplementedRemoving an incorrect item updates the order and its totals without leaving inconsistent state.
Takeaway orders
ImplementedTakeaway orders handled as a distinct flow from in-house service.
Receipt printing
IntegratedReceipt output driven through device printing integration.
Print batch handling and multiple copies
ImplementedSeveral copies of a receipt printed in one batch, so kitchen, customer and register copies stay aligned.
Technology
Application
- Flutter
- Dart
- Mobile POS interface
Backend
- REST API
- Backend integration
- Restaurant management APIs
Operations
- Receipt printing
- Print batching
- Multi-tenant data
Architecture
A four-step operational path: the POS client talks to a restaurant API, which manages orders, which then drives the printing and receipt workflow.
Layers
Flutter POS
Counter interface for taking and correcting orders
Restaurant API
Tenant-scoped order, item and restaurant management endpoints
Order Management
Order lifecycle, item state and totals
Printing / Receipt
Batch printing and multiple receipt copies
Integrations
- Receipt printers
- Restaurant management APIs
Challenges
Printing batches that stay consistent
A batch has to print several copies of one bill together. If a batch fails halfway the restaurant gets mismatched copies, so the batch is treated as a unit rather than a set of independent print jobs.
Correcting orders without losing history
Deleting an item at the counter has to update the bill immediately while keeping the order record coherent for reporting.
Tenant isolation in business data
Two restaurants must never see each other's menus or orders. Tenant scoping is applied in the API rather than trusted to the client.
My Contribution
- Designed the tenant-aware data and configuration model for the restaurant POS.
- Built the Flutter POS client and its API integration layer.
- Developed the restaurant management APIs for orders, order items and restaurant setup.
- Implemented order item deletion with correct recalculation of order totals.
- Implemented takeaway orders and the batched multi-copy receipt printing workflow.
Results / Current Status
Ordering, item correction and receipt output are handled in one API-driven workflow instead of paper and manual arithmetic.
Multiple receipt copies print as a single batch, matching how a restaurant actually needs them.
Restaurant data is isolated per tenant, so separate businesses do not see each other's records.
The project is in active development.