Dinewise — Restaurant Online Ordering
Dinewise: online ordering, table bookings and a live kitchen screen for a restaurant. Customers order from their phones and pay online or in cash; the kitchen works from a tablet, and every order updates live.

See it running
The problem
A restaurant’s busiest hour is when software is most likely to fail it: a dozen people choose 8pm at once, a customer double-taps “Place order” with a one-use coupon, a payment confirmation arrives twice or after the order lapsed. Customers order from mid-range phones on mobile data, and the kitchen needs to see orders the moment they land.
How it’s built
Every price, discount and tax is worked out on the server from the current menu; the phone only sends what was chosen. Checkout locks the customer and then the kitchen slot, always in that order, so slots never overfill and coupons cannot be reused. Razorpay payments apply exactly once from either the Checkout callback or the signed webhook, and a late payment is refunded automatically. Order changes travel from PostgreSQL to the kitchen tablet and the customer’s phone as live events. Cash on delivery works with no payment account at all. The same server also publishes a JSON API, which the Dinewise mobile app is built on.
What it does
- Twelve customers choosing one slot at once: exactly eight orders, four clear messages
- Payments applied once whichever confirmation arrives first, late ones refunded
- Live order tracking from kitchen tablet to customer phone
- Table bookings that can never seat two parties at one table
- A full order, cooked and delivered, tested on an Android phone in CI
Learn to build software like this
The courses teach the same craft — from the basics to a real, running project.







