Skip the Queue, Not the Food!
A smart college canteen ordering system that eliminates waiting in lines. Students order from their phones and receive WhatsApp notifications when their food is ready.
College canteen queues waste valuable time between classes. Students spend 15-20 minutes just waiting to order and collect food, leading to:
- Missed class time
- Crowded, chaotic canteens
- Frustrated students and vendors
- Inefficient order management
QueueLess digitizes the entire canteen ordering experience:
- Students browse stalls, add items to cart, and place orders from anywhere on campus
- Vendors receive orders on their dashboard and manage preparation status
- WhatsApp notifications alert students when their food is ready
- Token system ensures quick, organized pickup
- Live seat availability shows real-time canteen occupancy using computer vision
Result: No more standing in lines. Order from class, library, or anywhere. Just walk up and collect when notified!
- ๐ช Browse all canteen stalls with ratings & wait times
- ๐ View detailed menus with prices and availability
- ๐ Add items to cart with quantity management
- ๐ฑ Enter WhatsApp number for notifications
- ๐ซ Receive unique token number for pickup
- ๐ Real-time order status tracking
- ๐ช Live seat availability - see how crowded the canteen is before going!
- ๐ฆ View all incoming orders in real-time
- ๐ Update order status (Pending โ Preparing โ Ready)
- ๐ฑ One-click WhatsApp notification to customers
- ๐ Order statistics and pending count badges
- โ Mark orders as completed after pickup
- ๐ Automatic notifications when order is ready
- ๐ Rich messages with token number and stall name
- โ Real WhatsApp messages via TextMeBot API
- ๐ท Uses phone camera as wireless IP camera
- ๐ค YOLOv8 AI model detects people in real-time
- ๐ Shows occupied/available seats with color-coded status
- ๐ข Green (<50%) | ๐ก Yellow (<80%) | ๐ด Red (>80%)
- โก Updates every 3 seconds on the frontend
| Technology | Purpose |
|---|---|
| React 18 | UI library for building interactive interfaces |
| Vite | Fast build tool and development server |
| React Router v6 | Client-side routing and navigation |
| Tailwind CSS | Utility-first CSS framework for styling |
| Lucide React | Beautiful, consistent icon library |
| React Hot Toast | Elegant toast notifications |
| Axios | HTTP client for API requests |
| Technology | Purpose |
|---|---|
| Node.js | JavaScript runtime for server |
| Express.js | Minimal web framework for API |
| CORS | Cross-origin resource sharing |
| Axios | HTTP client for WhatsApp API |
| dotenv | Environment variable management |
| Technology | Purpose |
|---|---|
| Python 3 | Runtime for detection service |
| YOLOv8 | AI model for person detection |
| OpenCV | Video capture and image processing |
| Flask | API server for seat count endpoint |
| IP Webcam (Android) | Turns phone into wireless camera |
| Service | Purpose |
|---|---|
| TextMeBot API | WhatsApp message delivery |
queueless/
โโโ frontend/
โ โโโ src/
โ โ โโโ components/
โ โ โ โโโ Navbar.jsx
โ โ โ โโโ StallCard.jsx
โ โ โ โโโ MenuItem.jsx
โ โ โ โโโ OrderCard.jsx
โ โ โ โโโ StatusBadge.jsx
โ โ โ โโโ SeatAvailability.jsx # NEW!
โ โ โโโ pages/
โ โ โ โโโ LandingPage.jsx
โ โ โ โโโ Home.jsx
โ โ โ โโโ StallMenu.jsx
โ โ โ โโโ Checkout.jsx
โ โ โ โโโ OrderStatus.jsx
โ โ โ โโโ VendorHome.jsx
โ โ โ โโโ VendorDashboard.jsx
โ โ โโโ context/
โ โ โ โโโ CartContext.jsx
โ โ โ โโโ OrderContext.jsx
โ โ โโโ data/
โ โ โ โโโ stalls.js
โ โ โโโ utils/
โ โ โ โโโ whatsapp.js
โ โ โโโ App.jsx
โ โ โโโ main.jsx
โ โโโ package.json
โ
โโโ backend/
โ โโโ server.js
โ โโโ .env
โ โโโ package.json
โ
โโโ camera-service/ # NEW!
โโโ detector.py # YOLOv8 detection + Flask API
โโโ requirements.txt
โโโ .env # Camera URL & capacity config
- Node.js 18+ installed
- Python 3.10+ installed
- npm or yarn
- WhatsApp account (for TextMeBot setup)
- Android phone (for camera service)
git clone https://github.com/yourusername/queueless.git
cd queuelesscd frontend
npm install
npm run devcd backend
npm installCreate .env file:
PORT=5000
TEXTMEBOT_API_KEY=your_api_key_hereStart server:
npm run dev- Go to textmebot.com
- Get your API key
- Connect your WhatsApp by scanning QR code
- Add API key to backend
.env
- Install IP Webcam app from Play Store
- Open app โ Start Server
- Note the IP address shown (e.g.,
http://192.168.1.5:8080)
cd camera-service
pip install -r requirements.txtCreate .env file:
CAMERA_URL=http://YOUR_PHONE_IP:8080/video
CANTEEN_CAPACITY=200Start detector:
python detector.pyNote: Your laptop and phone must be on the same network (use phone hotspot for best results)
โโโโโโโโโโโโโโโโโโโ WiFi/Hotspot โโโโโโโโโโโโโโโโโโโ
โ Phone Camera โ โโโโโโโโโโโโโโโโโโโบ โ Python Script โ
โ (IP Webcam) โ Video Stream โ (detector.py) โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโ
โ
YOLOv8 Detection
โ
โโโโโโโโโโผโโโโโโโโโ
โ Flask API โ
โ localhost:5001 โ
โโโโโโโโโโฌโโโโโโโโโ
โ
GET /api/seat-count
โ
โโโโโโโโโโผโโโโโโโโโ
โ React Frontend โ
โ (polls every 3s)โ
โโโโโโโโโโโโโโโโโโโ
{
"count": 45,
"capacity": 200,
"available": 155,
"occupancy_percent": 22.5
}Landing Page โ Select "I'm Hungry"
โ
Browse Stalls โ Check seat availability ๐ช
โ
View Menu โ Add items to cart
โ
Checkout โ Enter name & WhatsApp number
โ
Order Confirmed โ Receive token number
โ
Wait anywhere โ Get WhatsApp when ready
โ
Collect food โ Show token at counter
Landing Page โ Select "I'm a Vendor"
โ
Select Your Stall โ View dashboard
โ
See Incoming Orders โ Click "Start Preparing"
โ
Food Ready โ Click "Mark Ready & Notify"
โ
WhatsApp sent to customer automatically
โ
Customer collects โ Mark as "Completed"
Choose your role - Customer or Vendor
View all canteen stalls with ratings, wait times, and live seat availability
Add items, manage quantities, view cart total
Track your order with token number
Manage all orders, update status, send notifications
- User authentication (student ID login)
- Payment integration (UPI, cards)
- Order history for customers
- Analytics dashboard for vendors
- Push notifications (PWA)
- Menu management for vendors
- Peak hour predictions
- Multi-canteen support
- Multiple camera support for larger canteens
- Historical occupancy trends
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Harpreet Kaur
- TextMeBot for WhatsApp API
- Ultralytics for YOLOv8
- Unsplash for food images
- Lucide for beautiful icons
- All the hungry college students who inspired this project!
Made with โค๏ธ and lots of โ
Skip the Queue, Not the Food!