UC-DOC-LLN-003 - Leerlingdetails binnen docentcontext bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-LLN-003 |
| Naam | Leerlingdetails binnen docentcontext bekijken |
| Domein | Docent |
| Subdomein | Leerlingen en niveau-autorisaties |
| Primaire actor | Docent |
| Secundaire actor(en) | Systeem |
| Rolcontext | Actieve docentcontext met bestaande docent-leerlingrelatie of toegestane inzage op de eigen docentdataset |
| Betrokken schermen | Docent - Leerlingen, leerlingdetail binnen docentcontext |
| Gerelateerde usecases | UC-DOC-LLN-001, UC-DOC-LLN-002, UC-DOC-LLN-004, UC-DOC-RES-001, UC-DOC-LIVE-001 |
| Primaire entiteiten | Users, UserRelationships, TeacherStudentLevelAccess, TeacherLevels |
| Secundaire entiteiten / events | Leerlingdetail-readmodel, actieve niveaus door deze docent, laatst relevante activiteit binnen context, doorklikacties |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent vanuit het leerlingenoverzicht detailinformatie van één leerling bekijkt. De detailweergave is beperkt tot informatie die relevant is voor de huidige docentcontext en toont geen relaties, resultaten of autorisaties van andere docenten.
Deze usecase maakt expliciet onderscheid tussen de docentcontext als zichtbare werkcontext en het onderliggende generieke relatiedomein. De docent mag in deze flow alleen gegevens zien die voortkomen uit de eigen actieve relatie- en niveauautorisatiecontext. Informatie over andere docenten, andere docentrelaties of niet-relevante accountgegevens blijft buiten beeld.
De usecase is onderdeel van het docentdomein, maar dupliceert geen generieke relatie-, profiel-, account- of berichtprocessen. Waar vervolgacties nodig zijn, verwijst de usecase naar de bronhoudende usecases in het betreffende domein.
3. Scope
3.1 Binnen scope
- Openen of uitklappen van één leerling binnen het leerlingenoverzicht.
- Controleren dat de leerling binnen de actieve docentcontext valt.
- Tonen van functioneel relevante detailgegevens zoals actieve niveaus door deze docent.
- Tonen van gekoppeld-sinds of vergelijkbare relatiecontext wanneer dit binnen docentrelatie relevant is.
- Tonen van doorklikacties naar geschiedenis en autorisaties.
- Verbergen van gegevens over andere docenten, andere docentrelaties en niet-relevante accountdetails.
3.2 Buiten scope
- Profiel van de leerling wijzigen.
- E-mailadres of identitygegevens beheren.
- Andere docentrelaties van de leerling tonen.
- Resultaatdetails inhoudelijk bekijken.
- Live meekijken starten.
- Niveau-autorisaties wijzigen.
3.3 DRY-afbakening
- De docent ziet uitsluitend leerlingen binnen de eigen docentcontext.
- Een actieve docent-leerlingrelatie is de basis voor zichtbaarheid in dit subdomein.
- Niveau-autorisaties worden vastgelegd via
TeacherStudentLevelAccessen blijven gescheiden van de relatietabel. - Een collaborator op een niveau krijgt hierdoor geen toegang tot leerlingen, resultaten, geschiedenis of live meekijken.
- Zoeken, filteren, paginering en tellingen zijn afgeleide readmodelwaarden en veroorzaken geen datamutaties.
- Gegevens over andere docentrelaties van dezelfde leerling worden niet zichtbaar gemaakt aan de docent.
- Account-, profiel-, relatie- en systeemnotificatieflows blijven bronhoudend in hun eigen domeinen.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd. |
| PRE-002 | De gebruiker heeft een actieve docentrol. |
| PRE-003 | De OefenHub-sessiecontext is server-side opgebouwd. |
| PRE-004 | De docentcontext is beschikbaar en geldig. |
| PRE-005 | De betrokken leerlinggegevens worden uitsluitend via geautoriseerde backendqueries opgehaald. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De gevraagde docentcontextweergave is getoond of veilig geblokkeerd. |
| POST-002 | Er zijn geen datamutaties uitgevoerd binnen deze inzageflow. |
| POST-003 | De docent heeft geen gegevens buiten de eigen docentcontext gezien. |
| POST-004 | Vervolgacties worden alleen als route of actie aangeboden en voeren nog geen wijziging uit. |
6. Trigger
De docent klapt een leerlingregel uit of opent de detailweergave van een leerling.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Leerlingenoverzicht | Selecteert of klapt een leerling uit | Frontend vraagt detail-readmodel op | StudentUserId |
| 2 | Systeem | Autorisatieservice | Controleert actieve docent-leerlingrelatie | Blokkeert indien leerling buiten context valt | UserRelationships |
| 3 | Systeem | Leerlingdetail-readmodel | Haalt basisidentiteit op | Geeft naam en contextrelevante gegevens terug | Users |
| 4 | Systeem | Autorisatiereadmodel | Haalt actieve niveaus door deze docent op | Geeft lijst of samenvatting terug | TeacherStudentLevelAccess |
| 5 | Systeem | Relatiecontext | Bepaalt gekoppeld-sinds of relatiecontext | Geeft alleen eigen relatiecontext terug | UserRelationships.CreatedAtUtc / AcceptedAtUtc |
| 6 | Frontend | Leerlingdetail | Rendert detailgegevens | Toont alleen contextinformatie | Geen andere docentrelaties |
| 7 | Frontend | Acties | Toont Geschiedenis en Autorisaties | Acties linken naar vervolgusecases | Geen mutatie |
| 8 | Docent | Leerlingdetail | Bekijkt detailinformatie | Geen datamutatie | Read-only |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Leerling bestaat niet of is niet toegankelijk | Systeem toont niet-beschikbaarafhandeling. | Niet van toepassing | Geen |
| ALT-002 | 2 | Docent-leerlingrelatie is beëindigd | Systeem toont de leerling niet als actieve detailregel. | Niet van toepassing | Geen |
| ALT-003 | 4 | Leerling heeft geen actieve niveaus via deze docent | Systeem toont Te autoriseren of lege autorisatiesamenvatting. | Niet van toepassing | Geen |
| ALT-004 | 4 | Leerling heeft ook niveaus via andere docenten | Systeem toont die niet in deze docentdetailweergave. | Niet van toepassing | Geen |
| ALT-005 | 6 | E-mailadres of andere privacygevoelige data is niet functioneel nodig | Systeem toont deze gegevens niet standaard. | Niet van toepassing | Geen |
| ALT-006 | 7 | Docent wil geschiedenis openen | Systeem verwijst naar geschiedenis binnen docentcontext met hercontrole. | Niet van toepassing | Geen |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Leerlingdetails zijn altijd beperkt tot de actieve docentcontext. |
| BR-002 | De docent mag geen informatie zien over andere docentrelaties van dezelfde leerling. |
| BR-003 | E-mailadres hoeft in dit overzicht niet standaard zichtbaar te zijn. |
| BR-004 | Laatst online of live-status hoort niet standaard op autorisatieschermen, maar op online- of live-meekijkschermen waar functioneel noodzakelijk. |
| BR-005 | Actieve niveaus tonen alleen niveaus waarvoor deze docent de relevante context heeft. |
| BR-006 | Doorklikacties naar geschiedenis en autorisaties moeten opnieuw server-side autoriseren. |
| BR-007 | Het bekijken van leerlingdetails wijzigt geen leerlingprofiel of autorisatie. |
| BR-008 | Relatievorming en uitnodigingsstatussen blijven bronhoudend in het generieke relatiedomein. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| StudentUserId | Moet bestaan en binnen de docentcontext vallen. |
| Docent-leerlingrelatie | Moet actief zijn voor actieve detailweergave. |
| Actieve niveaus | Worden uitsluitend afgeleid uit TeacherStudentLevelAccess voor deze docentcontext. |
| Privacygrens | Andere docentrelaties en niet-noodzakelijke accountdetails worden niet getoond. |
| Doorklikacties | Moeten bij vervolgopening opnieuw autoriseren. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| - | - | Niet van toepassing | Deze usecase is read-only en voert geen datamutaties uit. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| Users | Detailweergave leest alleen noodzakelijke accountgegevens. |
| UserRelationships | Relatiecontext wordt niet gewijzigd. |
| TeacherStudentLevelAccess | Autorisaties worden alleen gelezen. |
| ExerciseRuns | Resultaten worden niet geladen behalve via vervolgusecase geschiedenis. |
| PrivateMessages | Deze docent-inzageflow start geen privébericht. |
| SystemMessages | Systeemberichten worden alleen aangemaakt in expliciete communicatieflows. |
| LiveViewAudit | Live meekijken wordt niet gestart in deze usecase. |
13. State diagram
Deze usecase wijzigt geen persistent statusobject. De zichtbaarheid en de getoonde gegevens worden afgeleid uit actieve rollen, actieve docent-leerlingrelaties, niveaucontext en eventuele niveau-autorisaties. Er is daarom geen state diagram van een persistent object opgenomen.
14. Decision flow
15. Data lifecycle diagram
Deze usecase maakt geen nieuwe lifecycleobjecten aan. Detailinformatie wordt afgeleid uit bestaande account-, relatie- en autorisatiegegevens binnen de docentcontext.
16. Sequence diagrammen
16.1 Leerlingdetails laden
16.2 Leerling buiten docentcontext
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Gehele usecase | Deze flow gebruikt geen domeinspecifieke popupregister-popup. Routeguard-, validatie-, lege-staat- en niet-beschikbaarafhandeling verlopen via componentmelding of bestaande generieke foutafhandeling. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft de docent-leerlingenpagina als contextgebonden overzicht waarin alleen leerlingen en leerlinginformatie binnen de eigen docentcontext zichtbaar zijn. |
| Functioneel Ontwerp | Beschrijft dat zoeken, filteren, detailweergave en autorisatie-inzage geen gegevens van andere docenten tonen. |
| Technisch Ontwerp | Technisch Ontwerp: autorisatie en contextcontrole, technische rolflows, relatiebeheer en readmodels en tellers beschrijven de technische uitwerking. Beschrijft server-side filtering op actieve docent-leerlingrelatie, actieve docentrol en TeacherStudentLevelAccess uit. |
| Technisch Ontwerp | Technisch Ontwerp: autorisatie en contextcontrole, technische rolflows, relatiebeheer en readmodels en tellers beschrijven de technische uitwerking. Beschrijft dat routeparameters en clientstate nooit leidend zijn voor zichtbaarheid. |
| Software Requirements Specification | Beschrijft requirements voor contextbeperkte inzage, read-only gedrag, paginering en privacygrenzen. |
| Database-informatie | Geen nieuwe tabel nodig; gebruik bestaande Users, UserRelationships, TeacherLevels en TeacherStudentLevelAccess. |
| Ontwerpbronnen | Beschrijven business rules, autorisatiematrix, domeinobjecten en usecase-matrices bij. |
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-DOC-LLN-003-001 | SRS-LRN-009 SRS-TCH-001 AC-LRN-009 AC-TCH-001 | Leerlingdetails beperken tot de actieve docentcontext |
REQ-UC-DOC-LLN-003-002 | SRS-CAT-001 SRS-LRN-009 SRS-TCH-003 AC-CAT-001 AC-LRN-009 AC-TCH-003 | Actieve niveaus van de leerling binnen deze docentcontext kunnen tonen |
REQ-UC-DOC-LLN-003-003 | SRS-REL-001 SRS-LRN-009 SRS-TCH-001 AC-REL-001 AC-LRN-009 AC-TCH-001 | Geen gegevens over andere docentrelaties van dezelfde leerling tonen |
REQ-UC-DOC-LLN-003-004 | SRS-AUTH-001 SRS-TCH-004 SRS-NFR-AUD-001 AC-AUTH-001 AC-TCH-004 AC-NFR-AUD-001 | Doorklikacties naar geschiedenis en autorisaties aanbieden waar toegestaan |
REQ-UC-DOC-LLN-003-005 | SRS-AUTH-001 SRS-LRN-009 SRS-TCH-001 AC-AUTH-001 AC-LRN-009 AC-TCH-001 | Bij bekijken van leerlingdetails geen leerling- of autorisatiedata wijzigen |