Skip to main content

UC-OVG-RES-002 — Kindgeschiedenis openen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-RES-002
NaamKindgeschiedenis openen
DomeinOuder/voogd / Resultaten en geschiedenis
Primaire actorOuder/voogd
Secundaire actor(en)Frontend, backend, database
RolcontextActieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenKindinformatie, Kindgeschiedenis
Gerelateerde usecasesUC-OVG-KIND-004, UC-OVG-RES-001, UC-OVG-RES-003, UC-LLN-HIS-004
Primaire entiteitenUserRelationships, ExerciseRuns, Levels, Categories, Exercises
Secundaire entiteiten / eventsGuardianHistoryReadModel
Gerelateerde popupsPOP-OVG-HISTORY-ACCESS-DENIED, POP-OVG-HISTORY-NOT-AVAILABLE
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een ouder/voogd vanuit een geselecteerd kind de volledige oefengeschiedenis opent. De pagina toont afgeronde runs van het kind over alle niveaus, categorieën en oefeningen.

De kindgeschiedenis gebruikt dezelfde historische runcontext als de leerlinggeschiedenis, maar met ouder-/voogdautorisatie als toegangspoort. De ouder/voogd kan geen resultaten verwijderen en geen oefening namens het kind opnieuw starten.

Uitgangspunten

  • Kindgeschiedenis is alleen beschikbaar voor actief gekoppelde kinderen.
  • De ouder-/voogdcontext geeft inzicht in alle niveaus van het kind.
  • Geschiedenis toont alleen afgeronde runs.
  • De pagina is read-only.
  • De route mag niet vanuit clientstate toegang tot een ander kind afdwingen.

3. Scope

Deze usecase beschrijft:

  • openen van kindgeschiedenis vanuit kindinformatie;
  • server-side valideren van ouder-/voogdrelatie;
  • ophalen van afgeronde runs over alle niveaus;
  • tonen van paginering en filterstartwaarden;
  • voorbereiden van detailroute per afgeronde run.

Deze usecase beschrijft niet:

  • geschiedenis van niet-gekoppelde kinderen;
  • verwijderen van geschiedenis;
  • nieuwe oefening starten;
  • docentautorisaties beheren.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Leerling / ResultatenDe historische run, statistiekvelden en PDF-bron blijven dezelfde bron als in het leerlingdomein; de ouder-/voogdweergave voegt alleen autorisatie en selectie op oudercontext toe.
Docent / ResultatenDocentresultaten blijven beperkt tot de eigen docentcontext; ouder/voogd mag juist alle niveaus van het gekoppelde kind zien.
Generiek / RelatiesRelatievorming, uitnodigingen en algemene relatie-lifecycle blijven buiten deze resultaatusecases.
Database / ReadmodelsTellers, filters en overzichten zijn afgeleide readmodels boven bestaande relatie-, niveau-, oefening- en rungegevens.

4. Pre-condities

| 001 | Ouder/voogd is ingelogd. | | 002 | Een kind is geselecteerd. | | 003 | Er bestaat een actieve ouder-/voogdrelatie. | | 004 | De kindgeschiedenispagina is bereikbaar via de ouder-/voogdroute. |

5. Post-condities

| 001 | De kindgeschiedenis is getoond of veilig geblokkeerd. | | 002 | De standaardfilter is toegepast. | | 003 | Geen run- of relatiegegevens zijn gewijzigd. | | 004 | De gebruiker kan een afgeronde run openen indien aanwezig. |

6. Trigger

De ouder/voogd kiest Bekijk geschiedenis bij een geselecteerd kind.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1Ouder/voogdKlikt Bekijk geschiedenisFrontend opent kindgeschiedenisrouteKindselectie
2FrontendVraagt geschiedenisreadmodel opBackend ontvangt kindcontextRouteparameter + sessie
3BackendValideert actieve relatieToegang wordt toegestaanUserRelationships
4BackendHaalt afgeronde runs opGeschiedenisregels worden samengesteldExerciseRuns
5FrontendToont tabel en filtersOuder/voogd ziet geschiedenisGuardianHistoryReadModel
6Ouder/voogdSelecteert optioneel runregelDetailroute wordt gestartUC-OVG-RES-004

7.1 Scherm- en routegedrag

  • De resultatenroutes worden altijd opnieuw server-side geautoriseerd.
  • De ouder-/voogdweergave toont read-only informatie over gekoppelde kinderen.
  • De pagina gebruikt functionele namen en context, geen technische identifiers als herkenningsmiddel.
  • Oude filters, routeparameters of browserstate mogen geen toegang afdwingen.

8. Alternatieve en exceptionele processtromen

