Case study 12 / 26
Restro POS
A multi-tenant restaurant platform: POS checkout, real-time kitchen display, recipe-based inventory, loyalty, shifts and analytics.
- Status
- Working build
- Domain
- web
- Source of claims
- Private repository README (reviewed). Source and deployment are not public.
A NestJS and Next.js monorepo covering the whole floor — POS, tables, kitchen display over WebSockets, QR self-ordering — and the back office: recipe-based stock deduction, purchase orders, loyalty points, employee shifts, expenses and reporting.
01/The problem
A restaurant's front of house, kitchen and stock room all touch the same order. When a dish is sold, the kitchen should see it instantly, the ingredients should leave inventory, the customer should earn points — and none of that should leak between restaurants on a shared platform.
02/The system
A NestJS and Next.js monorepo covering the whole floor — POS, tables, kitchen display over WebSockets, QR self-ordering — and the back office: recipe-based stock deduction, purchase orders, loyalty points, employee shifts, expenses and reporting.
03/Scope
- 01POS checkout with menu variants and modifiers, combos, split bills (equal, by item or custom), payments and refunds.
- 02Kitchen display and table management updated in real time over Socket.IO.
- 03Inventory with recipe-based stock deduction, suppliers and purchase orders.
- 04Customer loyalty, employee shifts with cash reconciliation, expenses and real-time analytics.
- 05QR self-ordering.
- 06Eight seeded roles from owner to chef, with permission guards on the API.
04/Engineering
Order completion is one transaction
Completing an order deducts recipe ingredients and awards loyalty points atomically — the two can never disagree.
Tenant scoping as a convention
Tenant-scoped queries, guards and transactions follow written backend conventions, and tenant isolation has its own tests.
Real-time without polling
Kitchen and floor views subscribe over Socket.IO, so a ticket reaches the kitchen as it is fired.
05/Interface
Interface screenshots of this commercial product are not public. The visual above is an abstract representation of its modules — not the product itself.
06/Tech stack
- NestJS 10
- Prisma 5
- PostgreSQL 16
- Socket.IO
- argon2
- Next.js 15
- React 19
- TanStack Query
- Zustand
- Recharts
- Redis
- Docker Compose
07/Result
Verified outcomes
- 48 unit tests across 9 suites: totals, discounts and tax, split-bill maths, payments and refunds, order completion, tenant isolation, permission guards, shift reconciliation.
- A Playwright suite drives login → POS → kitchen → payment → receipt → reports through the real UI.
08/Links
Private commercial codebase — no public links.
Next case study
Sita Shree →