UC-OVG-FP-003 — Kinderenoverzichtsamenvatting tonen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-OVG-FP-003 |
| Naam | Kinderenoverzichtsamenvatting tonen |
| Domein | Ouder/voogd / Frontpage en context |
| Primaire actor | Ouder/voogd |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent |
| Rolcontext | Actieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Ouder-/voogd-frontpage, Kinderenoverzichtblok |
| Gerelateerde usecases | UC-OVG-FP-001, UC-OVG-KIND-001, UC-OVG-KIND-003, UC-OVG-KIND-004 |
| Primaire entiteiten | Users, UserRelationships |
| Secundaire entiteiten / events | Kinderenoverzicht-readmodel; geen domeinevents |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
De usecase beschrijft het samenvattingsblok Kinderenoverzicht op de ouder-/voogd-frontpage. Het blok toont compacte informatie over gekoppelde kinderen, zonder dat het een detailweergave of relatiebeheerpagina wordt.
De samenvatting is afgeleid uit actieve ouder-/voogdrelaties. Er worden geen filtertabs of statusfilters getoond op de frontpage; de frontpage is bedoeld als oriëntatie en verwijst door naar de pagina Kinderen voor selectie en detailinformatie.
Uitgangspunten
- Alleen actieve ouder-/voogdrelaties tellen mee.
- Het blok toont geen filteropties zoals Alles, Actief of Wachtend.
- Het blok start geen live meekijksessie.
- Het blok toont geen volledige geschiedenis.
- Het blok is afgeleid en geen persistente samenvattingstabel.
3. Scope
Deze usecase beschrijft:
- Afleiden van het aantal actief gekoppelde kinderen.
- Tonen van compacte verwijzing naar de pagina Kinderen.
- Tonen van veilige lege staat wanneer er geen kinderen gekoppeld zijn.
- Voorkomen dat kinddetail rechtstreeks vanuit het samenvattingsblok wordt geopend zonder bewuste vervolgactie.
Deze usecase beschrijft niet:
- Kinddetail tonen; dit hoort bij UC-OVG-KIND-004.
- Sortering en naamweergave binnen de kinderenpagina; dit hoort bij UC-OVG-KIND-002.
- Ontkoppelen; dit hoort bij UC-OVG-KIND-005.
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 | De ouder-/voogdcontext is vastgesteld. |
| 002 | De gebruiker heeft toegang tot de ouder-/voogd-frontpage. |
| 003 | Actieve ouder-/voogdrelaties zijn raadpleegbaar. |
5. Post-condities
| ID | Waarde |
|---|---|
| 001 | Het Kinderenoverzichtblok toont geautoriseerde samenvattingsinformatie of lege staat. |
| 002 | Er is geen relatie of kindrecord gewijzigd. |
| 003 | De gebruiker kan naar Kinderen navigeren. |
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 | Backend | Leest actieve ouder-/voogdrelaties | Geautoriseerde kinderen zijn bekend | UserRelationships |
| 2 | Backend | Telt gekoppelde kinderen | Aantal is afgeleid | Readmodel |
| 3 | Backend | Bepaalt optionele korte naamweergave | Samenvatting blijft compact | Users |
| 4 | Frontend | Toont blok Kinderenoverzicht | Aantal en navigatie zijn zichtbaar | Viewmodel |
| 5 | Ouder/voogd | Kiest eventueel vervolg naar Kinderen | Kinderenpagina kan openen | Navigatie |
7.1 Scherm- en routegedrag
- De pagina wordt opgebouwd als overzichts- en oriëntatiepagina, niet als mutatiepagina.
- Blokken tonen compacte waarden en verwijzen naar onderliggende routes voor detailacties.
- Bij lege of niet beschikbare data wordt een veilige lege staat getoond in plaats van gedeeltelijk ongeautoriseerde data.
- De frontend mag visuele keuzes tonen, maar backendautorisatie bepaalt de dataset.
8. Alternatieve en exceptionele processtromen
| ID | Waarde |
|---|---|
| 001 | Geen kinderen: toon lege staat met uitleg en zonder foutmelding. |
| 002 | Kindrelatie is intussen beëindigd: kind telt niet mee en wordt niet getoond. |
| 003 | Een gekoppeld account is inactief of geanonimiseerd: toon geen actuele persoonsgegevens buiten toegestane context. |
| 004 | Readmodel geeft meer kinderen dan autorisatie toestaat: backend-filter is leidend. |
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 | Alleen actieve ouder-/voogdrelaties tellen mee. |
| 002 | Het blok toont geen filteropties zoals Alles, Actief of Wachtend. |
| 003 | Het blok start geen live meekijksessie. |
| 004 | Het blok toont geen volledige geschiedenis. |
| 005 | Het blok is afgeleid en geen persistente samenvattingstabel. |
9.1 Readmodel- en tellerdefinities
| Waarde | Definitie | Uitsluitingen / grenzen |
|---|---|---|
| Gekoppelde kinderen | Telt actieve ouder-/voogdrelaties. | Inactieve relaties en openstaande uitnodigingen tellen niet mee. |
| Frontpageweergave | Toont compacte samenvatting en navigatie naar Kinderen. | Geen detailgegevens, filters of ontkoppelacties op de frontpage. |
| Lege staat | Afgeleid wanneer teller nul is. | Lege staat is geen foutstatus. |
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 | Relatietype moet ouder-/voogdrelatie zijn. |
| 002 | Relatie moet actief zijn. |
| 003 | Ontvangend account moet binnen de relatie het kind/leerlingaccount zijn. |
| 004 | Persoonsgegevens mogen alleen worden getoond voor geautoriseerde kinderen. |
11. Datamutaties en events
| ID | Waarde |
|---|---|
| 001 | Geen domeinmutaties. |
12. Geen datamutaties
| ID | Waarde |
|---|---|
| 001 | UserRelationships worden niet gewijzigd. |
| 002 | Users worden niet gewijzigd. |
| 003 | UserSettings worden niet gewijzigd. |
| 004 | ExerciseRuns worden niet gelezen buiten samenvattingscontext. |
13. State diagram
Niet van toepassing. Deze usecase wijzigt geen persistent statusobject. Het Kinderenoverzichtblok toont een afgeleide readmodeltoestand of een lege staat.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Gebruik | Opmerking |
|---|---|---|
| Niet van toepassing | Deze usecase gebruikt geen popupregister-popup. | Lege staten en inline meldingen zijn scherminhoud en geen popupdefinitie. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Aspect | Afleiding |
|---|---|
| FO/TO/SRS-001 | Ouder-/voogd-frontpage bevat een compact Kinderenoverzicht. |
| FO/TO/SRS-002 | Detailacties starten pas na selectie van een kind of via de pagina Kinderen. |
| FO/TO/SRS-003 | De pagina Kinderen is functioneel eenvoudiger dan docent/Leerlingen. |
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-FP-003-001 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-002 SRS-GUA-001 AC-AUTH-001 AC-RDM-001 AC-RDM-002 AC-GUA-001 | Het aantal gekoppelde kinderen server-side afleiden |
REQ-UC-OVG-FP-003-002 | SRS-RDM-001 SRS-RDM-007 SRS-REL-003 SRS-REL-006 SRS-GUA-001 AC-RDM-001 AC-RDM-007 AC-REL-003 AC-REL-006 AC-GUA-001 | Beëindigde relaties uitsluiten uit het Kinderenoverzichtblok |
REQ-UC-OVG-FP-003-003 | SRS-RDM-001 SRS-RDM-009 SRS-GUA-001 SRS-NFR-SEC-001 AC-RDM-001 AC-RDM-009 AC-GUA-001 AC-NFR-SEC-001 | Bij nul kinderen een veilige lege staat tonen |
REQ-UC-OVG-FP-003-004 | SRS-RDM-001 SRS-RDM-002 SRS-GUA-001 AC-RDM-001 AC-RDM-002 AC-GUA-001 | Geen kinddetail automatisch openen vanuit het samenvattingsblok |
REQ-UC-OVG-FP-003-005 | SRS-GUA-001 AC-GUA-001 | Het blok beperken tot compacte frontpage-informatie |