UC-DOC-FP-004 — Niveaus- en inhoudsamenvatting tonen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-FP-004 |
| Naam | Niveaus- en inhoudsamenvatting tonen |
| Domein | Docent / Frontpage en context |
| Primaire actor | Docent |
| Secundaire actor(en) | OefenHub frontend, OefenHub backend, database, oefenaanbod-readmodel, autorisatielaag |
| Rolcontext | Ingelogde gebruiker met actieve docentcontext. |
| Betrokken schermen | Docent-frontpage, blok Niveaus & inhoud, navigatie naar Oefenaanbod. |
| Gerelateerde usecases | UC-DOC-FP-001 — Docent-frontpage bekijken; UC-DOC-FP-002 — Docentcontext bepalen; UC-DOC-AANB-001 — Oefenaanbod openen; UC-DOC-AANB-002 — Niveau selecteren; UC-DOC-OEF-001 — Oefeningen binnen categorie bekijken |
| Primaire entiteiten | TeacherLevels, TeacherLevelCategories, Categories, Exercises, ExerciseModules, LevelCollaborators |
| Secundaire entiteiten / events | niveaus-en-inhoud-readmodel, collaboratorcontext, routeverwijzing naar Oefenaanbod |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe de docent-frontpage een compacte samenvatting toont van niveaus en inhoud binnen de actuele docentcontext. Het blok geeft de docent oriëntatie op beheerde niveaus, gekoppelde categorieën, concrete oefeningen en eventueel actieve collaborators.
De samenvatting voert geen beheer uit. Niveaus aanmaken, categorieën koppelen, oefeningen configureren en collaborators beheren blijven achterliggende routes met eigen usecases.
De frontpage telt alleen objecten die binnen de actuele docentcontext relevant zijn. Waar een docent collaborator is in plaats van eigenaar, moet de samenvatting dat kunnen respecteren zonder rechten te verruimen.
3. Scope
Deze usecase omvat wel:
- tonen van compacte aantallen rond niveaus, categorieën en oefeningen
- onderscheiden van eigenaarschap en collaboratorcontext waar relevant
- verwijzen naar de reguliere route Oefenaanbod
- tonen van een veilige lege staat wanneer geen niveaus of inhoud bestaan
- afleiden van zichtbare inhoud uit bestaande docentstructuurdata
- voorkomen dat inhoud vanaf de frontpage wordt gewijzigd
Deze usecase omvat niet:
- wijzigen van niveaukerngegevens, categorieën of oefeningen
- toekennen of intrekken van niveau-autorisaties
- openen van volledige leerlinggeschiedenis of resultaatdetails
- starten van live meekijken of het tonen van live voortgang
- beheer van relaties of uitnodigingen tussen docent en leerling
- beheer van ouder-/voogdfunctionaliteit buiten de gecombineerde frontpageweergave
- uitwerken van systeemnotificaties; die lopen via de generieke notificatie-usecases
DRY-afbakening: deze usecase beschrijft alleen de docent-frontpage- of contextlaag. De bronwaarheid voor leerlingenbeheer, oefenaanbodbeheer, live meekijken, relaties, profielinstellingen en systeemnotificaties blijft bij de daarvoor bedoelde usecases en ontwerpbronnen.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De docentcontext is server-side vastgesteld. |
| PRE-002 | Niveau-, categorie-, oefening- en collaboratorgegevens zijn uitleesbaar. |
| PRE-003 | De betekenis van elk getoond inhoudsaantal is eenduidig gedefinieerd. |
| PRE-004 | De frontpage is niet bedoeld voor mutaties aan oefenaanbod. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De docent ziet een inhoudssamenvatting binnen de actuele context. |
| POST-002 | Er zijn geen niveaus, categorieën, oefeningen of collaboratorrecords gewijzigd. |
| POST-003 | De reguliere Oefenaanbod-route blijft de ingang voor inhoudelijke acties. |
| POST-004 | Lege of beperkte toestanden zijn veilig weergegeven. |
6. Trigger
De usecase start wanneer de docent-frontpage het blok Niveaus & inhoud moet samenstellen.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | OefenHub backend | Docentcontext | Ontvangt de vastgestelde docentcontext. | Backend gebruikt actuele context voor filtering. | UC-DOC-FP-002. |
| 2 | OefenHub backend | Niveau-readmodel | Bepaalt relevante niveaus. | Eigen niveaus en toegestane collaboratorniveaus worden volgens regels meegenomen. | Geen rechtenuitbreiding. |
| 3 | OefenHub backend | Categorie-readmodel | Bepaalt gekoppelde categorieën binnen relevante niveaus. | Alleen actieve of contextueel relevante koppelingen tellen mee. | Categoriebeheer blijft elders. |
| 4 | OefenHub backend | Oefening-readmodel | Bepaalt concrete oefeningen binnen relevante categorieën. | Actieve en onderhoudsstatus kunnen apart worden afgeleid indien functioneel nodig. | Geen configuratiemutatie. |
| 5 | OefenHub backend | Collaborator-readmodel | Bepaalt relevante collaboratorcontext. | Samenvatting kan actieve collaborators tonen of tellen. | Geen collaboratorbeheer. |
| 6 | OefenHub backend | Frontpage readmodel | Stelt compacte inhoudssamenvatting samen. | Waarden zijn eenduidig en contextgebonden. | Geen frontpagecache als bron. |
| 7 | OefenHub frontend | Blok Niveaus & inhoud | Rendert de samenvatting. | Docent ziet overzicht en route naar Oefenaanbod. | Geen datamutatie. |
| 8 | Docent | Docent-frontpage | Kiest eventueel de Oefenaanbod-route. | Systeem opent reguliere oefenaanbodflow. | Vervolgusecase buiten deze usecase. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Docent heeft nog geen niveaus | Blok toont veilige lege staat en route naar Oefenaanbod. | Componentmelding / lege staat | Geen |
| ALT-002 | 2 | Docent is alleen collaborator op niveaus | Samenvatting toont alleen wat binnen collaboratorcontext zichtbaar mag zijn. | Niet van toepassing | Geen |
| ALT-003 | 4 | Er zijn categorieën zonder actieve oefeningen | Samenvatting telt of toont dit alleen wanneer de definitie dat toestaat. | Componentmelding / neutrale waarde | Geen |
| ALT-004 | 6 | Een tellerdefinitie is onduidelijk | Waarde wordt niet getoond totdat de definitie eenduidig is in ontwerpbron. | Generieke foutafhandeling | Geen |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | De docent-frontpage is een overzichts- en oriëntatiepagina en geen beheer- of mutatiepagina. |
| BR-002 | Contextafhankelijke acties waarvoor eerst een leerling, niveau, categorie of oefening gekozen moet worden, starten niet als losse generieke frontpageactie. |
| BR-003 | Alle getoonde aantallen en samenvattingen worden server-side afgeleid uit bestaande brondata. |
| BR-004 | Clientstate, routeparameters of oude browsercontext mogen niet bepalen welke docentcontext actief is. |
| BR-005 | Systeemnotificaties blokkeren het laden van de frontpage niet en worden pas na normale weergave gecontroleerd. |
| BR-006 | De frontpage introduceert geen aparte frontpagecache als bron van waarheid. |
| BR-007 | Een gebruiker met de rol Leerling kan niet tegelijk docent zijn binnen dezelfde accountcontext. |
| BR-008 | Docent- en ouder-/voogdcontext mogen wel gecombineerd voorkomen en worden volgens vaste prioriteit samengesteld. |
| BR-009 | De specifieke flow UC-DOC-FP-004 mag alleen gegevens tonen of bepalen die binnen de actuele docent- of gecombineerde rolcontext vallen. |
| BR-010 | Lege staten mogen functioneel informatief zijn, maar mogen geen automatische domeinmutaties starten. |
| BR-011 | Vervolgacties vanaf de frontpage moeten opnieuw server-side worden gevalideerd op de doelroute. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Sessiegebruiker | Moet server-side bekend, ingelogd en actief zijn. |
| Rolcontext | Moet worden afgeleid uit actieve UserRoles en Roles. |
| Docentcontext | Mag alleen actief zijn wanneer de gebruiker de actieve rol Docent bezit. |
| Clientstate | Mag alleen ondersteunend zijn en nooit als autorisatiebron gelden. |
| Samenvattingswaarden | Moeten een eenduidige definitie hebben van bronrecords, statusvoorwaarden en contextfilters. |
| Frontpageweergave | Mag geen gegevens tonen buiten de actuele docent- of gecombineerde rolcontext. |
| Docentfrontpageblok | Moet alleen informatie tonen die als compacte samenvatting is toegestaan. |
| Vervolgroute | Moet opnieuw via routeguard en autorisatielaag worden gecontroleerd. |
| Lege staat | Moet duidelijk zijn en mag geen gegevens uit andere contexten tonen. |
11. Datamutaties en events
Deze usecase toont een afgeleide samenvatting van niveaus en onderwijsinhoud. Er worden geen niveaus, categorieën, oefeningen, modules of collaboratorrecords gewijzigd.
| Onderdeel | Gedrag |
|---|---|
| Niveaus | Worden gelezen binnen eigenaarschap of toegestane collaboratorcontext van de docent. |
| Categorieën | Worden geteld vanuit bestaande koppelingen binnen de relevante niveaus. |
| Oefeningen | Worden geteld of samengevat op basis van bestaande oefeningen en hun status volgens de tellerdefinitie. |
| Collaborators | Kunnen als contextinformatie meetellen, maar wijzigen geen rechten of koppelingen. |
| Domeinevents | Niet van toepassing; de inhoudssamenvatting is readmodel- en presentatielogica. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
Users | De frontpage- of contextflow wijzigt geen accountgegevens. |
UserRoles | Rollen worden gelezen maar niet toegekend of ingetrokken. |
Roles | Roldefinities worden gelezen maar niet gewijzigd. |
UserRelationships | Relaties worden hoogstens gelezen voor context of samenvatting. |
TeacherLevels | Niveaus worden gelezen of geteld, maar niet aangemaakt of gewijzigd. |
TeacherLevelCategories | Categorie-koppelingen worden gelezen of geteld, maar niet aangepast. |
Exercises | Oefeningen worden gelezen of geteld, maar niet geconfigureerd. |
TeacherStudentAuthorizations | Autorisaties worden gelezen of geteld, maar niet aangepast. |
SystemMessages | Deze usecase maakt geen systeemberichten aan. |
SystemNotifications | Systeemnotificaties worden niet door deze usecase gemuteerd. |
13. State diagram
Niet van toepassing als statusdiagram. De niveaus- en inhoudsamenvatting wijzigt geen status van niveau, categorie, oefening, module of collaborator.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Frontpage- of contextweergave
16.2 Vervolgroute vanaf frontpage
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Gehele usecase | Deze frontpage- en contextafhandeling gebruikt routeguardgedrag, componentmeldingen, lege staten en bestaande generieke flows; er is geen domeinspecifieke popupregister-popup. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft het blok Niveaus & inhoud als compacte samenvatting die naar Oefenaanbod verwijst maar geen inhoudelijke beheeractie uitvoert. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, readmodels en tellers en frontendcompositie beschrijven de technische uitwerking. Leg tellerdefinities vast voor beheerde niveaus, actieve categorieën, oefeningen en collaboratorcontext binnen de docentcontext. |
| Software Requirements Specification | Beschrijft requirements voor contextgebonden inhoudssamenvattingen, veilige lege staten en routeguardcontrole bij doorklikken naar Oefenaanbod. |
| Database-informatie | Beschrijft dat niveau-, categorie-, oefening-, module- en collaboratorrecords voldoende statusinformatie bevatten voor eenduidige tellingen. |
| Ontwerpbronnen/registers | Verwerk business rules, autorisatiematrix en usecase-matrices; er is geen uitbreiding van command- of eventregister nodig. |
19. SRS-trace
Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.
| Usecase-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-DOC-FP-004-001 | SRS-RDM-001 SRS-RDM-002 SRS-RDM-005 SRS-TCH-001 AC-RDM-001 AC-RDM-002 AC-RDM-005 AC-TCH-001 | Inhoudssamenvattingen beperken tot de actuele docentcontext |
REQ-UC-DOC-FP-004-002 | SRS-RDM-001 SRS-RDM-003 SRS-RDM-005 SRS-CAT-001 SRS-LRN-009 SRS-TCH-002 AC-RDM-001 AC-RDM-003 AC-RDM-005 AC-CAT-001 AC-LRN-009 AC-TCH-002 | Niveaus, categorieën en oefeningen als afgeleide frontpagewaarden tonen |
REQ-UC-DOC-FP-004-003 | SRS-CAT-001 SRS-TCH-001 AC-CAT-001 AC-TCH-001 | Geen oefenaanbodmutaties vanaf de frontpage uitvoeren |
REQ-UC-DOC-FP-004-004 | SRS-RDM-001 SRS-RDM-002 SRS-TCH-006 AC-RDM-001 AC-RDM-002 AC-TCH-006 | Collaboratorcontext respecteren bij inhoudssamenvattingen |
REQ-UC-DOC-FP-004-005 | SRS-TCH-001 SRS-NFR-SEC-001 AC-TCH-001 AC-NFR-SEC-001 | Veilige lege toestanden tonen wanneer nog geen inhoud bestaat |
REQ-UC-DOC-FP-004-006 | SRS-CAT-001 SRS-TCH-001 AC-CAT-001 AC-TCH-001 | De reguliere Oefenaanbod-route gebruiken voor inhoudelijke vervolgacties |