mijnInternaat.be is een multi-module SaaS-platform dat internaten in Vlaanderen helpt bij hun dagelijkse administratie: van in- en uitschrijvingen tot planning en rapportage. Het platform is gebouwd om te voldoen aan de BVH- en RiK-regelgeving die van toepassing is op Vlaamse internaten.
De frontend is gebouwd met Next.js 15 en de backend met NestJS, met Prisma en PostgreSQL voor data-persistentie en Redis voor caching. Authenticatie loopt via Auth0, bestanden worden opgeslagen op AWS S3, de monorepo wordt beheerd met Turborepo en Sentry bewaakt de applicatiestabiliteit in productie.
Op maat gebouwd internaatsbeheer voor Vlaamse internaten — aanwezigheid, studiebegeleiding, pedagogische opvolging en preventiebeheer in één systeem, ter vervanging van spreadsheets en papier door workflows met auditlog en PDF's met één klik.
Vlaamse internaten voeren een brede waaier aan wettelijk verplichte en dagelijkse taken uit — aanwezigheidsregistratie, studiebegeleiding, pedagogische opvolging en veiligheids-/preventiebeheer — grotendeels op papier, in spreadsheets, of met generieke tools die niet voor deze sector gebouwd zijn. Dat is vooral foutgevoelig voor het papierwerk rond compliance, waar fouten reële gevolgen hebben op regelgevend vlak.
Eén webapplicatie waarin personeel leerlingen inschrijft, dagelijks de aanwezigheid registreert (ook offline, vanaf een smartphone), studiebegeleiding logt, pedagogische opvolging voert (gestructureerde gesprekken, attituderapporten, oudercontact), en preventietaken, verplichte BVH-documenten en het jaarlijkse en 5-jaarlijkse actieplan beheert — alles exporteerbaar als indienklare PDF's. Elke gevoelige actie wordt gelogd in een auditlog voor AVG-verantwoording.
Managers en personeel bij Vlaamse internaten die de dagelijkse werking van een internaat draaiende houden — aanwezigheid, studiebegeleiding, pedagogische opvolging (kindgesprekken, attituderapporten, oudercontact) en preventiebeheer vallen allemaal onder één team, en het platform is gebouwd voor dat volledige takenpakket, niet voor één onderdeel ervan.
De meeste alternatieven dekken telkens één onderdeel — een generieke aanwezigheidsapp, een generieke document-uploadtool voor compliance, of spreadsheets voor de rest. mijnInternaat.be brengt aanwezigheid, studiebegeleiding, pedagogische opvolging en preventiebeheer samen in één systeem, specifiek gebouwd voor hoe Vlaamse internaten écht werken — tot in details zoals offline aanwezigheidsregistratie vanop de vloer en preventiepapierwerk dat gemodelleerd is op het echte regelgevend kader in plaats van een generieke checklistfunctie.
Functies uitgelicht
Een meerstappen-inschrijving die pas compleet is met een kamertoewijzing en minstens één contactpersoon, plus een 'uitschrijven'-flow die geschiedenis bewaart in plaats van records te verwijderen. Alle andere modules — aanwezigheid, studiebegeleiding, preventietickets — bouwen voort op dit register.
Personeel neemt de dagelijkse aanwezigheid op via een installeerbare PWA die ook zonder wifi werkt, met lokale opslag en synchronisatie zodra er weer verbinding is. Terugkerende schema's genereren elke nacht automatisch de sessies van de dag, en bij het afsluiten van een sessie worden niet-afgevinkte leerlingen automatisch als afwezig gemarkeerd.
Volgt huiswerkafwerking en prestaties per vak volgens hetzelfde schema-sessie-registratiepatroon als aanwezigheid, samengevat in maandelijkse rapporten per leerling.
Volgt preventietaken, verplichte BVH-documenten (met vervaldatumopvolging) en inspectieverslagen op, met een ticketsysteem voor openstaande actiepunten. Genereert zowel het jaarlijkse actieplan als het 5-jaarlijkse actieplan als indienklare PDF's.
Een onwijzigbaar logboek van elke gevoelige wijziging in het product — wie, wat, wanneer, en de waarden voor en na — enkel zichtbaar voor managers, gebouwd met het oog op AVG-verantwoording bij de omgang met jongerengegevens.
Maandelijkse aanwezigheids- en studierapporten en compliance-exports worden gegenereerd door een aparte serverless renderdienst en op de achtergrond in een wachtrij verwerkt — nooit blokkerend tijdens een request.
Managers stellen zelf vormvrije rapportsjablonen samen (JSONB-gebaseerd) voor gestructureerde gesprekken zoals het kindgesprek en attituderapporten; personeel vult ze in via een dynamisch gegenereerd formulier op basis van dat sjabloon, en het ingevulde rapport wordt geëxporteerd als PDF.
Een tickettraject volgt studiezorgen van open tot opgelost, naast aparte registratie van oudercontactverslagen, vergaderverslagen en de activiteiten van de studentenraad — zodat personeel en managers op één plek het bredere welzijnstraject van een leerling kunnen opvolgen, niet enkel de studieresultaten.
Hoe het gebouwd is
Het product is een Turborepo-monorepo, opgebouwd rond één NestJS API en één PostgreSQL-database, georganiseerd in afgebakende contexten (identiteit, internaat, leerlingenregister, aanwezigheid, studie, preventie, audit) in plaats van opgesplitst in microservices — een bewuste keuze voor een team van twee op dit punt. Daarbovenop draaien drie aparte frontend-apps: een webapp voor managers en personeel, een installeerbare offline-first PWA voor aanwezigheid (service worker met lokale IndexedDB-opslag), en een aparte serverless PDF-renderdienst die apart gehouden wordt omdat headless-browserrendering heel andere packaging- en opstartvereisten heeft dan de API. Multi-tenancy wordt afgedwongen via JWT-claims die bij het inloggen worden toegevoegd, waarbij elke databasequery op applicatieniveau wordt beperkt tot één internaat in plaats van vertrouwd te worden vanuit het request. Bestandsuploads komen nooit in de database terecht — clients uploaden rechtstreeks naar objectopslag via kortlevende ondertekende URL's, en de server verifieert zelf de grootte en het type van het geüploade bestand voor het geaccepteerd wordt.
Het moeilijkste probleem
Het moeilijkste probleem was niet CRUD bouwen rond documenten en tickets — het was correct modelleren wat 'conform' eigenlijk betekent. Een veiligheidsproces zonder geüploade documenten moest te onderscheiden zijn van een proces dat volledig in orde is, dus ontbrekende maar verplichte documenten worden als eigen signaal bijgehouden in plaats van afgeleid uit wat er wél bestaat. Sommige inspectieverslagen horen ook niet bij één proces — ze zijn bewijs voor de hele site, gedeeld over alle negen processen — wat een eigen datamodel vereiste in plaats van het per-proces documenttype te hergebruiken. Beide inzichten kwamen pas naar boven door het echte regelgevingsmateriaal te lezen tegenover het eerste schemaontwerp, niet vanuit de oorspronkelijke featurespec.
Compliance & beveiliging
- Gebouwd rond het Belgische BVH-veiligheidsinspectiekader voor internaten
- Ontworpen met het oog op het RiK-kwaliteitskader voor de pedagogische module
- AVG-bewust ontworpen: onwijzigbare auditlog, data-isolatie per internaat, en private bestandsopslag zonder directe publieke toegang
Wat volgt
- Lancering voorzien in september 2026, met twee pilotinternaten als eerste testgebruikers
- Productie-uitrol met monitoring en een correct geconfigureerde bestands-/e-mailpijplijn voor échte klantgegevens
Hoogtepunten
- Multi-module architectuur voor uiteenlopende internaatsprocessen
- Ontworpen conform BVH/RiK-regelgeving voor Vlaamse internaten
- Turborepo-monorepo met gedeelde packages tussen frontend en backend
