Skip to content
All work
Real-timeProduction system

Scan2Serve: QR Ordering & POS

Scan-to-order and billing for restaurants, with no app install for diners.

Role
Backend & product engineer, end to end
Year
2023
Timeline
~8 weeks
DjangoWebSocketsPostgreSQLNext.jsAWSDocker
01The situation

Restaurants were losing time and orders to paper tickets, manual billing and third-party ordering apps that took a cut of every sale. They wanted diners to scan, order and pay from their own phones, and the kitchen to see it instantly.

02The constraint

It had to be multi-tenant across many restaurants, work with zero app install for diners, and push order updates to the kitchen and waiters in real time, all while getting GST, discounts and split bills exactly right.

03The decisions

Built the order pipeline on WebSockets.

Instead of Polling the server for order status.

Why: Kitchens and waiters need updates the instant an order changes; WebSockets kept every screen live without hammering the server.

Designed per-restaurant tenancy with owner / manager / staff RBAC.

Instead of A separate deployment per restaurant.

Why: One multi-tenant system meant a new restaurant could be provisioned in minutes and maintained once, not N times.

Isolated billing (GST, splits, merges) in its own engine.

Instead of Bolting tax logic onto the order model.

Why: Billing correctness is the one thing a restaurant can't forgive; isolating it made taxes, discounts and split/merged bills auditable.

04What I built
  • Table QR → digital menu → order → kitchen ticket → bill
  • Real-time kitchen & waiter dashboards (WebSockets)
  • Billing engine: GST, discounts, split & merged bills, receipts
  • Per-restaurant tenancy, RBAC, menu & table/QR provisioning
  • Daily sales & item-level reporting
  • Dockerised AWS deploy with CI/CD
05The result
0app installs required for diners
Real-timetickets to kitchen & waiters the moment an order changes
Multi-tenantnew restaurants provisioned in minutes
Hemant Manglani

Hemant Manglani

Ahmedabad, India

Have a product that has to work? Let’s talk.

A 20-minute call, no pitch. We work out whether this is a real problem worth solving, and if I’m not the right person, I’ll tell you.

Every message answered within one business day