Skip to main content

UC-DOC-RES-001 - Leerlinggeschiedenis binnen docentcontext openen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-RES-001
NaamLeerlinggeschiedenis binnen docentcontext openen
DomeinDocent
SubdomeinResultaten en geschiedenis binnen docentcontext
Primaire actorDocent
Secundaire actor(en)Systeem, Leerling
RolcontextActieve docentcontext met geldige docentrol en resultaatinzage binnen eigen geautoriseerde niveaucontext
Betrokken schermenDocent - Leerlingen, Docent - Leerlingdetails, Docent - Geschiedenis
Gerelateerde usecasesUC-DOC-LLN-001, UC-DOC-LLN-003, UC-DOC-LLN-004, UC-DOC-RES-002, UC-DOC-RES-003, UC-DOC-RES-006, UC-LLN-HIS-001, UC-LLN-HIS-004
Primaire entiteitenUsers, UserRoles, Roles, UserRelationships, TeacherStudentLevelAccess, TeacherLevels, ExerciseRuns
Secundaire entiteiten / eventsCategories, Exercises, ExerciseModules, leerlinggeschiedenis-readmodel, autorisatiecontrole
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een docent de oefengeschiedenis van een gekoppelde leerling opent binnen de eigen docentcontext.

De geschiedenis is nadrukkelijk geen algemene leerlinggeschiedenis over alle docenten heen. De docent ziet alleen resultaten en afgeronde oefenruns die binnen de eigen geautoriseerde niveaucontext vallen.

De usecase is read-only. Het openen van de geschiedenis wijzigt geen oefenrun, geen autorisatie en geen leerlingprofiel.

3. Scope

3.1 Binnen scope

  • Openen van de geschiedenisroute vanuit een leerling binnen de docentcontext.
  • Server-side controleren van docentrol, docent-leerlingrelatie en relevante niveauautorisatiecontext.
  • Samenstellen van een readmodel met afgeronde oefenruns binnen de toegestane docentcontext.
  • Uitsluiten van testruns, open runs en resultaten buiten de eigen docentcontext.
  • Tonen van betekenisvolle contextgegevens zoals niveau, categorie, oefening en afrondmoment.

3.2 Buiten scope

  • Wijzigen van leerlingautorisaties.
  • Starten of hervatten van oefeningen namens de leerling.
  • Bekijken van resultaten buiten de eigen docentcontext.
  • Ouder-/voogdgeschiedenis over alle niveaus.
  • PDF-export van een concreet resultaat; dat valt onder UC-DOC-RES-005.

3.3 DRY-afbakening

  • Leerlingresultaten en statistiekdefinities blijven inhoudelijk bronhoudend in de leerlingresultaat- en centrale FO/TO/SRS-regels.
  • Docentniveau-autorisaties worden hier toegepast, maar het wijzigen ervan blijft bronhoudend in het subdomein Leerlingen en niveau-autorisaties.
  • Relatievorming en relatieontkoppeling blijven bronhoudend in het generieke relatiedomein.
  • PDF-layoutregels worden niet per usecase als nieuwe bronwaarheid herhaald, maar verwijzen naar de centrale resultaat- en PDF-afspraken.
  • Deze usecases maken geen eigen kopie van oefenruns, statistieken of histories voor docenten.
  • Directe toegang via URL, filter of exportverzoek blijft altijd onder dezelfde autorisatiegrens vallen.
  • Systeemberichten, privéberichten en meldingen worden niet aangemaakt door het bekijken van resultaten.
  • Module-specifieke payload blijft eigendom van de technische module; de docentweergave gebruikt veilige representaties.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd.
PRE-002De gebruiker heeft een actieve docentrol.
PRE-003De OefenHub-sessiecontext is server-side opgebouwd.
PRE-004De betrokken leerling, run of resultatenlijst valt potentieel binnen de docentcontext.
PRE-005De backend kan actuele autorisatie-, relatie- en resultaatgegevens ophalen.
PRE-006De relevante resultaatdata is beschikbaar in de persistente run- en voortgangsopslag.

5. Post-condities