| 001 | Er zijn geen afgeronde runs: de pagina toont een geldige lege geschiedenis met filterbalk. | | 002 | Relatie ontbreekt: toegang wordt geblokkeerd via popup of veilige melding. | | 003 | Route bevat kind-ID van ander kind: backend negeert clientcontext en weigert toegang. | | 004 | Runregel is intussen niet meer beschikbaar door anonimisering of datacorrectie: detail openen toont niet-beschikbaarafhandeling. | | 005 | Filterwaarden zijn ongeldig: backend valt terug op veilige standaardwaarden. |

8.1 Afhandeling van verouderde of ongeldige clientstate

  • De backend herhaalt autorisatie bij iedere raadpleeg-, filter-, export- of liveactie.
  • Oude routeparameters, browserselecties en clientcache worden genegeerd wanneer de actuele server-side context geen toegang geeft.
  • De frontend mag het scherm herstellen door het actuele readmodel opnieuw op te vragen.

9. Business rules

| 001 | Kindgeschiedenis mag alleen eigen gekoppelde kinderen tonen. | | 002 | Alleen afgeronde runs worden getoond. | | 003 | Paginering en filtering wijzigen geen data. | | 004 | Ouder/voogd mag geen runs verwijderen. | | 005 | Historische context van niveau, categorie en oefening blijft zichtbaar op basis van opgeslagen rungegevens. |

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
GeschiedenisregelEén afgeronde run met afrondmoment, niveau, categorie, oefening en totalen.Niet-afgeronde runs uitgesloten.
StandaardsorteringAflopend op afrondmoment.Client mag sortering niet uitbreiden naar ongeautoriseerde data.
PagineringAantal regels per pagina volgens schermgedrag.Paginering veroorzaakt geen mutatie.
RunstatusAlleen completed.Testruns en lopende runs uitgesloten.

9.2 Autorisatie- en privacygrenzen

  • De zichtbare dataset wordt altijd server-side beperkt tot actieve ouder-/voogdrelaties.
  • Een gebruiker met gecombineerde rollen krijgt binnen deze routes geen impliciete docent- of beheerderinzage.
  • Resultaat- en livegegevens van niet-gekoppelde kinderen worden nooit gedeeltelijk getoond.

10. Datavalidatie

| 001 | KindId moet bij actieve ouderrelatie horen. | | 002 | Periodefilter moet binnen toegestane filterwaarden vallen. | | 003 | Paginagrootte moet binnen toegestane opties vallen. | | 004 | Runquery moet beperkt zijn tot UserId van het kind. | | 005 | Resultaten moeten server-side worden gesorteerd en gefilterd. |

11. Datamutaties en events

| 001 | Geen functionele datamutaties. | | 002 | De geschiedenisweergave wordt als readmodel opgebouwd en wijzigt geen brondata. |

12. Geen datamutaties

| 001 | ExerciseRuns blijven ongewijzigd. | | 002 | Resultaatstatistieken worden niet herberekend. | | 003 | UserSettings worden niet gewijzigd. | | 004 | Relaties worden niet gewijzigd. |

13. State diagram

Niet van toepassing. Deze usecase opent een read-only geschiedenisoverzicht en wijzigt geen persistent statusobject.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-OVG-HISTORY-ACCESS-DENIEDWordt gebruikt wanneer actuele ouder-/voogdautorisatie ontbreekt.
POP-OVG-HISTORY-NOT-AVAILABLEWordt gebruikt wanneer de geschiedenis veilig niet beschikbaar is.

Popupteksten, knopteksten, inputlabels en themakeuzes worden niet in deze usecase gedupliceerd. Het popupregister en de popupthemes blijven bronhoudend.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

| 001 | De pagina Kinderen biedt de actie Bekijk geschiedenis na selectie van een kind. | | 002 | Ouder-/voogdgeschiedenis omvat alle niveaus van het gekoppelde kind. | | 003 | Geschiedenis is raadplegend en gebruikt bestaande rungegevens. |

18.1 Impact voor database-informatie en ontwerpbronnen

| 001 | Autorisatiematrix moet ouder-/voogdraadpleging onderscheiden van docentraadpleging. | | 002 | Usecase-scherm-matrix moet de betrokken ouder-/voogdschermen koppelen aan deze usecase. | | 003 | Usecase-requirement-matrix moet de requirements uit hoofdstuk 19 opnemen. | | 004 | Readmodeldefinities voor ouder-/voogdresultaten moeten alle niveaus van het gekoppelde kind omvatten. |

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.

Er zijn voor deze usecase geen aparte requirement-afleidingen vastgelegd. De procesbeschrijving blijft broncontext voor de SRS-traceability.