Skip navigation
Logo: Zenjoy is an AI-first digital product studio based in Leuven. We build meaningful digital products, websites, and mobile applications.

doeners.be

Platform for matchmaking between social and regular economy

Client
Association of Flemish Provinces

Services
Development, Integrations

View project
www.doeners.be

Description
Platform where you can find the ideal partner for collaboration with a social economy enterprise.

Vraag

Zes op de tien grootkeukens in België verspillen meer voedsel dan ze denken. Het probleem is niet onwil. Het is onzichtbaarheid. Keukenverantwoordelijken combineren tientallen taken tegelijk, werken met wisselende teams en hebben zelden tijd om stil te staan bij wat er precies in de afvalcontainer belandt.

Rikolto, een internationale organisatie die werkt aan duurzame voedselsystemen, nam een jaar eerder FoodWin over, een Belgisch initiatief rond voedselverspilling. Met die overname kwam ook een meetmethode mee: grootkeukens doorlopen een traject van nulmeting tot impactmeting, met tussenin een strategische analyse en een actieplan. Het proces werkt. Maar de tooling niet.

Metingen gebeurden op papier. Formulieren per dag, per maaltijd, per afdeling. Na afloop werden die cijfers handmatig overgetikt in Excel. Tussen meting en analyse zaten weken, soms maanden. Ondertussen verloor het keukenteam de motivatie om te blijven meten. En Rikolto miste de snelheid om tussentijds bij te sturen.

Rikolto zocht een partner die het volledige traject kon dragen: van domeinanalyse tot een werkend platform. Ze klopten bij ons aan via een doorverwijzing. Er waren geen designs of specs. Wel een heldere nood en een team dat het probleem door en door kende.

Aanpak

Een domein dat niet in een spreadsheet past

De eerste weken waren pure verkenning. We bezochten een woonzorgcentrum, spraken met keukenverantwoordelijken en onderzoekers, en brachten het volledige meetproces in kaart. Wat op het eerste gezicht een simpele invoertool leek, bleek al snel een stuk complexer.

Een organisatie heeft afdelingen, en elke afdeling serveert maaltijden. Die maaltijden bestaan uit componenten: eiwitten, zetmeel, groenten, samengestelde gerechten. Per component meet je in bulk of per standaardportie. Resten komen van drie stromen: keuken, buffet of bord. Dat alles moet per dag, per maaltijdmoment, per afdeling gelogd worden.

Bovenop die dagelijkse metingen zit een trajectstructuur: nulmeting, actieplan, impactmeting. Per component worden kosten en CO2-afdruk bijgehouden, zodat de impact ook financieel en ecologisch zichtbaar wordt.

Het datamodel telt meer dan vijftien entiteiten met complexe relaties. Dat is niet het soort probleem dat je oplost met een formulierentool of een BaaS-platform. We kozen bewust voor Phoenix met Elixir op de backend en React met TypeScript op de frontend. Die combinatie gaf ons de controle over het domeinmodel die we nodig hadden, en de flexibiliteit om snel te itereren op de UI.

Twee werelden, één interface

Het project had van bij het begin een ingebouwde spanning. Rikolto wil rijke, granulaire data. Vergelijkingen per component, per stroom, per afdeling. Grafieken die patronen zichtbaar maken over maanden heen. Exports naar Power BI voor diepere analyses.

De keukenmedewerker wil iets dat werkt tussen twee diensten in. Snel invoeren, niet te veel nadenken, niet te veel klikken. In een omgeving met personeelstekort, hoog verloop en altijd te weinig tijd.

Die twee werelden moesten samenkomen in dezelfde tool. Ze bijten elkaar niet, ze versterken elkaar. Hoe makkelijker het invoeren, hoe consistenter de metingen. En hoe consistenter de metingen, hoe beter de data voor Rikolto. Gebruiksvriendelijkheid is hier geen bijzaak. Zonder goede UX krijg je gewoon geen betrouwbare data.

We bouwden twee invoeropties. Een snelle wizard voor dagelijks gebruik: datum kiezen, maaltijd selecteren, gewichten invullen. Klaar. En een expertmodus voor wie dieper wil gaan: per stroom, per component, met opmerkingen en foto's. Beide modi schrijven naar dezelfde datastructuur, dus de analyse is altijd consistent.

