Het systeem dat ik bouwde, en daarna herbouwde terwijl het doorliep
Nitra Academy is een erkend examencentrum: het leidt mensen in de bouw op rond veiligheid, machines en brandpreventie, en de certificaten die het uitreikt worden gecontroleerd op de werf en bij audits. Ik bouwde het platform in 2016 in Zoho Creator, en het draait sindsdien elke werkdag. Tien jaar aanbouwen had het vol gezet, dus in 2026 heb ik het van binnenuit herbouwd: zelfde platform, zelfde data, geen dag offline.
- Mijn rol
- Design Engineergebouwd en daarna gemoderniseerd
- Wanneer
- 2016 tot nuin 2026 van binnenuit herbouwd
- Met
- NitraValderas
- Resultaat
- Gemoderniseerd zonder offline te gaanéén certificaatmodel, selfservice, publieke verificatie
Wat het systeem moet doen
Nitra Academy is niet zomaar een opleidingsbedrijf, het is een erkend examencentrum. Daar zit het hele werk in. Diploma's worden geregistreerd in het Centraal Diplomaregister. VCA-attesten blijven tien jaar geldig en moeten traceerbaar blijven. De bedrijven die hun mensen hier opleiden, krijgen jaarlijks audits, en een onvolledig dossier kan hen hun eigen certificering kosten.
Het systeem draagt dus de hele ketting: een opleidingsaanbod, een bedrijf dat een sessie boekt, wie aanwezig was, wie geslaagd is, het certificaat dat daaruit volgt, en de opzoeking jaren later wanneer iemand een bewijs nodig heeft. Vier groepen raken dezelfde data aan: het team van Nitra, de contactpersonen bij klantbedrijven, de lesgevers, en de deelnemers die uiteindelijk het certificaat in handen hebben.
Versie één, en waarom low-code
Voor het systeem er was, zat alles in spreadsheets en manuele stappen. Dat werkte, tot de academie voorbij de veertig opleidingen groeide en de administratie de tijd begon op te eten die naar lesgeven moest gaan.
Ik koos Zoho Creator omwille van het budget. Nitra is een kmo en werkte al met Zoho One: Creator zat in dat abonnement, hosting inbegrepen, dus het systeem kostte niets extra per maand. Het gaf ons een relationeel datamodel, automatisatie en een portaal voor externe gebruikers. De prijs is de interface. Low-code beperkt wat een scherm kan zijn, dus ontwierp ik binnen die grenzen in plaats van ertegen te vechten, en het resultaat is echt bruikbaar voor Nitra en voor de bedrijven die hun mensen er laten opleiden.
Een afweging die ik vroeg maakte: certificaten zijn eigen records, geen velden op een boeking. Dat kostte vooraf wat meer, en de vervaldagopvolging, het bedrijfsoverzicht en de publieke opzoeking rolden gratis uit die ene beslissing.
Wat tien jaar met een systeem doet
Een systeem dat elke dag gebruikt wordt, verzamelt geschiedenis. Functionaliteit komt erbij onder tijdsdruk, een betaalpartner wordt vervangen, een flow wordt afgelost maar nooit weggehaald. In 2026 zat er dode code in, de resten van een oude betaalintegratie, een inschrijvingsflow die niemand gebruikte, en vier aparte formulieren die hetzelfde deden: een certificaat uitreiken. Vier formulieren betekent vier plaatsen om iets aan te passen, en vier kansen om er één te vergeten.
Ook de data was afgedreven. Velden waar filters op steunden, stonden bij de meeste records leeg, dus de overzichten vertelden stilletjes halve waarheden. Rapportcriteria en rechten klopten op plaatsen niet. Van buitenaf zag je daar niets van: de app leek te werken, en net daarom was ze een audit waard.
De beslissing: geen big bang
Het plan dat op tafel lag, was een herbouw van nul, weg van low-code, in eigen code. Ik heb dat uitgewerkt en opgestart, en op de migratie liep het vast: een propere herimport van de live-data kreeg ik niet sluitend, en de prijs om dat door te duwen zou betaald worden door een systeem waar mensen elke dag mee werken, voor winst die Nitra nog niet nodig had.
Dus heb ik het roer omgegooid, de moeilijkste en de juiste keuze. Ik heb de app van binnenuit herbouwd: hetzelfde platform, dezelfde database, gefaseerd gerefactord, zonder de gebruikers ooit te vragen te stoppen met werken. Beslissen om niet te herbouwen is dezelfde vaardigheid als beslissen om het wel te doen.
Hoe het liep, in vier fases
- Opruimen en beveiligen. Dode code en de oude betaalintegratie eruit, rechten en rollen rechtgezet, zodat alles wat daarna kwam op een vloer stond die ik vertrouwde.
- Eén datamodel. De vier certificaatformulieren werden één formulier met een typeveld, en elk bestaand certificaat verhuisde mee.
- Eén plek voor de logica. Functies hergroepeerd in namespaces die zeggen waarvoor ze dienen, met de certificaatlogica in precies één daarvan. Bedrijven kunnen nu ook certificaten registreren die hun mensen elders haalden, zodat een teamoverzicht het volledige verhaal is.
- Nieuwe functionaliteit. Een certificaatsjabloon dat zich aanpast aan het type opleiding, een ZIP-export, portaaltoegang die zichzelf synchroniseert, herkenning van vernieuwde certificaten, en publieke verificatie.
Elke wijziging werd gebouwd in een ontwikkelomgeving, gepubliceerd naar een stage-omgeving, en daar getest met een demo-account per profiel, zodat elke rol gecontroleerd werd vanuit de stoel van wie ermee werkt. Nitra besliste wat naar productie ging, en achter elke verwijdering en migratie zat een back-up.
Wat elke groep eraan heeft
- Het team van Nitra plant sessies met een startuur, registreert aanwezigheden en resultaten, en reikt certificaten uit vanaf één scherm in plaats van vier. Beheerpagina's tonen de cijfers waar vroeger handwerk voor nodig was.
- Klantbedrijven zien hun hele team in één oogopslag: wie wat heeft, wat wanneer vervalt, welke sessies eraan komen. Ze voegen zelf medewerkers toe, houden hun bedrijfsgegevens zelf bij, en registreren zelf certificaten van elders.
- Lesgevers krijgen een eenvoudige inbox voor aanwezigheden en resultaten, en een week voor ze lesgeven een mail met de details van de sessie en de deelnemerslijst. Heeft een externe lesgever geen toegang tot het opleidingsmateriaal, dan krijgt Nitra automatisch de vraag om het te bezorgen.
- Deelnemers krijgen een pdf-certificaat met een QR-code. Iedereen kan die scannen en het certificaat verifiëren op de site van Nitra Academy, tegen een ondertekende code die je niet kan verzinnen. Op een werf is een certificaat dat zichzelf bewijst meer waard dan een certificaat dat vraagt om geloofd te worden.
Een vaste look, en een vaste woordenlijst
De laatste ronde was visueel. De app draait nu op een klein designsysteem: één accentkleur, een rustig oppervlak dat de aandacht bij de data houdt, en een vaste woordenlijst, zodat hetzelfde ding op elk scherm en in elke mail dezelfde naam draagt. De documentatie ging mee: een changelog, een navigatieoverzicht per gebruikerstype, en het designsysteem zelf, zodat wie hier later aan werkt niet moet gokken.
Hoe dit gebouwd is, eerlijk
Het tempo van deze herbouw komt van bouwen met AI, en dat zeg ik liever zelf dan de snelheid op magie te laten lijken. Wat AI niet besliste: de fasering, wat weg mocht, wat getest werd, welke rol vanuit welke stoel gecontroleerd werd, en wat naar productie mocht. Dat bleef bij mij en bij Nitra. Het oordeel is het werk; het typen is het stuk dat sneller ging.
“You can always count on Inti as an enthusiastic entrepreneur, brimming with
innovative ideas. I can highly recommend him.”
Kris Wauters, CEO, Nitra
Wat ik eruit meeneem
De reflex, bij een systeem dat scheef gegroeid is, is opnieuw beginnen. Opnieuw beginnen is ook de optie die alles wat je al geleerd hebt in de vuilbak kiepert en de klant vraagt te wachten. Dit systeem had dat niet nodig. Het had een audit nodig, een vloer die je vertrouwt, één model in plaats van vier, en daarbovenop de nieuwe functionaliteit.
Tien jaar later doet het platform meer dan vroeger, zit het vanbinnen eenvoudiger in elkaar, en is het geen dag gestopt met werken terwijl dat gebeurde. Dat is de versie van “ontwerpen en bouwen” waar ik het fierst op ben.
Iets te bouwen?
Dit is het soort werk dat ik van begin tot eind ontwerp en bouw, aan een vaste prijs.
Projecten
Volgende case
Payflip
12 tot 15 uur begeleid werk, terug naar zo'n 2 →