IDResultaat
POST-001De docent ziet uitsluitend resultaten die binnen de eigen docentcontext vallen.
POST-002Geen resultaat, oefenrun, autorisatie of profielgegeven is gewijzigd door deze read-only flow.
POST-003Een verboden of verouderd verzoek is veilig geblokkeerd zonder contextlek.
POST-004De frontend toont een actuele lijst, detailweergave, export of veilige afwijzing.
POST-005Fout- en blokkadesituaties worden veilig afgehandeld zonder nieuwe domeinentiteiten te introduceren.
POST-006Vervolgacties blijven binnen de daarvoor bedoelde usecases.

6. Trigger

De docent kiest bij een gekoppelde leerling voor de actie Geschiedenis of opent de leerlinggeschiedenis via een docentcontext-route.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentLeerlingdetailsKiest GeschiedenisFrontend opent de geschiedenisroute voor de gekozen leerlingStudentUserId
2FrontendRouteguardStuurt context naar backendBackend start server-side autorisatiecontroleClientstate is niet leidend
3SysteemSessieserviceControleert actieve docentrolBlokkeert zonder docentrolUserRoles, Roles
4SysteemRelatieserviceControleert actieve of historisch geldige docent-leerlingcontext voor resultaatinzageBepaalt of leerling in context bekeken mag wordenUserRelationships
5SysteemAutorisatieserviceBepaalt toegestane niveaucontexten van deze docent voor deze leerlingMaakt contextfilterTeacherStudentLevelAccess
6SysteemResultatenserviceHaalt afgeronde oefenruns op binnen contextfilterSluit niet-afgeronde runs en testruns uitExerciseRuns.IsCompleted = true, IsTestRun = false
7SysteemReadmodelVerrijkt regels met niveau, categorie en oefeningBouwt compacte geschiedenisregelsTeacherLevels, Categories, Exercises
8SysteemReadmodelSorteert standaard op afrondmoment aflopendLevert eerste pagina terugCompletedAtUtc desc
9FrontendGeschiedenispaginaToont geschiedenisregelsDocent ziet alleen toegestane resultatenGeen technische GUIDs
10DocentGeschiedenispaginaKan filteren of een regel openenVervolg naar UC-DOC-RES-002 of UC-DOC-RES-003Read-only vervolg

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013Geen actieve docentrolSysteem blokkeert de route en toont geen leerlinggegevens.Niet van toepassingGeen
ALT-0024Leerling valt niet binnen docentcontextSysteem retourneert geen geschiedenis en voorkomt dat bestaan van gegevens wordt bevestigd.Niet van toepassingGeen
ALT-0035Er zijn geen geautoriseerde niveaus voor deze leerling binnen docentcontextSysteem toont een lege geschiedenis met neutrale toelichting.Niet van toepassingGeen
ALT-0046Alle beschikbare runs zijn niet-afgerond of testrunsSysteem toont geen geschiedenisregels.Niet van toepassingGeen
ALT-0057Een historische categorie- of oefennaam is gewijzigdSysteem toont de historisch opgeslagen of functioneel geldige contextweergave.Niet van toepassingGeen
ALT-0068Paginering vraagt een lege pagina opSysteem valt terug op de dichtstbijzijnde geldige pagina of toont lege lijst.Niet van toepassingGeen

9. Business rules

IDRegel
BR-001Een docent ziet alleen resultaten en geschiedenis binnen de eigen geautoriseerde niveaucontext.
BR-002Ouder-/voogdregels voor volledige kindgeschiedenis zijn niet van toepassing op docentcontext.
BR-003Alle autorisatiecontrole gebeurt server-side op basis van actuele context en niet op basis van routeparameters alleen.
BR-004Alleen afgeronde reguliere oefenruns worden in de docentgeschiedenis getoond.
BR-005Testruns van docenten worden niet als leerlinggeschiedenis getoond.
BR-006Niet-afgeronde runs blijven buiten de geschiedenislijst.
BR-007Technische identifiers zoals GUIDs worden niet als herkenningsmiddel aan de docent getoond.
BR-008Geschiedenis openen wijzigt geen oefenrun, geen autorisatie en geen profielgegeven.
BR-009De geschiedenisweergave is een afgeleid readmodel en geen aparte bron van waarheid.
BR-010Wanneer een resultaat buiten de docentcontext valt, mag de frontend dit resultaat niet alsnog via directe URL openen.
BR-011Categorie-, oefening- en niveaunamen worden betekenisvol getoond; technische modulegegevens zijn alleen zichtbaar waar functioneel nodig.
BR-012Lege resultaten moeten neutraal worden afgehandeld zonder informatie buiten context prijs te geven.

