Case Study
Canteen & Cafeteria Management
Mobile app · Flutter · Firebase

Timeline
Aug 2024 – Oct 2024
Tech Stack
Links
GitHub Repository ↗Overview
The Canteen & Cafeteria Management app streamlines how students and staff interact with the campus canteen. Instead of standing in long queues or filling out manual slips, users can browse the daily menu, place orders, track preparation status and view order history directly from their phones. The backend is powered by Firebase, allowing real-time updates for both customers and the kitchen staff.
Key Features
- Daily and weekly menu browsing with item categories and prices.
- Real-time ordering system with order status (Pending, In progress, Ready).
- Role-based views for students, staff, and kitchen/admins.
- Order history and quick re-order for frequently purchased items.
- Configurable canteen timings and automatic "closed" state.
Technical Highlights
- Implemented Firestore real-time listeners so that order status updates instantly on user devices and kitchen dashboard.
- Designed a structured Firestore schema for menus, orders, and user roles to keep reads/writes efficient.
- Used Firebase Cloud Functions to automatically update statistics such as daily sales and item popularity.
- Implemented basic form validation and error handling for unreliable network conditions.
Challenges & Solutions
Handling Peak-Time Concurrency
During peak hours, many users might place orders at the same time, which could lead to inconsistent stock counts or duplicate orders.
Solution: Used Firestore transactions and batched writes for critical operations (like decrementing stock and creating an order), ensuring atomic updates even when multiple requests hit simultaneously.
Keeping the Kitchen View in Sync
Kitchen staff needed a live view of incoming orders without constantly refreshing or missing updates during busy windows.
Solution: Implemented Firestore real-time listeners in the kitchen panel and added filters (Pending, In Progress, Ready) so new orders and status changes appear instantly.