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.
← All case studies