UC-OVG-KIND-004 — Kindinformatie bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-OVG-KIND-004 |
| Naam | Kindinformatie bekijken |
| Domein | Ouder/voogd / Kinderen en koppelingen |
| Primaire actor | Ouder/voogd |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent |
| Rolcontext | Actieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Kinderen, Kindinformatie |
| Gerelateerde usecases | UC-OVG-KIND-003, UC-OVG-KIND-005 |
| Primaire entiteiten | Users, UserRelationships, ExerciseRuns, Levels, Categories |
| Secundaire entiteiten / events | Kindinformatie-readmodel |
| Gerelateerde popups | OVG_CHILD_CONTEXT_NOT_AVAILABLE |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
De usecase beschrijft hoe de ouder/voogd de informatiepagina van een geselecteerd kind opent. De pagina toont naamgegevens, e-mailadres, gekoppeld sinds en een tabel Aantal oefeningen gemaakt.
De tabel toont eerst het totaal aantal afgeronde oefeningen en daarna, aflopend gesorteerd op het moment waarop de leerling het niveau had, alle niveaus met daaronder totalen per categorie. De pagina biedt vervolgacties Bekijk geschiedenis en Ontkoppel leerling.
Uitgangspunten
- Kindinformatie is alleen zichtbaar via actieve ouder-/voogdrelatie.
- Aantal oefeningen gemaakt telt alleen afgeronde runs.
- Het totaal wordt vóór de niveausamenvatting getoond.
- Niveaus worden aflopend gesorteerd op het moment waarop de leerling het niveau had.
- Een ouder/voogd kan vanaf deze pagina geen oefening starten.
3. Scope
Deze usecase beschrijft:
- Tonen van kindinformatie voor één geselecteerd kind.
- Tonen van gekoppeld-sinds-informatie uit de ouder-/voogdrelatie.
- Tonen van totalen Aantal oefeningen gemaakt.
- Tonen van niveaus en categorieën in ouder-/voogdcontext.
- Beschikbaar maken van Bekijk geschiedenis en Ontkoppel leerling.
Deze usecase beschrijft niet:
- Volledige resultaatdetails of vraag-antwoorden tonen.
- PDF-export uitvoeren.
- Kindprofiel wijzigen.
- Oefeningen starten of genereren voor het kind.
3.1 Afbakening met aangrenzende domeinen
| Onderdeel | Afbakening |
|---|---|
| Generiek / Relaties | Relatie-uitnodigingen, acceptatie en algemene relatievorming blijven bronhoudend in het generieke relatiedomein. |
| Generiek / Berichten | Systeemberichten en leesstatussen blijven bronhoudend in het centrale berichtendomein. |
| Leerling | De leerling blijft eigenaar van eigen oefenuitvoering; ouder/voogd kan niet namens het kind oefenen. |
| Docent | Docentautorisaties en docentresultaatinzage blijven begrensd door docentcontext; ouder-/voogdcontext gebruikt eigen relatiegrens. |
4. Pre-condities
| ID | Waarde |
|---|---|
| 001 | Een kind is geselecteerd. |
| 002 | De selectie is server-side gevalideerd tegen een actieve ouder-/voogdrelatie. |
| 003 | Afgeronde runs van het kind zijn raadpleegbaar voor samenvatting. |
5. Post-condities
| ID | Waarde |
|---|---|
| 001 | Kindinformatie is getoond of veilig geblokkeerd. |
| 002 | Geen kindprofiel, relatie of resultaat is gewijzigd. |
| 003 | Vervolgacties kunnen starten met dezelfde server-side hercontrole. |
6. Trigger
De usecase start wanneer de ouder/voogd de betreffende ouder-/voogdroute opent of de beschreven actie uitvoert binnen de actieve ouder-/voogdcontext.
7. Normale processtroom
| Stap | Actor / component | Actie | Resultaat | Data / controle |
|---|---|---|---|---|
| 1 | Ouder/voogd | Kiest Toon informatie | Frontend stuurt kindcontext naar backend | Selectie |
| 2 | Backend | Controleert actieve ouder-/voogdrelatie | Kindinformatie mag worden gelezen | UserRelationships |
| 3 | Backend | Laadt persoonsgegevens binnen scope | Naam en e-mailadres beschikbaar | Users |
| 4 | Backend | Laadt gekoppeld-sinds | Relatiecontext zichtbaar | UserRelationships |
| 5 | Backend | Berekenen oefentotalen | Totaal, niveaus en categorieën beschikbaar | ExerciseRuns |
| 6 | Frontend | Toont kindinformatie | Vervolgacties zichtbaar | Viewmodel |
7.1 Scherm- en routegedrag
- De pagina Kinderen toont een compacte lijst en gebruikt selectie als bewuste tussenstap.
- Vervolgacties blijven uitgeschakeld totdat een kind is geselecteerd.
- Bij wijziging van relatie- of autorisatiestatus wordt oude clientstate ongeldig gemaakt.
- De gebruiker krijgt geen docentgerichte filters of beheeracties te zien.
8. Alternatieve en exceptionele processtromen
| ID | Waarde |
|---|---|
| 001 | Relatie ontbreekt of is beëindigd: informatiepagina wordt niet geopend. |
| 002 | Geen afgeronde oefeningen: tabel toont totaal 0 en geen misleidende niveautotalen. |
| 003 | Historische niveaunaam gewijzigd: overzicht gebruikt betekenisvolle historische of opgeslagen context volgens runmodel. |
| 004 | Kindaccount geanonimiseerd: actuele persoonsgegevens worden niet getoond buiten toegestane historische aanduiding. |
8.1 Afhandeling van verouderde of ongeldige clientstate
- De backend herhaalt de autorisatiecontrole bij iedere vervolgactie.
- Oude selectie-, route- of browsercontext wordt genegeerd wanneer de actuele server-side context geen toegang meer geeft.
- De frontend mag verouderde weergave herstellen door opnieuw het actuele viewmodel op te vragen.
9. Business rules
| ID | Waarde |
|---|---|
| 001 | Kindinformatie is alleen zichtbaar via actieve ouder-/voogdrelatie. |
| 002 | Aantal oefeningen gemaakt telt alleen afgeronde runs. |
| 003 | Het totaal wordt vóór de niveausamenvatting getoond. |
| 004 | Niveaus worden aflopend gesorteerd op het moment waarop de leerling het niveau had. |
| 005 | Een ouder/voogd kan vanaf deze pagina geen oefening starten. |
9.1 Readmodel- en tellerdefinities
| Waarde | Definitie | Uitsluitingen / grenzen |
|---|---|---|
| Gekoppeld sinds | Datum uit actieve ouder-/voogdrelatie. | Niet afgeleid uit accountaanmaakdatum. |
| Aantal oefeningen gemaakt | Telt afgeronde ExerciseRuns van het kind. | Niet-afgeronde runs en testruns tellen niet mee. |
| Niveaus en categorieën | Groepeert totalen op historische niveau- en categoriecontext. | Oude resultaten worden niet herschreven door wijzigingen in naamgeving of autorisaties na afronding. |
9.2 Autorisatie- en privacygrenzen
- De zichtbare dataset wordt altijd server-side beperkt tot de actieve ouder-/voogdcontext.
- Persoonsgegevens van kinderen worden alleen getoond zolang er een actieve ouder-/voogdrelatie bestaat.
- Historische oefenresultaten worden gelezen binnen de toegestane context, maar niet gewijzigd door raadplegen of samenvatten.
10. Datavalidatie
| ID | Waarde |
|---|---|
| 001 | Kind-ID moet binnen actieve ouder-/voogdrelatie vallen. |
| 002 | Run moet bij het geselecteerde kind horen. |
| 003 | Run moet afgerond zijn om mee te tellen. |
| 004 | Persoonsgegevens mogen alleen binnen actuele autorisatie worden weergegeven. |
11. Datamutaties en events
| ID | Waarde |
|---|---|
| 001 | Geen domeinmutaties. |
12. Geen datamutaties
| ID | Waarde |
|---|---|
| 001 | Users worden niet gewijzigd. |
| 002 | UserRelationships worden niet gewijzigd. |
| 003 | ExerciseRuns worden niet gewijzigd of herberekend. |
| 004 | UserSettings worden niet gewijzigd. |
13. State diagram
Niet van toepassing.
Deze usecase toont een readmodel voor één geselecteerd kind en wijzigt geen persistente status van kind, relatie of oefenresultaat.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Gebruik | Opmerking |
|---|---|---|
| OVG_CHILD_CONTEXT_NOT_AVAILABLE | Gebruik binnen deze usecase. | Tekst, knoppen, acties en eventuele inputdefinitie blijven bronhoudend in het popupregister. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Aspect | Afleiding |
|---|---|
| FO/TO/SRS-001 | Knop Toon informatie opent detailpagina met naam, e-mailadres, gekoppeld sinds en Aantal oefeningen gemaakt. |
| FO/TO/SRS-002 | Bij ouder/voogd toont de tabel eerst totaal, daarna niveaus met totalen per categorie. |
| FO/TO/SRS-003 | Vanuit deze pagina zijn Bekijk geschiedenis en Ontkoppel leerling beschikbaar. |
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-OVG-KIND-004-001 | SRS-REL-001 SRS-GUA-001 AC-REL-001 AC-GUA-001 | Kindinformatie alleen tonen binnen actieve ouder-/voogdrelatie |
REQ-UC-OVG-KIND-004-002 | SRS-REL-001 SRS-GUA-001 AC-REL-001 AC-GUA-001 | Gekoppeld sinds tonen vanuit de relatiecontext |
REQ-UC-OVG-KIND-004-003 | SRS-LRN-008 SRS-GUA-001 AC-LRN-008 AC-GUA-001 | Aantal oefeningen gemaakt baseren op afgeronde runs |
REQ-UC-OVG-KIND-004-004 | SRS-CAT-001 SRS-GUA-001 AC-CAT-001 AC-GUA-001 | Eerst totaal tonen en daarna niveaus met categorietotalen |
REQ-UC-OVG-KIND-004-005 | SRS-GUA-001 AC-GUA-001 | Geen oefenstartactie aanbieden vanuit kindinformatie |