kvsoftware

Nyisa

Restaurants' leftover food, sold before it goes to waste

A web marketplace where restaurants list surplus food that's still perfectly edible, and customers pick it up at lower prices. Browse by restaurant or dish, add to cart, and order, so less good food ends up thrown away.

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.

  1. React app

    The customer opens the marketplace.

  2. Express.js backend

    Orders, stock, pickups, and the request for picks.

  3. Python model API

    The recommendation model, served on its own.

  4. Recommended dishes

    Back through the backend to the customer.

The model runs as its own service; the backend calls it over HTTP.

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.

Back to the work