Skip to main content

UC-OVG-RES-004 — Afgeronde oefenrun van kind bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-RES-004
NaamAfgeronde oefenrun van kind bekijken
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 schermenKindgeschiedenis, Resultaatdetail
Gerelateerde usecasesUC-OVG-RES-002, UC-OVG-RES-003, UC-OVG-RES-005, UC-LLN-RES-001
Primaire entiteitenExerciseRuns, ExerciseRunProgress, Users, UserRelationships
Secundaire entiteiten / eventsGuardianRunDetailReadModel
Gerelateerde popupsPOP-OVG-RESULT-ACCESS-DENIED, POP-OVG-RESULT-NOT-AVAILABLE
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een ouder/voogd één afgeronde oefenrun van een gekoppeld kind opent vanuit de kindgeschiedenis. De detailweergave gebruikt de historische runcontext en toont de samenvatting van de run als read-only informatie.

De ouder/voogd krijgt geen acties om de run opnieuw te maken, te delen of te wijzigen namens het kind. De detailroute wordt opnieuw server-side geautoriseerd, ook wanneer de run vanuit een gefilterde lijst is aangeklikt.

Uitgangspunten

  • Alleen afgeronde runs kunnen als resultaatdetail worden geopend.
  • De run moet bij een actief gekoppeld kind horen.
  • Historische runcontext is leidend voor naamgeving en totalen.
  • De ouder/voogd kan de run niet wijzigen.
  • Run-ID uit de route is nooit voldoende voor toegang.

3. Scope

Deze usecase beschrijft:

  • openen van een runregel vanuit geschiedenis;
  • server-side controleren van relatie en run-eigenaarschap;
  • lezen van runmetadata en uniforme totalen;
  • voorbereiden van detail- en statistieksectie;
  • tonen van veilige niet-beschikbaarafhandeling bij ontbrekende run.

Deze usecase beschrijft niet:

  • oefening opnieuw maken;
  • oefening delen;
  • run corrigeren;
  • payload herstellen of herberekenen.

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 | De ouder/voogd bekijkt kindgeschiedenis. | | 002 | Een runregel is geselecteerd. | | 003 | De run is afgerond. | | 004 | De run hoort bij het geselecteerde kind. |

5. Post-condities

| 001 | De run is read-only getoond of veilig geblokkeerd. | | 002 | Geen rungegevens zijn gewijzigd. | | 003 | De detailweergave kan doorlinken naar statistieken of PDF-export. | | 004 | Ongeautoriseerde toegang geeft geen gedeeltelijke resultaatdata terug. |

6. Trigger

De ouder/voogd klikt op een afgeronde runregel in de kindgeschiedenis.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1Ouder/voogdSelecteert runregelFrontend opent detailrouteRunId
2BackendValideert relatie en run-eigenaarschapToegang wordt bepaaldUserRelationships + ExerciseRuns
3BackendLeest runmetadataHistorische context wordt samengesteldLevel/Category/Exercise context
4BackendLeest uniforme totalenSamenvatting wordt gevuldExerciseRuns
5FrontendToont detailkopOuder/voogd ziet runcontextGuardianRunDetailReadModel
6FrontendBiedt vervolg naar details/statistieken/PDFVervolgusecases zijn beschikbaarUC-OVG-RES-005/006

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 | Run is niet afgerond: detailweergave wordt geblokkeerd. | | 002 | Run hoort bij ander kind: toegang wordt geweigerd. | | 003 | Ouderrelatie is intussen beëindigd: detailweergave wordt niet meer getoond. | | 004 | Historische module bestaat niet meer: de opgeslagen runcontext blijft getoond voor zover beschikbaar. | | 005 | Payload is beschadigd: uniforme runvelden blijven leidend en technische fout wordt veilig afgehandeld. |

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 | Run-ID uit de URL is geen autorisatie. | | 002 | Alleen afgeronde runs zijn zichtbaar als geschiedenisdetail. | | 003 | Ouder/voogd mag geen runstatus, antwoorden of scores wijzigen. | | 004 | Historische rungegevens zijn leidend boven actuele oefenconfiguratie. | | 005 | Toegang vervalt zodra de ouder-/voogdrelatie niet meer actief is. |

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
RunheaderNaam kind, datum, niveau, categorie en oefening uit historische runcontext.Geen technische GUID-weergave.
Uniforme totalenAantal vragen, goed, fout en Geen idee uit runvelden.Geen herberekening uit clientstate.
ContextlabelsHistorische naamgeving van niveau/categorie/oefening.Latere hernoemingen mogen historische context niet overschrijven.
DetailbeschikbaarheidAlleen wanneer run completed is en relatie actief.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 | RunId moet bestaan. | | 002 | Run moet bij geselecteerd kind horen. | | 003 | Run moet afgerond zijn. | | 004 | Kind moet actief gekoppeld zijn aan ouder/voogd. | | 005 | De gelezen dataset moet beperkt blijven tot de run en zichtbare kindcontext. |

11. Datamutaties en events

| 001 | Geen functionele datamutaties. | | 002 | Het detailreadmodel wordt opgebouwd uit bestaande rungegevens. |

12. Geen datamutaties

| 001 | ExerciseRuns blijven ongewijzigd. | | 002 | ExerciseRunProgress blijft ongewijzigd. | | 003 | Antwoorden, score en statistieken worden niet overschreven. | | 004 | UserRelationships blijven ongewijzigd. |

13. State diagram

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

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-OVG-RESULT-ACCESS-DENIEDWordt gebruikt wanneer actuele autorisatie voor de run ontbreekt.
POP-OVG-RESULT-NOT-AVAILABLEWordt gebruikt wanneer het resultaat 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 | Ouder/voogdresultaatdetails gebruiken dezelfde historische runcontext als leerlingresultaten. | | 002 | Het detail is read-only en omvat geen acties om namens het kind te oefenen. | | 003 | Run-ID en oude filterstate zijn nooit voldoende voor autorisatie. |

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.