UC-DOC-FP-001 — Docent-frontpage bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-FP-001 |
| Naam | Docent-frontpage bekijken |
| Domein | Docent / Frontpage en context |
| Primaire actor | Docent |
| Secundaire actor(en) | OefenHub frontend, OefenHub backend, routeguard, autorisatielaag, database, frontpage-readmodel |
| Rolcontext | Ingelogde gebruiker met een actieve docentrol. |
| Betrokken schermen | Docent-frontpage, docentnavigatie, profielmenu, frontpageblokken, systeemnotificatiecomponent na laden. |
| Gerelateerde usecases | UC-DOC-FP-002 — Docentcontext bepalen; UC-DOC-FP-003 — Leerlingenoverzichtsamenvatting tonen; UC-DOC-FP-004 — Niveaus- en inhoudsamenvatting tonen; UC-DOC-FP-005 — Gecombineerde docent-ouder-frontpage tonen; UC-GEN-ACC-002 — Inloggen en sessie verwerken; UC-GEN-NOT-001 — Systeemnotificatie tonen |
| Primaire entiteiten | Users, UserRoles, Roles, UserSettings, TeacherLevels, TeacherLevelCategories, Exercises, TeacherStudentAuthorizations |
| Secundaire entiteiten / events | frontpage-readmodel, routeguardbeslissing, systeemnotificatiecontrole na laden |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent na succesvolle sessieverwerking de docent-frontpage bekijkt. De docent-frontpage geeft overzicht en oriëntatie, maar voert geen inhoudelijke beheeractie uit.
De pagina toont compacte samenvattingsblokken, zoals een leerlingenoverzicht en een niveaus-en-inhoudsamenvatting. Die blokken helpen de docent kiezen waar verder gewerkt wordt, maar zij vervangen niet de achterliggende routes voor leerlingen, autorisaties, oefenaanbod, geschiedenis of live meekijken.
De frontpage wordt server-side samengesteld op basis van de actuele docentcontext. De frontend mag de rol of context niet afleiden uit oude browserstate. Na normale weergave mag de generieke systeemnotificatiecomponent controleren of een notificatie getoond moet worden.
3. Scope
Deze usecase omvat wel:
- openen van de docent-frontpage na geldige sessieverwerking
- controleren dat de gebruiker een actieve docentcontext heeft
- samenstellen van frontpageblokken als afgeleid readmodel
- tonen van compacte navigatie- en oriëntatie-informatie
- veilig omgaan met lege toestanden wanneer nog geen leerlingen, niveaus of oefeningen bestaan
- doorverwijzen naar vaste routes zonder zelf beheer uit te voeren
Deze usecase omvat niet:
- wijzigen van niveaukerngegevens, categorieën of oefeningen
- toekennen of intrekken van niveau-autorisaties
- openen van volledige leerlinggeschiedenis of resultaatdetails
- starten van live meekijken of het tonen van live voortgang
- beheer van relaties of uitnodigingen tussen docent en leerling
- beheer van ouder-/voogdfunctionaliteit buiten de gecombineerde frontpageweergave
- uitwerken van systeemnotificaties; die lopen via de generieke notificatie-usecases
DRY-afbakening: deze usecase beschrijft alleen de docent-frontpage- of contextlaag. De bronwaarheid voor leerlingenbeheer, oefenaanbodbeheer, live meekijken, relaties, profielinstellingen en systeemnotificaties blijft bij de daarvoor bedoelde usecases en ontwerpbronnen.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd. |
| PRE-002 | De gebruiker heeft een actief intern OefenHub-account. |
| PRE-003 | De gebruiker heeft de actieve rol Docent. |
| PRE-004 | De backend kan de docentcontext server-side bepalen. |
| PRE-005 | De frontpageconfiguratie en brondata zijn beschikbaar voor uitlezing. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De docent ziet alleen frontpageblokken die binnen de actuele docentcontext zichtbaar mogen zijn. |
| POST-002 | Er zijn geen leerlingen, autorisaties, niveaus, categorieën of oefeningen aangemaakt of gewijzigd. |
| POST-003 | Vervolgacties blijven afhankelijk van hun eigen route- en autorisatiecontrole. |
| POST-004 | Lege toestanden zijn veilig en lekken geen gegevens uit andere docentcontexten. |
| POST-005 | Systeemnotificaties kunnen na het laden via de generieke notificatieflow worden afgehandeld. |
6. Trigger
De usecase start wanneer een ingelogde docent naar de docent-frontpage navigeert of na login automatisch op deze frontpage uitkomt.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Docent-frontpage | Opent de docentomgeving. | Frontend vraagt de docent-frontpagecontext op. | Geen autorisatie op basis van clientstate. |
| 2 | OefenHub frontend | Routeguard | Stuurt request met de huidige route. | Backend ontvangt sessiecontext en routecontext. | UserId komt uit de server-side sessie. |
| 3 | OefenHub backend | Autorisatielaag | Controleert actieve gebruiker en rol. | Alleen actieve docentcontext mag de docent-frontpage laden. | UserRoles en Roles zijn leidend. |
| 4 | OefenHub backend | Contextresolver | Bepaalt de beschikbare docentcontext. | Docentcontext wordt voor deze request vastgesteld. | UC-DOC-FP-002. |
| 5 | OefenHub backend | Frontpage readmodel | Bepaalt leerlingenoverzichtsamenvatting. | Compacte teller- en statusinformatie wordt klaargezet. | UC-DOC-FP-003. |
| 6 | OefenHub backend | Frontpage readmodel | Bepaalt niveaus- en inhoudsamenvatting. | Compacte informatie over niveaus, categorieën en oefeningen wordt klaargezet. | UC-DOC-FP-004. |
| 7 | OefenHub backend | Frontpage readmodel | Bepaalt welke vaste navigatiepunten zichtbaar zijn. | Vervolgpunten verwijzen naar reguliere routes. | Geen directe mutaties vanaf de frontpage. |
| 8 | OefenHub frontend | Docent-frontpage | Rendert de frontpage. | Docent ziet intro, samenvattingsblokken en vaste navigatie. | Geen datamutatie. |
| 9 | OefenHub frontend | Systeemnotificatiecomponent | Controleert na normale weergave op notificaties. | Eventuele notificatie volgt generieke notificatieflow. | UC-GEN-NOT-001. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 3 | Gebruiker heeft geen actieve docentrol | Frontpage wordt niet geladen; routeguard leidt naar juiste context- of toegangafhandeling. | Niet van toepassing | Geen |
| ALT-002 | 5 | Er zijn nog geen gekoppelde leerlingen | Leerlingenblok toont veilige lege samenvatting. | Componentmelding / lege staat | Geen |
| ALT-003 | 6 | Er zijn nog geen beheerde niveaus of oefeningen | Niveaus-en-inhoudblok toont veilige lege samenvatting. | Componentmelding / lege staat | Geen |
| ALT-004 | 8 | Frontpagebrondata is tijdelijk niet uitleesbaar | Systeem toont foutafhandeling zonder gedeeltelijke of oude gegevens als waarheid te presenteren. | Generieke foutafhandeling | Geen |
| ALT-005 | 9 | Er is een actieve systeemnotificatie | Notificatie wordt na frontpageload via generieke flow getoond. | Niet via popupregister | Geen frontpagemutatie |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | De docent-frontpage is een overzichts- en oriëntatiepagina en geen beheer- of mutatiepagina. |
| BR-002 | Contextafhankelijke acties waarvoor eerst een leerling, niveau, categorie of oefening gekozen moet worden, starten niet als losse generieke frontpageactie. |
| BR-003 | Alle getoonde aantallen en samenvattingen worden server-side afgeleid uit bestaande brondata. |
| BR-004 | Clientstate, routeparameters of oude browsercontext mogen niet bepalen welke docentcontext actief is. |
| BR-005 | Systeemnotificaties blokkeren het laden van de frontpage niet en worden pas na normale weergave gecontroleerd. |
| BR-006 | De frontpage introduceert geen aparte frontpagecache als bron van waarheid. |
| BR-007 | Een gebruiker met de rol Leerling kan niet tegelijk docent zijn binnen dezelfde accountcontext. |
| BR-008 | Docent- en ouder-/voogdcontext mogen wel gecombineerd voorkomen en worden volgens vaste prioriteit samengesteld. |
| BR-009 | De specifieke flow UC-DOC-FP-001 mag alleen gegevens tonen of bepalen die binnen de actuele docent- of gecombineerde rolcontext vallen. |
| BR-010 | Lege staten mogen functioneel informatief zijn, maar mogen geen automatische domeinmutaties starten. |
| BR-011 | Vervolgacties vanaf de frontpage moeten opnieuw server-side worden gevalideerd op de doelroute. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Sessiegebruiker | Moet server-side bekend, ingelogd en actief zijn. |
| Rolcontext | Moet worden afgeleid uit actieve UserRoles en Roles. |
| Docentcontext | Mag alleen actief zijn wanneer de gebruiker de actieve rol Docent bezit. |
| Clientstate | Mag alleen ondersteunend zijn en nooit als autorisatiebron gelden. |
| Samenvattingswaarden | Moeten een eenduidige definitie hebben van bronrecords, statusvoorwaarden en contextfilters. |
| Frontpageweergave | Mag geen gegevens tonen buiten de actuele docent- of gecombineerde rolcontext. |
| Docentfrontpageblok | Moet alleen informatie tonen die als compacte samenvatting is toegestaan. |
| Vervolgroute | Moet opnieuw via routeguard en autorisatielaag worden gecontroleerd. |
| Lege staat | Moet duidelijk zijn en mag geen gegevens uit andere contexten tonen. |
11. Datamutaties en events
Deze usecase is read-only voor domeindata. De backend voert alleen contextcontrole en readmodelopbouw uit.
| Onderdeel | Gedrag |
|---|---|
| Docentcontext | Wordt per request server-side bepaald op basis van actieve gebruiker en actieve roltoekenningen. |
| Frontpage-readmodel | Wordt afgeleid uit bestaande brondata voor leerlingen, niveaus, categorieën, oefeningen en autorisaties. |
| Navigatiemodel | Wordt samengesteld als toegestane routeverwijzing; het opent nog geen vervolgusecase. |
| Systeemnotificatiecontrole | Vindt pas plaats nadat de frontpage normaal is geladen en hoort inhoudelijk bij UC-GEN-NOT-001. |
| Domeinevents | Niet van toepassing; er wordt geen frontpage-, docent-, leerling-, niveau- of autorisatierecord gewijzigd. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
Users | De frontpage- of contextflow wijzigt geen accountgegevens. |
UserRoles | Rollen worden gelezen maar niet toegekend of ingetrokken. |
Roles | Roldefinities worden gelezen maar niet gewijzigd. |
UserRelationships | Relaties worden hoogstens gelezen voor context of samenvatting. |
TeacherLevels | Niveaus worden gelezen of geteld, maar niet aangemaakt of gewijzigd. |
TeacherLevelCategories | Categorie-koppelingen worden gelezen of geteld, maar niet aangepast. |
Exercises | Oefeningen worden gelezen of geteld, maar niet geconfigureerd. |
TeacherStudentAuthorizations | Autorisaties worden gelezen of geteld, maar niet aangepast. |
SystemMessages | Deze usecase maakt geen systeemberichten aan. |
SystemNotifications | Systeemnotificaties worden niet door deze usecase gemuteerd. |
13. State diagram
Niet van toepassing als statusdiagram. Deze usecase wijzigt geen persistent statusobject. De tijdelijke requesttoestand bestaat alleen uit routecontrole, server-side contextbepaling, readmodelopbouw en rendering.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Frontpage- of contextweergave
16.2 Vervolgroute vanaf frontpage
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Gehele usecase | Deze frontpage- en contextafhandeling gebruikt routeguardgedrag, componentmeldingen, lege staten en bestaande generieke flows; er is geen domeinspecifieke popupregister-popup. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft de docent-frontpage als overzichts- en oriëntatiepagina met compacte, contextgebonden samenvattingsblokken. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, readmodels en tellers en frontendcompositie beschrijven de technische uitwerking. Beschrijft dat docentcontext en frontpageblokken server-side worden afgeleid en geen aparte frontpagebron, sessietabel of commandflow vereisen. |
| Software Requirements Specification | Beschrijft requirements voor actieve docentrol, server-side contextcontrole, read-only samenvattingsblokken, veilige lege toestanden en routeguardcontrole bij vervolgacties. |
| Database-informatie | Beschrijft dat de gebruikte bronrecords en tellerdefinities eenduidig zijn beschreven zonder nieuwe frontpage-entiteiten. |
| Ontwerpbronnen/registers | Verwerk business rules, autorisatiematrix en usecase-matrices; command- en eventregisters hoeven voor deze read-only flow niet te worden uitgebreid. |
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-FP-001-001 | SRS-TCH-001 AC-TCH-001 | De docent-frontpage alleen tonen aan gebruikers met een actieve docentrol |
REQ-UC-DOC-FP-001-002 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | De docent-frontpage server-side samenstellen op basis van actuele rol- en contextinformatie |
REQ-UC-DOC-FP-001-003 | SRS-RDM-001 SRS-RDM-003 SRS-RDM-005 SRS-TCH-001 AC-RDM-001 AC-RDM-003 AC-RDM-005 AC-TCH-001 | De docent-frontpage beperken tot overzichts- en oriëntatie-informatie |
REQ-UC-DOC-FP-001-004 | SRS-TCH-001 SRS-ADM-001 AC-TCH-001 AC-ADM-001 | Vanaf de docent-frontpage geen contextafhankelijke beheeractie uitvoeren zonder eerst naar de reguliere detailroute te gaan |
REQ-UC-DOC-FP-001-005 | SRS-CAT-001 SRS-LRN-009 SRS-TCH-003 SRS-NFR-SEC-001 AC-CAT-001 AC-LRN-009 AC-TCH-003 AC-NFR-SEC-001 | Veilige lege toestanden tonen wanneer nog geen leerlingen, niveaus of oefeningen bestaan |
REQ-UC-DOC-FP-001-006 | SRS-TCH-001 SRS-POP-002 AC-TCH-001 AC-POP-002 | Systeemnotificaties pas na normale frontpageload verwerken |