Built to order

QR Code Digital Menu and Table Ordering System

This project digitizes the restaurant table: each table's QR code opens a no-install menu bound to that table, diners order straight to the kitchen display, and the table bill with GST stays current for UPI settlement. The kitchen works from live tickets with elapsed-time urgency highlighting, and sold-out dishes vanish from every menu in one tap. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.

QR Code Digital Menu and Table Ordering System — project thumbnail preview
More project photos (2)

The problem

Restaurant tables still depend on printed menus — expensive to reprint, impossible to update for sold-out dishes — and on waiters ferrying orders to the kitchen, where paper tickets get lost and priorities blur at rush hour. Diners wait to be noticed; kitchens work from shouted instructions. This project replaces paper with a QR-bound digital flow: scanning the table code opens a mobile-first menu (a progressive web app, no install) already scoped to that table; diners browse with photos and prices, build a cart and send the order directly to the kitchen display. The kitchen sees live tickets with running timers and urgency highlighting, fires and completes them, and the table bill aggregates every order with GST for UPI or cash settlement. Menu updates propagate to all tables instantly — no reprints, ever.

How it works

  1. A diner scans the table QR; the menu opens already scoped to that table's session.
  2. They browse categories, add dishes to the cart and tap Send to Kitchen.
  3. The order lands on the kitchen display as a live ticket with a running timer.
  4. The kitchen starts preparation and marks items done; the captain's view tracks status.
  5. Sold-out dishes are flagged in one tap and disappear from all menus instantly.
  6. The table bill aggregates every order with GST; the diner pays via UPI or settles cash, closing the session.

Tech stack:

  • Angular 17 progressive web app
  • Node.js + Express REST API
  • MongoDB (menu, tables, orders, bills)
  • Socket.io for live kitchen tickets
  • QR code generation per table
  • GST-inclusive billing module
  • Token-based table sessions
Parameter Value
Client requirement Any smartphone browser (no install)
Kitchen display Any tablet/TV with a browser
Ticket latency Sub-second push on local network (design target)
Table session QR-bound; closes on bill settlement
GST 5% configurable per category
Deployment Self-hosted; works on restaurant LAN

Project features

  • [Per-table QR codes] System-generated QR standees binding each menu session to its table number.
  • [No-install digital menu] Mobile-first PWA with categories, photos, veg/non-veg marks, prices and sold-out flags — opens in the browser.
  • [Order-to-kitchen flow] Table cart sends orders directly to the kitchen display over WebSockets; no waiter needed.
  • [Kitchen display system] Live tickets with elapsed-time urgency highlighting, start/complete states and one-tap sold-out flags.
  • [Table billing] Open orders aggregate into a GST bill per table, payable by UPI, card or cash.
  • [Instant menu updates] Price, item and availability changes reflect on every table immediately.
  • [Admin panel] Menu management, table/QR management and sales reports.

What is included

  • Complete source code (Angular PWA, Express API, KDS screen, seed menu)
  • QR generation and table-session documentation
  • Setup guide (local run, QR printing, LAN deployment notes)
  • Project report PDF (background, real-time ticket design, PWA approach, testing notes)
  • PPT presentation for final review
  • Viva Q&A preparation document (PWAs, WebSockets, QR flows, restaurant domain)

Limitations & prerequisites

  • Diners need a smartphone with a camera and internet/data to scan and order.
  • UPI collection uses the restaurant's own QR/account; the system records the settlement.
  • The demo runs on one property; multi-branch management is future scope.
  • Kitchen display needs a dedicated screen; the build does not include hardware.
  • Printer integration for kitchen tickets is optional and not included.
  • Offline operation is limited — the PWA needs connectivity to send orders.

Frequently Asked Questions

Does the diner need to install an app?

No — the QR opens a progressive web app directly in the phone browser, already tied to the table.

How does the kitchen know an order arrived?

Orders push over WebSockets to the kitchen display instantly as new tickets with running timers; ageing tickets highlight in red.

What if a dish sells out mid-service?

The kitchen flags it in one tap and it disappears from every table's menu immediately.

How is the bill split?

The bill aggregates all orders on the table session; settlement can be full-table or per-order as configured.

Can the menu show photos?

Yes — menu items support photos, and the admin uploads them from the panel.

Is this project suitable for a final-year project?

Yes — for Computer Science, IT and related programs. It demonstrates PWA development, real-time systems, QR-based session binding and hospitality workflows. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.

Components & software requirements
  • Angular 17 progressive web app
  • Node.js + Express REST API
  • MongoDB (menu, tables, orders, bills)
  • Socket.io for live kitchen tickets
  • QR code generation per table
  • GST-inclusive billing module
  • Token-based table sessions
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download abstract (PDF)

Related guides

All guides
Technical illustration of a cloud server pushing event envelopes outward to web application endpoints for payments, dashboards and chat.Web development and IoT students who have built a REST API or an ESP32 project and now need external services (payments, GitHub, messaging) to notify their app when things happen

Webhooks Explained: Receive Data from Payments, GitHub and IoT

A webhook lets a service call your server the moment an event happens — payments, code pushes, form submissions. This guide explains the event anatomy, HMAC signature verification, the fast-acknowledge reliability pattern, local testing, and how webhooks compare with polling, WebSockets and SSE.

Read guide
Illustration of Docker Compose orchestrating a full-stack application with frontend, API, database, and cache containers connected in one network.B.E./B.Tech Computer Science and IT students whose full-stack projects need a frontend, backend, and database running together and are tired of setup instructions that only work

Docker Compose for Full-Stack Projects

Stop juggling four terminals and setup docs that only work on your laptop. This guide builds a complete Docker Compose stack — frontend, API, database, cache — with annotated config, healthchecks, persistent volumes, and a dev/prod split that survives demo day.

Read guide
Illustration of a web page with a comment section: a shield filtering user input so scripts are neutralized into harmless text before rendering in visitors' browsers.B.E./B.Tech Computer Science, IT and Web Development students building web applications with user-generated content: comments, profiles, forums, dashboards

XSS Attacks Explained for Students

Cross-site scripting turns your comment section into code running in visitors' browsers. Learn the three XSS types conceptually, why browsers execute injected input, what it enables, and the defender's toolkit: output encoding, Content Security Policy, safe DOM handling, and hardened cookies. No payloads — prevention only.

Read guide
Get a quotation