Skip to main content

UC-OVG-RES-001 — Resultatensamenvatting van kind bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-RES-001
NaamResultatensamenvatting 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 schermenKindinformatie, Resultatenoverzichtsamenvatting, Resultatensamenvatting kind
Gerelateerde usecasesUC-OVG-KIND-003, UC-OVG-KIND-004, UC-OVG-FP-004, UC-OVG-RES-002
Primaire entiteitenUserRelationships, Users, ExerciseRuns, Levels, Categories, Exercises
Secundaire entiteiten / eventsGuardianResultSummaryReadModel
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een ouder/voogd voor één geselecteerd gekoppeld kind een compacte resultatensamenvatting bekijkt. De samenvatting geeft inzicht in gemaakte oefeningen over alle niveaus van het kind en gebruikt geen docentgerichte beperking.

De samenvatting is read-only en wordt server-side opgebouwd uit afgeronde exercise runs. De ouder/voogd kan vanuit deze samenvatting doorklikken naar de volledige geschiedenis, maar kan geen oefening starten, resultaat wijzigen of oefening namens het kind opnieuw maken.

Uitgangspunten

  • De ouder/voogd ziet resultaten van alle niveaus van het gekoppelde kind.
  • Alleen afgeronde runs tellen mee in resultaat- en geschiedenisoverzichten.
  • De samenvatting is een readmodel en geen aparte brondata.
  • Niet-afgeronde runs en docenttestruns worden niet als afgerond resultaat getoond.
  • Raadplegen veroorzaakt geen mutaties in run, voortgang of statistieken.

3. Scope

Deze usecase beschrijft:

  • bepalen van het geselecteerde kind binnen ouder-/voogdcontext;
  • ophalen van afgeronde runs over alle niveaus van dat kind;
  • tonen van totaal aantal gemaakte oefeningen;
  • tonen van uitsplitsing per niveau en categorie;
  • aanbieden van route naar volledige geschiedenis.

Deze usecase beschrijft niet:

  • nieuwe oefening starten of genereren;
  • resultaten herberekenen vanuit clientstate;
  • docentcontext of docentniveau-autorisatie toepassen als beperking;
  • oefengeschiedenis verwijderen.

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 | Er is een ingelogde gebruiker met actieve ouder-/voogdcontext. | | 002 | Er is precies één kind geselecteerd. | | 003 | Er bestaat een actieve ouder-/voogdrelatie met dit kind. | | 004 | Er zijn nul of meer afgeronde runs beschikbaar. |

5. Post-condities

| 001 | De samenvatting is getoond op basis van actuele server-side autorisatie. | | 002 | Geen exercise run is gewijzigd. | | 003 | Geen relatie- of autorisatierecord is gewijzigd. | | 004 | Lege toestanden zijn veilig weergegeven wanneer er nog geen afgeronde runs zijn. |

6. Trigger

De ouder/voogd opent de kindinformatie of het resultatenblok van een geselecteerd kind.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1Ouder/voogdOpent kindinformatieFrontend vraagt resultatensamenvatting opKindselectie
2BackendControleert ouder-/voogdrelatieAlleen gekoppeld kind wordt toegestaanUserRelationships
3BackendSelecteert afgeronde runsDataset bevat alle niveaus van kindExerciseRuns.CompletedAtUtc
4BackendGroepeert totalenTotaal, niveau en categorie worden berekendLevels, Categories
5FrontendToont compacte samenvattingOuder/voogd ziet resultatenoverzichtGuardianResultSummaryReadModel
6Ouder/voogdKiest eventueel Bekijk geschiedenisNavigatie naar geschiedenis startUC-OVG-RES-002

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 | Geen afgeronde runs: de samenvatting toont een geldige lege toestand met nulwaarden. | | 002 | Relatie is intussen beëindigd: backend blokkeert het resultaat en verwijdert oude clientselectie uit de weergave. | | 003 | Kind bestaat niet of is geanonimiseerd: frontend toont veilige niet-beschikbaarafhandeling. | | 004 | Run verwijst naar historisch niveau of categorie: opgeslagen historische context blijft leidend voor weergave. | | 005 | Technische queryfout: de samenvatting wordt niet gedeeltelijk met onbetrouwbare totalen getoond. |

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 | Een ouder/voogd ziet alle resultaten van alle niveaus van gekoppelde kinderen. | | 002 | Alleen afgeronde runs tellen mee in de samenvatting. | | 003 | Docenttestruns worden uitgesloten. | | 004 | De samenvatting mag geen detailgegevens tonen van niet-gekoppelde kinderen. | | 005 | De samenvatting is read-only en mag geen runstatus wijzigen. |

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
Totaal aantal oefeningenAantal afgeronde ExerciseRuns van het kind binnen alle niveaucontexten.Niet-afgeronde runs en testruns uitgesloten.
Niveau-uitsplitsingGroepering op historisch of opgeslagen LevelId/LevelSnapshot.Autorisatie-intrekking door docent beperkt ouder/voogd niet zolang ouderrelatie actief is.
Categorie-uitsplitsingGroepering onder niveau op categoriecontext van de run.Latere categoriemigratie herschrijft historische runs niet.
Recent resultaatLaatste afgeronde run op afrondmoment.Lopende runs tellen niet als recent afgerond resultaat.

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 server-side bij de ouder-/voogdcontext horen. | | 002 | RelationshipType moet ouder-/voogdrelatie zijn. | | 003 | Relatie moet actief zijn. | | 004 | Runselectie moet beperkt zijn tot het geselecteerde kind. | | 005 | Alleen afgeronde, niet-test runs worden samengevat. |

11. Datamutaties en events

| 001 | Geen functionele datamutaties. | | 002 | De readmodelopbouw wijzigt geen brondata. |

12. Geen datamutaties

| 001 | ExerciseRuns worden niet aangemaakt, gewijzigd of verwijderd. | | 002 | ExerciseRunProgress wordt niet gewijzigd. | | 003 | UserRelationships en niveauautorisaties worden niet gewijzigd. | | 004 | PDF-export wordt niet gestart vanuit deze samenvatting. |

13. State diagram

Niet van toepassing. Deze usecase toont een read-only samenvatting en wijzigt geen persistent statusobject.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Niet van toepassing. Deze usecase gebruikt geen popupregister-popup als functionele stap.

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

| 001 | Ouder-/voogdresultaten moeten over alle niveaus van het gekoppelde kind beschikbaar zijn. | | 002 | De samenvatting op kindniveau gebruikt dezelfde historische runbron als leerlingresultaten. | | 003 | De frontpage en kindinformatie tonen alleen compacte totalen; volledige geschiedenis is een aparte route. |

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.