Van papier naar scherm en terug

Niet elke keuken werkt digitaal. In veel instellingen wordt er nog gewogen met een keukenweegschaal en genoteerd op papier. Dat is de realiteit, en we wilden daar niet omheen.

Het platform genereert afdrukbare meetformulieren op basis van de trajectconfiguratie, met de juiste afdelingen, maaltijden en componenten al ingevuld. Na het wegen kan het keukenteam de cijfers later invoeren via het platform. Sommige teams doen dat dezelfde avond, andere op een vast moment in de week.

Andere keukens werken wel direct digitaal. Telefoon naast de weegschaal, gewicht invoeren, door naar de volgende meting. Beide workflows zijn ondersteund. De keuze ligt bij het team op de vloer.

Toen de werkelijkheid het model corrigeerde

Halverwege de ontwikkeling botsten we op een probleem dat we niet hadden voorzien. Maaltijdconfiguraties waren oorspronkelijk gekoppeld aan het traject als geheel. Maar in de praktijk bleken niet alle afdelingen dezelfde maaltijden te serveren. Een woonzorgcentrum heeft een afdeling dementie met een apart menu, een dieetafdeling met andere componenten, en een algemene afdeling. Hotels werken met buffet en à la carte naast elkaar.

Het domeinmodel moest aangepast worden. Maaltijdconfiguraties kregen een koppeling met specifieke afdelingen. Dieetstromen werden als attribuut toegevoegd. Dat betekende een nieuw databaseschema, aangepaste API's en een bijgewerkte UI.

De architectuur kon het aan. Omdat we van bij het begin investeerden in een strak domeinmodel met duidelijke entiteiten en relaties, was de aanpassing clean. Geen workarounds of technische schuld. De realiteit op de vloer corrigeerde ons model, en het systeem kon mee zonder alles overhoop te gooien.

Multi-tenant vanaf dag één

Rikolto begeleidt niet één organisatie maar tientallen. Het platform moest van bij het begin meerdere organisaties ondersteunen, elk met hun eigen trajecten, configuraties en gebruikers. Een Rikolto-beheerder ziet het volledige overzicht. Keukenverantwoordelijken zien alleen hun eigen organisatie, en meters komen niet verder dan de meetschermen.

We bouwden een rollenmodel met drie niveaus (beheerder, champion, meter) en een uitnodigingssysteem met magic links. Geen wachtwoorden. Dat vereenvoudigt het onboarding-proces in een context waar niet iedereen digitaal even sterk staat.

Resultaat

Het platform draait. Rikolto test het met de eerste organisaties. Zes releases in drie maanden, van basisopzet tot een werkend meetplatform.

Wat er staat:

Flexibele configuratie

Rikolto configureert per organisatie welke afdelingen, maaltijden en componenten gemeten worden. Dat werkt voor woonzorgcentra, hotels en alles daartussen.

Gedetailleerde meetlogs

Meetlogs tot op maaltijdniveau, via een snelle of een gedetailleerde interface. Elke log bevat datum, afdeling, maaltijd, component, stroom en gewicht.

Geïntegreerde impactmetingen

Nulmetingen en impactmetingen zitten in het traject ingebouwd. Rikolto kan de vooruitgang direct meten en rapporteren.

Statistieken en data-export

Statistieken per component, afdeling en stroom, met vergelijking tussen meetperiodes. Export naar CSV en Power BI voor verdere analyse.

Multi-tenant self-service

Multi-tenant architectuur, klaar voor self-service. Na een begeleiding aan de start kunnen organisaties er zelfstandig mee aan de slag.





De multi-tenant opzet draagt tientallen organisaties tegelijk. Via Power BI kan Rikolto analyses maken die verder gaan dan wat het platform zelf toont. En omdat de data gestructureerd is en over organisaties heen loopt, wordt vergelijking tussen keukens mogelijk, en op termijn ook gerichte aanbevelingen.



Do you have a project for us?

We'd love to hear from you!

Other cases

S.Tool

Hoe we darmklachten na kankerchirurgie bespreekbaar maakten via een app

Het onderzoeksteam klopte bij ons aan met een idee en een nood. Geen designs, geen specs. Ze zochten een partner die het volledige traject kon dragen: van concept tot een app in de handen van patiënten.