UC-DOC-FP-003 — Leerlingenoverzichtsamenvatting tonen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-FP-003 |
| Naam | Leerlingenoverzichtsamenvatting tonen |
| Domein | Docent / Frontpage en context |
| Primaire actor | Docent |
| Secundaire actor(en) | OefenHub frontend, OefenHub backend, database, leerlingen-readmodel, autorisatielaag |
| Rolcontext | Ingelogde gebruiker met actieve docentcontext. |
| Betrokken schermen | Docent-frontpage, blok Leerlingenoverzicht, navigatie naar leerlingenpagina. |
| Gerelateerde usecases | UC-DOC-FP-001 — Docent-frontpage bekijken; UC-DOC-FP-002 — Docentcontext bepalen; UC-DOC-LLN-001 — Leerlingenoverzicht bekijken; UC-DOC-LLN-004 — Niveau-autorisaties van leerling bekijken; UC-DOC-LLN-007 — Bulk-niveau-autorisaties beheren |
| Primaire entiteiten | Users, UserRelationships, TeacherStudentAuthorizations, TeacherLevels, RelationshipInvitations |
| Secundaire entiteiten / events | leerlingensamenvatting-readmodel, veilige lege staat, routeverwijzing naar leerlingencontext |
| 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 leerlingen binnen de actuele docentcontext. Het blok helpt de docent oriënteren op gekoppelde leerlingen en autorisatiestatus, zonder rechtstreeks autorisaties te wijzigen.
De samenvatting mag bijvoorbeeld aantallen tonen voor gekoppelde leerlingen, leerlingen met actieve niveauautorisaties en leerlingen die nog aandacht vragen. De exacte waarden moeten eenduidig uit bronrecords en statusfilters worden afgeleid.
Nog niet geaccepteerde uitnodigingen blijven onderdeel van het relatiedomein en worden niet als actieve leerlingen gepresenteerd. De frontpage mag hoogstens compacte contextinformatie tonen en verwijst voor details naar de reguliere leerlingenroute.
3. Scope
Deze usecase omvat wel:
- tonen van compacte leerlinggerelateerde aantallen op de docent-frontpage
- afleiden van aantallen binnen de actuele docentcontext
- onderscheiden van actieve leerlingrelaties en openstaande uitnodigingscontext
- tonen van een veilige lege staat wanneer er geen gekoppelde leerlingen zijn
- verwijzen naar de reguliere leerlingenroute voor verdere acties
- voorkomen dat de frontpage autorisaties wijzigt
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 | De relevante relatie- en autorisatiegegevens zijn uitleesbaar. |
| PRE-003 | De betekenis van elk getoond aantal is eenduidig gedefinieerd. |
| PRE-004 | De frontpage is niet bedoeld voor mutaties aan leerlingautorisaties. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De docent ziet alleen leerlinginformatie binnen de eigen docentcontext. |
| POST-002 | De frontpage heeft geen leerlingrelaties of niveauautorisaties aangemaakt of gewijzigd. |
| POST-003 | Nog niet geaccepteerde uitnodigingen zijn niet als actieve leerlingen geteld. |
| POST-004 | De docent kan via reguliere navigatie naar de leerlingenpagina doorgaan. |
6. Trigger
De usecase start wanneer de docent-frontpage het blok Leerlingenoverzicht moet samenstellen.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | OefenHub backend | Docentcontext | Ontvangt de vastgestelde docentcontext. | Backend gebruikt alleen actuele server-side context. | UC-DOC-FP-002. |
| 2 | OefenHub backend | Relatie-readmodel | Bepaalt actieve docent-leerlingrelaties. | Alleen actieve relaties tellen mee als gekoppelde leerlingen. | Geen open uitnodigingen als actieve leerling. |
| 3 | OefenHub backend | Autorisatie-readmodel | Bepaalt leerlingen met actieve niveauautorisaties. | Teller wordt beperkt tot autorisaties van deze docentcontext. | Geen informatie over andere docenten. |
| 4 | OefenHub backend | Autorisatie-readmodel | Bepaalt leerlingen zonder of met aandacht vragende autorisatie. | Samenvatting kan aangeven dat opvolging nodig is. | Geen mutatie. |
| 5 | OefenHub backend | Frontpage readmodel | Stelt compacte samenvatting samen. | Alle waarden krijgen duidelijke betekenis. | Geen aparte frontpagetabel. |
| 6 | OefenHub frontend | Blok Leerlingenoverzicht | Rendert de samenvatting. | Docent ziet aantallen en vaste route naar leerlingenpagina. | Geen directe autorisatieknoppen. |
| 7 | Docent | Docent-frontpage | Kiest eventueel vervolgroute. | Systeem opent reguliere leerlingenroute. | Vervolgflow buiten deze usecase. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Geen actieve docent-leerlingrelaties | Blok toont veilige lege staat. | Componentmelding / lege staat | Geen |
| ALT-002 | 2 | Er zijn alleen pending uitnodigingen | Deze worden niet als actieve leerlingen geteld. | Componentmelding / toelichting | Geen |
| ALT-003 | 3 | Leerlingen hebben geen actieve niveauautorisatie | Samenvatting mag dit als aandachtspunt tonen. | Componentmelding / teller | Geen |
| ALT-004 | 5 | Tellerdefinitie kan niet eenduidig worden bepaald | Waarde wordt niet misleidend getoond; systeem gebruikt veilige foutafhandeling. | 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-003 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 leerlingenoverzichtsamenvatting. Er worden geen relaties, uitnodigingen, leerlingen of autorisaties gewijzigd.
| Onderdeel | Gedrag |
|---|---|
| Gekoppelde leerlingen | Worden geteld vanuit actieve docent-leerlingrelaties binnen de actuele docentcontext. |
| Actieve niveauautorisaties | Worden geteld op basis van bestaande autorisatierecords binnen dezelfde docentcontext. |
| Nog te autoriseren leerlingen | Worden afgeleid uit actieve relaties zonder passende actieve niveauautorisatie volgens de tellerdefinitie. |
| Lege staat | Wordt als presentatietoestand getoond en veroorzaakt geen uitnodiging, relatie- of autorisatieflow. |
| Domeinevents | Niet van toepassing; de samenvatting 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 leerlingenoverzichtsamenvatting wijzigt geen persistente status van relaties, uitnodigingen of niveauautorisaties.
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 leerlingenoverzichtsblok als compacte frontpagesamenvatting zonder leerlingselectie of autorisatiemutatie. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, readmodels en tellers en frontendcompositie beschrijven de technische uitwerking. Leg tellerdefinities vast voor gekoppelde leerlingen, leerlingen met actieve niveauautorisatie en leerlingen waarvoor actie nodig is. |
| Software Requirements Specification | Beschrijft requirements voor contextgebonden tellingen, uitsluiten van pending uitnodigingen als actieve leerlingen en veilige lege staten. |
| Database-informatie | Beschrijft dat relaties, uitnodigingen en niveauautorisaties voldoende statusvelden hebben om de samenvatting eenduidig af te leiden. |
| 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-003-001 | SRS-LRN-009 SRS-TCH-001 AC-LRN-009 AC-TCH-001 | Leerlinggerelateerde frontpage-aantallen beperken tot de actuele docentcontext |
REQ-UC-DOC-FP-003-002 | SRS-REL-001 SRS-LRN-009 SRS-TCH-001 AC-REL-001 AC-LRN-009 AC-TCH-001 | Pending uitnodigingen niet als actieve gekoppelde leerlingen tellen |
REQ-UC-DOC-FP-003-003 | SRS-AUTH-001 SRS-CAT-001 SRS-LRN-009 SRS-TCH-003 AC-AUTH-001 AC-CAT-001 AC-LRN-009 AC-TCH-003 | Leerlingen met actieve niveauautorisaties apart kunnen samenvatten |
REQ-UC-DOC-FP-003-004 | SRS-RDM-001 SRS-RDM-002 SRS-RDM-003 SRS-TCH-001 AC-RDM-001 AC-RDM-002 AC-RDM-003 AC-TCH-001 | Frontpage-samenvattingen read-only tonen |
REQ-UC-DOC-FP-003-005 | SRS-RDM-001 SRS-RDM-005 SRS-RDM-009 SRS-LRN-009 SRS-TCH-001 SRS-NFR-SEC-001 AC-RDM-001 AC-RDM-005 AC-RDM-009 AC-LRN-009 AC-TCH-001 AC-NFR-SEC-001 | Bij ontbrekende leerlingen een veilige lege staat tonen |
REQ-UC-DOC-FP-003-006 | SRS-LRN-009 SRS-TCH-001 AC-LRN-009 AC-TCH-001 | De reguliere leerlingenroute gebruiken voor vervolgacties |