EdTech · Belgium
Skills diagnostic for secondary education
In productionSoftware Engineering · DevSecOps · Data
Context
An EdTech platform for secondary-school learners in Belgium: diagnosing their skills against the official curriculum.
Problem and constraints
- A skills catalogue that must follow the official curriculum.
- A clear diagnostic lifecycle, plus administration views.
- A back end and a front end deployed separately but versioned together.
Architecture decisions and trade-offs
- A monorepo with two independently deployable applications: one version, two deployment units.
- A NestJS API built as a modular monolith with documented module ownership, rather than premature microservices.
- Dedicated decisions for identity and authentication, the diagnostic lifecycle, the official catalogue and the production topology.
Security and delivery
- Jenkins pipeline: format, lint, typecheck, OpenAPI contract, unit and component tests, HTTP contracts, coverage, secret and dependency scanning.
- Images are built and published only from the main branch, the release is recorded, then promoted to the GitOps platform.
- Prisma migrations run as a dedicated job at deployment.
Data
The schema evolves through versioned migrations (17 so far); the official curriculum catalogue is a first-class data model.
Results and current state
- In production; 7 tagged releases, the latest being v0.4.3.
- 93 test files and 5 architecture decisions.