← All work01 · College
CanteenQ: from a 25-minute queue to 6
How a student-built ordering app shortened the lunch queue for 1,200 students, and what the 1 pm rush taught me about databases.
- Role
- Built it end to end
- Time
- Aug 2024 – now
- Used by
- 1,200 students
- Tools
- React, Node.js, PostgreSQL, Razorpay

The problem
Our canteen has one counter. Between 12:50 and 1:20 almost everyone wants lunch, so the queue reached 25 minutes and people skipped meals to get back to class. The canteen owner was losing sales too: students saw the line and left.
What I built
Order from class. A mobile web app, no install: pick from today's menu, pay by UPI, get a token number.
A screen for the kitchen. A cheap Android tablet shows orders in the order they were paid, and one tap marks an order ready.
A message when it's ready. The token turns green on the student's phone, so they walk up only when the food is waiting.

The hard part: 1 pm
On the first Monday, 300 orders came in within fifteen minutes and two students got the same token. I moved token numbers into the database with a sequence, so each paid order gets the next number exactly once, and I tested the rush with a script that places 500 orders at the same time.
“I order during the last lecture and pick it up on the way out. I haven't stood in that line since August.”
What changed
What I learned
Test the busiest five minutes, not the average day. And talk to the people behind the counter: the kitchen staff asked for big buttons and no sound, and they were right.