10. Datavalidatie

Veld / objectValidatie
DocentUserIdMoet overeenkomen met de server-side ingelogde gebruiker en mag niet uit formulierinvoer worden vertrouwd.
StudentUserIdMoet binnen de toegestane docentcontext vallen voordat resultaten worden gelezen.
ExerciseRunIdMoet bestaan, afgerond zijn en binnen de toegestane context vallen.
TeacherLevelIdMoet onderdeel zijn van de eigen docentcontext of historische resultaatcontext waar de docent recht op heeft.
CategoryIdMag alleen als filter worden toegepast binnen de reeds toegestane dataset.
ExerciseIdMag alleen als filter of context worden gebruikt binnen de toegestane dataset.
PeriodefilterMoet geldige datums bevatten en mag niet leiden tot datasetuitbreiding buiten autorisatie.
PagineringMoet worden begrensd op toegestane waarden en bij lege pagina veilig terugvallen.
PDF-bestandsnaamMoet worden opgeschoond van ongeldige tekens en lengtebeperkingen respecteren.
ModulepayloadMag alleen via veilige render- of exportrepresentatie worden gebruikt.

11. Datamutaties en events

StapTypeEntiteit / readmodelGedrag
1QueryDocentcontext-readmodelLeest actieve docentrol, docent-leerlingrelatie en toegestane niveaucontext.
2QueryExerciseRunsLeest alleen afgeronde reguliere runs binnen de toegestane docentcontext.
3QueryGeschiedenis-readmodelVerrijkt de lijst met betekenisvolle niveau-, categorie- en oefeningcontext.
4Geen domeinmutatieExerciseRuns / ExerciseRunProgressDe geschiedenisweergave wijzigt geen run, voortgang, antwoord of statistiek.
5Geen domeinmutatieTeacherStudentLevelAccessAutorisaties worden toegepast, niet gewijzigd.
6Geen domeinmutatieSystemMessages / PrivateMessages / TicketsResultaatinzage maakt geen communicatie- of meldingsrecords aan.

12. Geen datamutaties

EntiteitReden
UsersResultaat- en geschiedenisweergave wijzigt geen gebruikersaccount.
UserRoles / RolesBekijken of exporteren van resultaten wijzigt geen rollen.
UserRelationshipsDocent-leerlingrelaties worden alleen gecontroleerd, niet gewijzigd.
TeacherStudentLevelAccessAutorisaties worden gecontroleerd, niet aangepast.
TeacherLevelsNiveaucontext wordt gelezen en niet gewijzigd.
CategoriesCategoriecontext wordt gelezen en niet gewijzigd.
ExercisesOefeningcontext wordt gelezen en niet gewijzigd.
ExerciseRunsBekijken, filteren of exporteren wijzigt de run niet.
ExerciseRunProgressVraagdetails worden gelezen en niet aangepast.
SystemMessagesResultaatinzage maakt geen systeemberichten aan.
PrivateMessagesResultaatinzage maakt geen privéberichten aan.
TicketsResultaatinzage maakt geen melding aan.

13. State diagram

Niet van toepassing als persistent statusmodel. De usecase leest bestaande oefenrunstatussen en autorisatiecontext, maar introduceert geen nieuwe status voor docentresultaatinzage.

14. Decision flow

15. Data lifecycle diagram

Deze usecase maakt geen nieuwe resultaatdata aan. Het lifecyclebeeld toont dat bestaande runs alleen worden gelezen.

16. Sequence diagrammen

16.1 Geschiedenis openen binnen docentcontext

