Uitgevoerd in opdracht van een opdrachtgever in de onderwijssector — broncode onder geheimhouding
In opdracht van een opdrachtgever in de onderwijssector heb ik een volledig schaalbaar, multi-tenant Learning Management Systeem ontworpen en gebouwd. Het platform bedient meerdere onderwijsorganisaties tegelijk binnen één gedeelde infrastructuur, met volledige data-isolatie per organisatie en een geavanceerd rol- en rechtensysteem.
Het systeem is end-to-end opgezet — van database-architectuur en beveiligingslagen tot API en gebruikersinterface — en draait in productie. De volledige broncode is eigendom van de opdrachtgever en valt onder een geheimhoudingsovereenkomst; onderstaande beschrijving richt zich daarom op functionaliteit, architectuur en technische keuzes.
Belangrijkste functionaliteiten
- Multi-tenant architectuur met strikte data-isolatie per organisatie
- Uitgebreide rollenhiërarchie: super-admin, content-manager, admin, docent, leerling, ouder
- Volledig cursusbeheer met hiërarchische opbouw (cursus → secties → units → lessen)
- Lesmateriaal-editor met rich-text, leerdoelen, slides en evaluaties
- Examenmodule met vragenbank, automatische grading, toewijzing per klas en gedetailleerde resultatenrapportage
- Klassenbeheer inclusief voortgangstracking per klas per cursus
- Licentiesysteem voor toegangsbeheer met geautomatiseerde verloop-afhandeling
- Materialenbibliotheek en documentbeheer met cloud-opslag
- Feedbackmechanismen, auditlogging en soft-delete met retentiebeleid
Beveiliging & compliance
- Dubbele authenticatielaag (API-sleutel + JWT)
- Row-Level Security op database-niveau voor multi-tenant isolatie
- End-to-end versleuteling van alle bedrijfskritieke data at rest (AES-256 via pgsodium) — zowel intellectueel eigendom, persoonsgegevens als assessment-data
- GDPR-compliant met aparte encryptiesleutels per datacategorie
- CAPTCHA-bescherming, rate limiting, IP-threat-blocking, strikte CORS- en CSP-headers
- Request-scoped database clients om sessie-lekken te voorkomen
Tech stack
- Frontend: Nuxt 3, Vue 3 (Composition API), Nuxt UI, TailwindCSS, Tiptap rich-text editor
- Backend: Node.js, Express.js (ES Modules), Joi-validatie, Winston logging
- Database: PostgreSQL via Supabase, Row-Level Security, secure views met INSTEAD OF-triggers, pgsodium encryptie
- Infrastructuur: gecontaineriseerde deployment, geautomatiseerde cron-jobs voor licentie-expiratie, log-cleanup, soft-delete-purge en threat-list-updates
- Externe integraties: Cloudflare Turnstile, AbuseIPDB, Google Analytics
Omvang
Productie-omgeving met ruim 30 database-tabellen, 125+ database-migraties, circa 40 API-controllers, 30+ business-logic-modules, 90+ UI-componenten en 33 Vue composables.
Mijn rol
Volledige verantwoordelijkheid voor architectuur, ontwikkeling en oplevering — databaseontwerp, API-design, frontend-implementatie, beveiliging en deployment. Nauwe samenwerking met de opdrachtgever voor functionele afstemming en iteratieve oplevering.
