Software project
Perfume app
Een full-stack applicatie voor het beheren van parfums, ingrediënten en allergenen. Gebouwd met focus op een helder datamodel en een bewerkflow die fouten voorkomt.
Type
Full-stack web app
Doel
Grip op ingrediënten en allergenen
Karakter
Complex domein, simpele bediening
Waarom dit project
Aanleiding
In parfum formulering werken ingrediënten, concentraties en allergenen direct op elkaar in. In spreadsheets raak je al snel het overzicht kwijt, en kleine wijzigingen kunnen onverwacht doorwerken in berekeningen.
Ik wilde een applicatie die die relaties expliciet maakt en die bewerkingen logisch en veilig houdt. Niet meer opties, maar minder ruis.
Functionaliteit
Wat de app doet
- Beheren van ingrediënten met gekoppelde allergenen
- Vastleggen en aanpassen van concentraties per formule
- Overzicht van allergenen op formulaniveau
- Begeleiden van bewerkingen
- Wijzigingen pas opslaan bij expliciete bevestiging
Hoe ik het heb aangepakt
Ontwerpkeuzes
De uitdaging zat niet in de hoeveelheid schermen, maar in het modelleren van het domein en het voorkomen van verborgen neveneffecten.
Eén ingrediënt kan meerdere allergenen bevatten, en die tellen cumulatief op in een formule. Daarom moest de applicatie voorspelbaar blijven als je iets wijzigt.
De bewerkflow is bewust: wijzigingen worden verzameld en pas opgeslagen als je dat expliciet bevestigt.
- Relaties expliciet in het datamodel
- Zo min mogelijk automatische magie
- Wijzigingen pas opslaan aan het einde van een bewerksessie
- Foutpreventie door regels en duidelijke feedback
Relevantie
Wat dit project laat zien
Dit project laat zien hoe ik een complex domein terugbreng tot een set simpele, begrijpelijke handelingen. Niet door het probleem weg te abstraheren, maar door het expliciet te maken.
Het is een werkend voorbeeld van mijn manier van bouwen: eerst structuur en regels, daarna pas schermen.
Sterke punten
- Complexe relaties vertalen naar een helder model
- Bewerkflow die verrassingen voorkomt
- Consistente regels en duidelijke feedback
- Pragmatische full-stack aanpak