Canteen Smart is a project we built to make the usual canteen experience a little less chaotic. Instead of standing around wondering whether the food is ready, users can browse the menu, add items to their cart, and place orders through a simple web interface.
We built the project as a full-stack system, with a Next.js and React frontend handling the user experience and a FastAPI backend taking care of the application logic. The frontend and backend communicate through REST APIs, keeping the different parts of the system nicely separated.
One of the more interesting parts of the project is that we didn’t want to stop at just ordering food. We also experimented with a machine learning component that predicts the amount of water required for a particular time slot. Using Linear Regression, the system estimates water requirements from available data, giving us a practical example of how machine learning can be connected to an everyday problem.
We also explored MQTT and Arduino-based integration as part of the project. This gives Canteen Smart an IoT side, allowing the system to extend beyond a normal web application and interact with the physical environment of a canteen.
The project is split into a few main pieces:
- Frontend: Menu browsing, item categorization, cart management, and checkout.
- Backend: REST APIs for orders, items, and user actions.
- Machine Learning: Water requirement prediction using Linear Regression.
- IoT: MQTT communication with optional Arduino-based hardware.
- Deployment: The frontend is deployed on Vercel, while the Python backend runs separately.
What we enjoyed most about building Canteen Smart was seeing how all these pieces fit together. A user clicking an order button on the frontend eventually turns into backend logic, data processing, and potentially even communication with a physical device.
What started as a simple canteen ordering idea gradually became a small playground for exploring full-stack development, APIs, machine learning, and IoT in one project.
The project gave us a good opportunity to think beyond individual technologies and understand how different systems can work together to solve a real-world problem.