Restaurants end most days with food that's still perfectly good and no one to eat it. Nyisa is a web marketplace for exactly that food: restaurants list their surplus, customers pick it up at a lower price, and less of it ends up in the bin. We built it as coursework.
- Team
- 6 people
- Built in
- Feb – Jun 2025
- Stage
- Coursework demo
What it does
Browse
By restaurant or by dish, with recommendations picked for you.Order
Add to cart and order, at a lower price than the menu.Pick up
Collect it from the restaurant.My part
I was the backend developer and AI engineer on a team of six. The backend handles orders, each restaurant's stock of surplus food, and pickups. The AI part is a recommendation system that suggests dishes to each customer.
Wiring in the model
The hardest part was getting the recommendation model and the backend to talk. The model is Python; the backend is Express.js. My first attempt was to run the model as a subprocess from the backend, and I'd never wired one up before. What worked in the end was giving the model its own small Python API and having the backend call it like any other service.
React app
The customer opens the marketplace.
Express.js backend
Orders, stock, pickups, and the request for picks.
Python model API
The recommendation model, served on its own.
Recommended dishes
Back through the backend to the customer.
That split also keeps each side in the language it's best at: the model stays in Python with its libraries, and the backend stays in JavaScript.