Frontpage en niveaucontext
Deze map bevat de leerlingusecases voor de leerling-frontpage en de actieve niveaucontext. Het subdomein beschrijft hoe de leerling na login op een veilige, contextgebonden overzichtspagina terechtkomt en hoe frontpageblokken zoals populaire categorieën, recent geoefend en verder oefenen worden samengesteld.
De leerling-frontpage is geen beheerpagina en geen tweede bron van autorisatie. Zij toont afgeleide informatie en vervolgpunten op basis van bestaande domeindata: accountcontext, actieve leerlingrol, niveaucontext, toegankelijke categorieën, oefeningen en exercise runs. Elke vervolgroute naar categorieën, oefeningen, resultaten of hervatten controleert opnieuw server-side of de leerling daar toegang toe heeft.
Usecases
Relevante schermdocumentatie
| Scherm / context | Relevantie |
|---|
| Leerling-frontpage | Centrale overzichtspagina met categorienavigatie, populaire categorieën, recent geoefend, statistieksamenvatting en verder-oefenencontext. |
| Leerlingnavigatie | Toont categorie-ingangen binnen de actuele niveaucontext. |
| Profiel / niveaukeuze | Bron voor het bewust kiezen of herstellen van een verplicht of geselecteerd niveau. |
| Oefening-startpagina | Vervolgroute vanuit categorieën, populaire oefeningen, recent geoefend of verder oefenen. |
| Geschiedenis / resultaatweergave | Vervolgcontext voor afgeronde runs die vanuit recent geoefend kunnen worden geopend. |
| Systeemnotificatiecomponent | Wordt pas na normaal laden van de frontpage gecontroleerd via generieke systeemnotificatieusecases. |
Domeinafbakening
| Onderwerp | Afbakening |
|---|
| Frontpage | Overzichts- en oriëntatiepagina voor de leerling; geen beheerpagina en geen oefenuitvoering. |
| Niveaucontext | Bepaalt binnen welk niveau frontpageblokken en oefenaanbod worden opgebouwd. |
| Populaire categorieën | Afgeleid uit afgeronde exercise runs binnen het actieve niveau en actuele toegang. |
| Recent geoefend | Maximaal drie laatst afgeronde runs binnen de actuele niveaucontext. |
| Verder oefenen | Alleen zichtbaar bij een hervatbare niet-afgeronde run binnen de actuele context. |
| Oefenaanbod en toegang | Wordt inhoudelijk uitgewerkt in het subdomein oefenaanbod-en-toegang; deze frontpageusecases verwijzen ernaar. |
| Oefenen en voortgang | Het daadwerkelijk starten, beantwoorden, onderbreken en afronden van oefeningen valt buiten deze map. |
| Resultaten en geschiedenis | Resultaatdetails, statistieken, geschiedenis en PDF-export vallen buiten deze map. |
| Profielbeheer | Verplicht niveau instellen en niveaukeuze blijven onderdeel van profiel/accountflows. |
Belangrijke regels
| Onderwerp | Regel |
|---|
| Server-side context | Frontpageblokken worden opgebouwd vanuit server-side sessie-, rol- en niveaucontext. |
| Geen frontpagecache als bron | De frontpage gebruikt bestaande domeindata en afgeleide readmodels; er komt geen aparte frontpagebronrecord. |
| Geen stille niveaukeuze | OefenHub kiest niet willekeurig een standaardniveau wanneer een verplichte of geldige niveaucontext ontbreekt. |
| Actuele toegang | Categorieën en oefeningen op de frontpage moeten actueel toegankelijk zijn voordat zij als vervolgactie worden getoond. |
| Historie versus actuele toegang | Historische resultaten kunnen blijven bestaan, maar geven niet automatisch actuele start- of hervattoegang. |
| Systeemnotificaties | Systeemnotificaties blokkeren het laden van de frontpage niet en worden door generieke notificatieusecases verwerkt. |
| Geen popupregister | Deze usecases gebruiken routeguard-, component- en lege-staatgedrag en introduceren geen nieuwe popupregister-popups. |
Diagramgebruik binnen deze usecases
| Diagramtype | Gebruik |
|---|
| Sequence diagram | Voor de interactie tussen leerling, frontend, backend, autorisatielaag en database. |
| Decision flow | Voor keuzes rond leerlingcontext, niveaucontext, beschikbare data en veilige lege staten. |
| Data lifecycle | Voor het onderscheid tussen bestaande brondata, afgeleid readmodel en bewust geen opslag. |
| State diagram | Alleen wanneer een persistent statusobject geraakt wordt; voor deze map meestal niet van toepassing. |