16.2 Directe route of verouderde clientstate blokkeren

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingAlle momentenResultaatinzage, filtering, export en blokkades gebruiken geen nieuwe domeinspecifieke popupregister-popup.
Niet van toepassingPDF-downloadfoutEen exportfout wordt via generieke foutafhandeling verwerkt zonder popupteksten in de usecase te dupliceren.

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

DoeldocumentAfleiding
Functioneel OntwerpDocentresultaten moeten expliciet contextgebonden worden beschreven: alleen resultaten van niveaus die de docent zelf aan de leerling heeft geautoriseerd of waarvoor de docent volgens de geldende docentcontext inzagerecht heeft.
Technisch OntwerpTechnisch Ontwerp: oefenruns, resultaten en PDF-brondata, PDF-export, readmodels en resultaatlezers en autorisatie beschrijven de technische uitwerking. Backendqueries voor geschiedenis, filters, resultaatdetails en PDF-export moeten altijd eerst autorisatiecontext toepassen en daarna pas filters, sortering of exportlogica.
Software Requirements SpecificationRequirements moeten vastleggen dat directe URL-toegang, filterparameters en exportverzoeken geen toegang buiten docentcontext mogen opleveren.
Database-informatieExerciseRuns en gerelateerde resultaatdata blijven bronhoudend; er is geen aparte docentresultatentabel nodig.
OntwerpbronnenAutorisatiematrix, business rules en usecase-matrices moeten docentresultaatinzage en blokkades buiten context opnemen. Read-only resultaatinzage vraagt geen nieuw domeinevent.
Privacy/AVGResultaatinzage door docenten moet dataminimalisatie respecteren en geen resultaten buiten onderwijscontext zichtbaar maken.

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-afleidingDektUsecasecontext
REQ-UC-DOC-RES-001-001SRS-LRN-010
SRS-TCH-004
SRS-NFR-AUD-001
AC-LRN-010
AC-TCH-004
AC-NFR-AUD-001
De docent moet leerlinggeschiedenis binnen de eigen docentcontext kunnen openen
REQ-UC-DOC-RES-001-002SRS-TCH-001
AC-TCH-001
Resultaten buiten de docentcontext uitsluiten
REQ-UC-DOC-RES-001-003SRS-LRN-009
SRS-TCH-001
AC-LRN-009
AC-TCH-001
Alleen afgeronde reguliere oefenruns tonen
REQ-UC-DOC-RES-001-004SRS-LRN-010
SRS-TCH-004
SRS-NFR-AUD-001
AC-LRN-010
AC-TCH-004
AC-NFR-AUD-001
Testruns en open runs uit de docentgeschiedenis weren
REQ-UC-DOC-RES-001-005SRS-AUTH-001
SRS-AUTH-004
SRS-LRN-010
SRS-TCH-004
SRS-NFR-AUD-001
AC-AUTH-001
AC-AUTH-004
AC-LRN-010
AC-TCH-004
AC-NFR-AUD-001
Directe routes naar leerlinggeschiedenis server-side controleren
REQ-UC-DOC-RES-001-006SRS-TCH-001
AC-TCH-001
Betekenisvolle contextgegevens tonen zonder technische identifiers
REQ-UC-DOC-RES-001-007SRS-AUTH-001
SRS-LRN-009
SRS-TCH-001
AC-AUTH-001
AC-LRN-009
AC-TCH-001
Toegang tot leerlingresultaten altijd server-side valideren
REQ-UC-DOC-RES-001-008SRS-LRN-009
SRS-TCH-005
AC-LRN-009
AC-TCH-005
Testruns uitsluiten van docentresultaten
REQ-UC-DOC-RES-001-009SRS-LRN-006
SRS-TCH-004
SRS-NFR-AUD-001
AC-LRN-006
AC-TCH-004
AC-NFR-AUD-001
Niet-afgeronde runs buiten resultaatgeschiedenis houden
REQ-UC-DOC-RES-001-010SRS-TCH-001
AC-TCH-001
Technische identifiers niet als gebruikersgerichte herkenningsgegevens tonen
REQ-UC-DOC-RES-001-011SRS-TCH-004
AC-TCH-004
Resultaatinzage zonder domeinmutatie verwerken