Skip to main content

1. C4 niveau 1 — System Context

Tekstuele modellering

Op C4 niveau 1 staat OefenHub centraal als software-systeem. Dit diagram toont de systeemgrens, de primaire gebruikersgroepen en de belangrijkste externe systemen waarmee OefenHub communiceert.

Het doel van dit niveau is niet om interne technische onderdelen te laten zien, maar om duidelijk te maken wie OefenHub gebruikt, welke interacties functioneel bestaan en welke externe afhankelijkheden onderdeel zijn van de context.

Centraal systeem

OefenHub — Nederlandstalige webapplicatie voor oefenen, voortgang, beheer en ondersteuning van leerlingen, ouders/voogden, docenten en beheerders.

Primaire actoren

  • Leerling — maakt oefeningen, hervat runs en bekijkt eigen resultaten.
  • Ouder/voogd — bekijkt gekoppelde leerlingdata en kan live meekijken.
  • Docent — beheert niveaus, categorieën, oefeningen en leerlingtoegang.
  • Beheerder — beheert accounts, centrale inhoud, instellingen en systeembeheer.
  • TestDocent — gebruikt testmodules in een gecontroleerde docentcontext.

Externe systemen

  • Keycloak — externe identity provider voor authenticatie, registratie, sessies en credential-lifecycle.
  • Mailvoorziening — externe e-mailafhandeling voor verificaties, uitnodigingen en notificatiegerelateerde processen.

Toelichting bij het diagram

De database, realtime-functionaliteit, scheduler/cleanup-processen, PDF-generatie en logging zijn bewust niet in dit contextdiagram opgenomen. Deze horen niet thuis op systeemcontextniveau maar op containerniveau.

Het contextdiagram is dus bewust compact gehouden: één centraal systeem, vijf actoren en twee externe systemen. Figuur 1 — OefenHub C4 niveau 1: System Context

Figuur 1 — OefenHub C4 niveau 1: System Context

workspace "OefenHub" "C4 model niveau 1 - System Context" {

model {
leerling = person "Leerling" "Maakt oefeningen, hervat oefeningen en bekijkt eigen resultaten binnen toegestane niveaucontext."
ouder = person "Ouder/voogd" "Bekijkt gekoppelde leerlingdata en kan live meekijken."
docent = person "Docent" "Beheert niveaus, categorieën, oefeningen en leerlingtoegang."
beheerder = person "Beheerder" "Beheert accounts, centrale inhoud, instellingen en systeembeheer."
testdocent = person "TestDocent" "Gebruikt testmodules in een gecontroleerde docentcontext."

oefenhub = softwareSystem "OefenHub" "Nederlandstalige webapplicatie voor oefenen, voortgang, beheer en ondersteuning van leerlingen, ouders/voogden, docenten en beheerders."

keycloak = softwareSystem "Keycloak" "Externe identity provider voor authenticatie, registratie, sessies en credential-lifecycle."
mail = softwareSystem "Mailvoorziening" "Externe e-mailafhandeling voor verificaties, uitnodigingen en notificatiegerelateerde processen."

leerling -> oefenhub "Maakt oefeningen, hervat runs en bekijkt resultaten"
ouder -> oefenhub "Bekijkt gekoppelde leerlingdata en kijkt live mee"
docent -> oefenhub "Beheert niveaus, inhoud en leerlingtoegang"
beheerder -> oefenhub "Voert systeem- en domeinbeheer uit"
testdocent -> oefenhub "Test oefenmodules en testgedrag"

oefenhub -> keycloak "Gebruikt voor authenticatie, registratie en identity-gerelateerde flows"
oefenhub -> mail "Verstuurt verificaties, uitnodigingen en notificatie-e-mails"
}

views {
systemContext oefenhub "SystemContext" {
include *
autolayout lr
title "OefenHub - C4 niveau 1 - System Context"
}

theme default
}
}