UC-OVG-FP-001 — Ouder-/voogd-frontpage bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-OVG-FP-001 |
| Naam | Ouder-/voogd-frontpage bekijken |
| Domein | Ouder/voogd / Frontpage en context |
| Primaire actor | Ouder/voogd |
| Secundaire actor(en) | Frontend, backend, autorisatiecomponent, database, systeemnotificatiecomponent |
| Rolcontext | Actieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Ouder-/voogd-frontpage |
| Gerelateerde usecases | UC-OVG-FP-002, UC-OVG-FP-003, UC-OVG-FP-004, UC-OVG-FP-005, UC-GEN-NOT-001, UC-GEN-NOT-002, UC-GEN-ACC-002 |
| Primaire entiteiten | Users, Roles, UserRoles, UserRelationships, UserSettings, ExerciseRuns |
| Secundaire entiteiten / events | SystemNotifications, relatie-readmodels, resultaat-readmodels; geen domeinevents |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
De usecase beschrijft hoe een gebruiker met actieve ouder-/voogdrol de ouder-/voogd-frontpage opent. De frontpage is een compacte oriëntatiepagina met samenvattingsblokken voor gekoppelde kinderen en resultaten. De pagina bevat geen live-statusblok en start geen detailacties die eerst een specifiek kind vereisen.
De frontpage wordt volledig server-side opgebouwd vanuit de actuele ouder-/voogdcontext. Clientstate, routeparameters of eerder gekozen kinderen mogen niet bepalen welke kinderen of resultaten zichtbaar worden. Systeemnotificaties worden pas na het succesvol laden van de frontpage gecontroleerd en blokkeren de frontpage niet vooraf.
Uitgangspunten
- Een ouder-/voogd-frontpage is een overzichts- en oriëntatiepagina, geen detail- of beheerscherm.
- De frontpage bevat geen live-statusblok; live meekijken loopt via Online.
- Contextafhankelijke acties vereisen eerst een gekozen kind of expliciete rolcontext.
- Een ouder/voogd kan geen oefeningen genereren of starten voor een kind.
- Alle zichtbare kinderen worden server-side afgeleid uit actieve ouder-/voogdrelaties.
3. Scope
Deze usecase beschrijft:
- Laden van de ouder-/voogd-frontpage na server-side contextcontrole.
- Tonen van compacte blokken Kinderenoverzicht en Resultatenoverzicht.
- Bepalen van veilige lege staat wanneer geen actieve kindrelaties bestaan.
- Startpunten tonen naar Kinderen en Online zonder een kinddetailactie direct uit te voeren.
- Controle op systeemnotificaties na succesvolle frontpageload.
Deze usecase beschrijft niet:
- Kindinformatie openen; dit hoort bij UC-OVG-KIND-004.
- Geschiedenis of resultaatdetails tonen; dit hoort bij ouder-/voogdresultaten en geschiedenis.
- Live meekijken starten; dit hoort bij ouder-/voogd online en live meekijken.
- Relatie-uitnodigingen maken of accepteren; dit blijft bronhoudend in generiek/relaties.
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 gebruiker is ingelogd. |
| 002 | De backend heeft een actieve ouder-/voogdrol vastgesteld. |
| 003 | De gebruiker heeft geen actieve leerlingrol. |
| 004 | De frontpage-route is bereikbaar binnen de actieve frontendcontext. |
5. Post-condities
| ID | Waarde |
|---|---|
| 001 | De frontpage is getoond met ouder-/voogdblokinhoud of veilige lege staat. |
| 002 | Er zijn geen relaties, resultaten of oefenruns gewijzigd. |
| 003 | Systeemnotificatiecontrole kan na frontpageload starten. |
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 | Opent de startpagina | Frontend vraagt ouder-/voogdfrontpage op | Actieve sessie |
| 2 | Backend | Bepaalt rolcontext | Ouder-/voogdcontext is geldig of wordt geweigerd | UserRoles |
| 3 | Backend | Laadt actieve kindrelaties | Kinderenoverzicht kan worden opgebouwd | UserRelationships |
| 4 | Backend | Laadt resultaatreadmodels | Resultatenoverzicht krijgt compacte waarden | ExerciseRuns |
| 5 | Frontend | Toont frontpageblokken | Kinderenoverzicht en Resultatenoverzicht zijn zichtbaar | Readmodel |
| 6 | Frontend | Start notificatiecontrole | Eerste relevante systeemnotificatie kan boven de geladen pagina verschijnen | SystemNotifications |
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 actieve ouder-/voogdrol: de route wordt server-side geweigerd en de gebruiker krijgt veilige toegang-geweigerdafhandeling. |
| 002 | Geen gekoppelde kinderen: de frontpage toont een lege staat zonder foutmelding en zonder detailacties. |
| 003 | Resultaatreadmodel tijdelijk niet beschikbaar: de frontpage blijft bruikbaar; het resultatenblok toont geen misleidende totalen. |
| 004 | Gebruiker heeft ook docentrol: de gecombineerde frontpageflow uit UC-OVG-FP-005 is leidend. |
| 005 | Systeemnotificatie actief: de notificatie wordt na frontpageload getoond en is geen onderdeel van het frontpage-readmodel. |
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 | Een ouder-/voogd-frontpage is een overzichts- en oriëntatiepagina, geen detail- of beheerscherm. |
| 002 | De frontpage bevat geen live-statusblok; live meekijken loopt via Online. |
| 003 | Contextafhankelijke acties vereisen eerst een gekozen kind of expliciete rolcontext. |
| 004 | Een ouder/voogd kan geen oefeningen genereren of starten voor een kind. |
| 005 | Alle zichtbare kinderen worden server-side afgeleid uit actieve ouder-/voogdrelaties. |
9.1 Readmodel- en tellerdefinities
| Waarde | Definitie | Uitsluitingen / grenzen |
|---|---|---|
| Aantal gekoppelde kinderen | Telt actieve UserRelationships met ouder-/voogdrelatie voor de ingelogde ouder/voogd. | Beëindigde relaties, verlopen uitnodigingen en niet-geaccepteerde uitnodigingen tellen niet mee. |
| Resultaatsamenvatting | Afgeleid uit afgeronde ExerciseRuns van actief gekoppelde kinderen. | Niet-afgeronde runs en docenttestruns tellen niet mee. |
| Systeemnotificatiecontrole | Afgeleid na frontpageload uit actieve SiteNotifications/SystemNotifications. | Notificaties blokkeren de frontpage niet vooraf. |
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 | De backend valideert dat de gebruiker de rol Ouder/voogd bezit. |
| 002 | De backend sluit accounts met leerlingrol uit van gecombineerde ouder-/voogdcontext. |
| 003 | Alle tellerwaarden worden server-side afgeleid binnen de actieve ouder-/voogdrelaties. |
| 004 | Een frontpageblok mag geen kindinformatie tonen waarvoor de relatie niet actief is. |
11. Datamutaties en events
| ID | Waarde |
|---|---|
| 001 | Geen domeinmutaties. |
| 002 | De frontpageweergave, samenvattingswaarden en systeemnotificatiecontrole zijn afgeleide lees- en presentatielogica. |
12. Geen datamutaties
| ID | Waarde |
|---|---|
| 001 | UserRelationships worden niet aangemaakt, gewijzigd of beëindigd. |
| 002 | ExerciseRuns, resultaten en statistieken worden niet gewijzigd. |
| 003 | UserSettings worden niet gewijzigd. |
| 004 | SystemMessages worden niet aangemaakt vanuit het openen van de frontpage. |
13. State diagram
Niet van toepassing. Deze usecase wijzigt geen persistent statusobject. De zichtbare frontpagetoestand is een afgeleide UI-toestand op basis van actuele rolcontext, actieve ouder-/voogdrelaties, resultaatreadmodels en systeemnotificatiecontrole na de frontpageload.
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-/voogdnavigatie bevat Kinderen en Online. |
| FO/TO/SRS-002 | De ouder-/voogd-frontpage bevat compacte blokken Kinderenoverzicht en Resultatenoverzicht. |
| FO/TO/SRS-003 | Frontpages blokkeren niet op systeemnotificaties; notificaties worden na laden gecontroleerd. |
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-001-001 | SRS-AUTH-001 SRS-GUA-001 AC-AUTH-001 AC-GUA-001 | De ouder-/voogd-frontpage alleen tonen na server-side vastgestelde ouder-/voogdcontext |
REQ-UC-OVG-FP-001-002 | SRS-RDM-001 SRS-RDM-003 SRS-RDM-007 SRS-REL-001 SRS-GUA-001 AC-RDM-001 AC-RDM-003 AC-RDM-007 AC-REL-001 AC-GUA-001 | Het Kinderenoverzicht op de frontpage uitsluitend baseren op actieve ouder-/voogdrelaties |
REQ-UC-OVG-FP-001-003 | SRS-GUA-002 SRS-NFR-AUD-001 AC-GUA-002 AC-NFR-AUD-001 | Resultaatwaarden op de frontpage uitsluitend samenvattend tonen en geen volledige geschiedenis laden |
REQ-UC-OVG-FP-001-004 | SRS-GUA-001 AC-GUA-001 | Vanaf de ouder-/voogd-frontpage geen kinddetailactie uitvoeren zonder expliciete selectie |
REQ-UC-OVG-FP-001-005 | SRS-GUA-001 SRS-POP-002 AC-GUA-001 AC-POP-002 | Systeemnotificaties pas na succesvolle frontpageload controleren |