Shubham Sh.full-stack developer

← 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
CanteenQ on two phones: the menu with prices, and an order marked ready with token 47 at counter 2

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 CanteenQ kitchen screen: paid orders in columns, the oldest first, with a Ready button on each
The kitchen screen: paid orders, oldest first, one tap when it's ready.

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.”
A third-year student

What changed

1,200students use itout of about 1,800 on campus
6 minlunch queuedown from 25
₹0to runon free tiers, apart from UPI fees

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.