Case Study · Client Project
Spice Garden — Restaurant Management Platform
A production system built for a real restaurant, from first request to a running kitchen.
The problem
A friend running a restaurant needed to move off paper order slips and manual billing. The ask: real-time order tracking from table to kitchen, GST-compliant billing, and a way to see how the business was actually performing — all for a live restaurant, not a demo.
What I built
- A Kitchen Display System and waiter-facing orders panel, with orders moving in real time via Socket.io as soon as they're placed.
- GST-aware billing built to match how the restaurant actually invoices customers.
- Payment analytics and operational dashboards so the owner can see sales and order trends without digging through receipts.
- A PostgreSQL (Supabase) data layer with a Node.js/Express API and a React frontend, deployed on Railway (backend) and Vercel (frontend).
Problems I had to actually debug in production
- Railway–Supabase connectivity: intermittent connection failures traced to an IPv6/IPv4 mismatch between the two platforms — fixed by forcing the correct connection mode.
- CORS and QR-code ordering flow: customers scan a table QR code to order directly, which meant getting cross-origin requests and dynamic table sessions working reliably from phones on restaurant Wi-Fi.
- Timezone bugs across the stack: order timestamps were drifting because SQL, the frontend's date handling, and node-postgres were each interpreting time differently — normalized all three to IST consistently.
Why it matters
This wasn't a portfolio dataset or a tutorial clone — it's software a real restaurant runs on, which meant the bugs were real too: production connectivity failures, real customers hitting the QR ordering flow, and timestamps that had to be correct for actual billing. Debugging those end-to-end, across infrastructure, network, and data layers, is the part that doesn't show up in a screenshot.
This is a live client system, so the source isn't public and there's no open demo login — this page is a written walkthrough instead. Happy to talk through the architecture or any of the specific bugs in more detail.
← Back to portfolio