UC-OVG-FP-005 — Gecombineerde docent-ouder-frontpage tonen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-OVG-FP-005 |
| Naam | Gecombineerde docent-ouder-frontpage tonen |
| Domein | Ouder/voogd / Frontpage en context |
| Primaire actor | Ouder/voogd met docentrol |
| Secundaire actor(en) | Frontend, backend, autorisatiecomponent, database |
| Rolcontext | Actieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Gecombineerde frontpage Docent + Ouder/voogd |
| Gerelateerde usecases | UC-OVG-FP-001, UC-OVG-FP-002, UC-DOC-FP-005 |
| Primaire entiteiten | Users, UserRoles, UserSettings, UserRelationships, TeacherLevels, ExerciseRuns |
| Secundaire entiteiten / events | Gecombineerd frontpage-readmodel; geen domeinevents |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Should |
2. Omschrijving
De usecase beschrijft de ouder-/voogdkant van een gecombineerde frontpage voor gebruikers met zowel Docent als Ouder/voogd. De pagina gebruikt één gezamenlijke intro en toont daarna eerst de docentblokken en vervolgens de ouder-/voogdblokken.
De gecombineerde frontpage is runtime samengesteld. Er wordt geen zelfstandig persistent frontpageontwerp per rolcombinatie beheerd en de gebruiker kan de volgorde niet vrij omdraaien.
Uitgangspunten
- Gecombineerde Docent + Ouder/voogd-frontpage gebruikt één gezamenlijk introblok.
- Docentblokken worden altijd vóór ouder-/voogdblokken getoond.
- De volgorde is functioneel vast en niet gebruikersconfigureerbaar.
- Er bestaat geen apart persistent frontpageontwerp voor elke rolcombinatie.
- Een gecombineerde frontpage wijzigt geen autorisaties of relaties.
3. Scope
Deze usecase beschrijft:
- Samenstellen van één gecombineerde Docent + Ouder/voogd-frontpage.
- Toepassen van vaste volgorde: docentblokken voor ouder-/voogdblokken.
- Tonen van ouder-/voogdblokken Kinderenoverzicht en Resultatenoverzicht binnen de gecombineerde pagina.
- Voorkomen van dubbele navigatie-items of dubbele introblokken.
Deze usecase beschrijft niet:
- Docentfrontpage-blokken inhoudelijk bronhoudend beschrijven; dat hoort bij docent/frontpage-en-context.
- Vrije pagebuilder of persistent ontwerp voor rolcombinaties.
- Beheerdercombinaties; die volgen beheerderprioriteit.
3.1 Afbakening met aangrenzende domeinen
| Onderdeel | Afbakening |
|---|---|
| Generiek / Relaties | Relatie-uitnodigingen, acceptatie en algemene relatievorming blijven bronhoudend in het generieke relatiedomein. |
| Generiek / Berichten | Systeemberichten en leesstatussen blijven bronhoudend in het centrale berichtendomein. |
| Leerling | De leerling blijft eigenaar van eigen oefenuitvoering; ouder/voogd kan niet namens het kind oefenen. |
| Docent | Docentautorisaties en docentresultaatinzage blijven begrensd door docentcontext; ouder-/voogdcontext gebruikt eigen relatiegrens. |
4. Pre-condities
| ID | Waarde |
|---|---|
| 001 | De gebruiker is ingelogd. |
| 002 | De gebruiker heeft actieve rollen Docent en Ouder/voogd. |
| 003 | De gebruiker heeft geen leerlingrol. |
| 004 | Onderliggende docent- en ouder-/voogdreadmodels zijn raadpleegbaar. |
5. Post-condities
| ID | Waarde |
|---|---|
| 001 | De gecombineerde frontpage is getoond met één intro. |
| 002 | Docentblokken staan boven ouder-/voogdblokken. |
| 003 | Geen rolcontext, relatie of resultaat is gewijzigd. |
6. Trigger
De usecase start wanneer de ouder/voogd de betreffende ouder-/voogdroute opent of de beschreven actie uitvoert binnen de actieve ouder-/voogdcontext.
7. Normale processtroom
| Stap | Actor / component | Actie | Resultaat | Data / controle |
|---|---|---|---|---|
| 1 | Backend | Leest actieve rollen | Docent + Ouder/voogd wordt vastgesteld | UserRoles |
| 2 | Backend | Controleert uitsluitingen | Geen leerlingrol aanwezig | Rolregels |
| 3 | Backend | Laadt docentblokken | Docentreadmodel is beschikbaar | Docentcontext |
| 4 | Backend | Laadt ouder-/voogdblokken | Kinderen- en resultatenoverzicht zijn beschikbaar | Ouder-/voogdcontext |
| 5 | Backend | Stelt pagina samen | Eén intro, daarna docent en ouder-/voogd | Vaste volgorde |
| 6 | Frontend | Toont gecombineerde frontpage | Pagina is langer maar volledig | Viewmodel |
7.1 Scherm- en routegedrag
- De pagina wordt opgebouwd als overzichts- en oriëntatiepagina, niet als mutatiepagina.
- Blokken tonen compacte waarden en verwijzen naar onderliggende routes voor detailacties.
- Bij lege of niet beschikbare data wordt een veilige lege staat getoond in plaats van gedeeltelijk ongeautoriseerde data.
- De frontend mag visuele keuzes tonen, maar backendautorisatie bepaalt de dataset.
8. Alternatieve en exceptionele processtromen
| ID | Waarde |
|---|---|
| 001 | Docentcontext niet beschikbaar maar ouder-/voogdcontext wel: toon alleen toegestane ouder-/voogdweergave of veilige contextkeuze volgens routering. |
| 002 | Ouder-/voogdcontext niet beschikbaar: toon docentweergave zonder ouder-/voogdblokken. |
| 003 | Gebruiker heeft ook beheerderrol: beheerderprioriteit bepaalt de samengestelde frontpage op hoogste laag. |
| 004 | Onderliggend blok heeft lege staat: het blok blijft op zijn positie maar toont veilige lege inhoud. |
8.1 Afhandeling van verouderde of ongeldige clientstate
- De backend herhaalt de autorisatiecontrole bij iedere vervolgactie.
- Oude selectie-, route- of browsercontext wordt genegeerd wanneer de actuele server-side context geen toegang meer geeft.
- De frontend mag verouderde weergave herstellen door opnieuw het actuele viewmodel op te vragen.
9. Business rules
| ID | Waarde |
|---|---|
| 001 | Gecombineerde Docent + Ouder/voogd-frontpage gebruikt één gezamenlijk introblok. |
| 002 | Docentblokken worden altijd vóór ouder-/voogdblokken getoond. |
| 003 | De volgorde is functioneel vast en niet gebruikersconfigureerbaar. |
| 004 | Er bestaat geen apart persistent frontpageontwerp voor elke rolcombinatie. |
| 005 | Een gecombineerde frontpage wijzigt geen autorisaties of relaties. |
9.1 Readmodel- en tellerdefinities
| Waarde | Definitie | Uitsluitingen / grenzen |
|---|---|---|
| Introblok | Eenmalig samengesteld voor de gecombineerde rolweergave. | Geen dubbele docent- en ouderintro. |
| Blokvolgorde | Docentblokken eerst, daarna ouder-/voogdblokken. | Volgorde is niet gebruikersconfigureerbaar. |
| Onderliggende scopes | Elk blok gebruikt eigen rolcontext en autorisatiegrens. | Docentdata en ouderdata worden niet samengevoegd tot één domeinrecord. |
9.2 Autorisatie- en privacygrenzen
- De zichtbare dataset wordt altijd server-side beperkt tot de actieve ouder-/voogdcontext.
- Persoonsgegevens van kinderen worden alleen getoond zolang er een actieve ouder-/voogdrelatie bestaat.
- Historische oefenresultaten worden gelezen binnen de toegestane context, maar niet gewijzigd door raadplegen of samenvatten.
10. Datavalidatie
| ID | Waarde |
|---|---|
| 001 | Beide rollen moeten actief zijn. |
| 002 | Leerlingrol moet afwezig zijn. |
| 003 | Elk blok moet server-side binnen zijn eigen context gefilterd worden. |
| 004 | Dubbele intro- of navigatie-elementen moeten worden voorkomen. |
11. Datamutaties en events
| ID | Waarde |
|---|---|
| 001 | Geen domeinmutaties. |
12. Geen datamutaties
| ID | Waarde |
|---|---|
| 001 | UserRoles worden niet gewijzigd. |
| 002 | Frontpagecontent wordt niet gewijzigd. |
| 003 | UserSettings worden niet gewijzigd door de runtime-samenstelling. |
| 004 | Onderliggende docent- of ouderdata wordt niet gewijzigd. |
13. State diagram
Niet van toepassing. Deze usecase wijzigt geen persistent statusobject. De gecombineerde frontpage is een runtime-samenstelling van onderliggende rolcontexten en wordt niet als zelfstandige rolcombinatiepagina opgeslagen.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Gebruik | Opmerking |
|---|---|---|
| Niet van toepassing | Deze usecase gebruikt geen popupregister-popup. | Lege staten en inline meldingen zijn scherminhoud en geen popupdefinitie. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Aspect | Afleiding |
|---|---|
| FO/TO/SRS-001 | Voor Docent + Ouder/voogd geldt één gecombineerde frontpage. |
| FO/TO/SRS-002 | De pagina toont eerst docentblokken en daarna ouder-/voogdblokken. |
| FO/TO/SRS-003 | Gecombineerde rolfrontpages worden runtime samengesteld uit basiscontexten. |
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-OVG-FP-005-001 | SRS-AUTH-003 SRS-TCH-001 SRS-GUA-001 AC-AUTH-003 AC-TCH-001 AC-GUA-001 | Bij Docent + Ouder/voogd één gezamenlijke intro tonen |
REQ-UC-OVG-FP-005-002 | SRS-TCH-001 SRS-GUA-001 AC-TCH-001 AC-GUA-001 | Docentblokken vóór ouder-/voogdblokken plaatsen |
REQ-UC-OVG-FP-005-003 | SRS-LRN-009 SRS-GUA-001 AC-LRN-009 AC-GUA-001 | Rolcombinatiefrontpages runtime samenstellen |
REQ-UC-OVG-FP-005-004 | SRS-GUA-001 AC-GUA-001 | Geen persistent ontwerp per rolcombinatie vereisen |
REQ-UC-OVG-FP-005-005 | SRS-AUTH-001 SRS-GUA-001 AC-AUTH-001 AC-GUA-001 | Elk blok afzonderlijk server-side autoriseren |