UC-BEH-DOCSUP-001 — Docentenoverzicht bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-DOCSUP-001 |
| Naam | Docentenoverzicht bekijken |
| Domein | Beheerder / Docentondersteuning |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, docentondersteuningcomponent, historiecomponent |
| Rolcontext | Actieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Content > Docent ondersteuning |
| Gerelateerde usecases | UC-BEH-DOCSUP-002, UC-BEH-DOCSUP-003, UC-BEH-DOCSUP-004, UC-BEH-DOCSUP-005, UC-BEH-DOCSUP-006, UC-BEH-DOCSUP-007, UC-BEH-DOCSUP-008, UC-BEH-DOCSUP-009, UC-BEH-DOCSUP-010, UC-BEH-DOCSUP-011, UC-BEH-DOCSUP-012, UC-BEH-DOCSUP-013, UC-BEH-DOCSUP-014 |
| Primaire entiteiten | Users, UserRoles, Roles, TeacherLevels, TeacherLevelCategories, TeacherLevelCategoryExercises, Exercises, ExerciseModules, ExerciseHistory, LevelCollaborators, LevelStudentAuthorizations, UserRelationships |
| Secundaire entiteiten / events | RelationshipEvents, SystemMessages, beheerlog, docentondersteuning-readmodels, autorisatiecomponent |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een beheerder het overzicht van docenten opent binnen het beheeronderdeel Docent ondersteuning. De pagina is het startpunt voor support op één specifieke docentcontext.
Per docent zijn minimaal naam, accountstatus, actieve rollen, aantal niveaus, aantal actieve categorieën, aantal actieve oefeningen, aantal collaborators en aantal leerlingen met toegang zichtbaar. Deze waarden zijn afgeleid uit bestaande account-, rol-, niveau-, categorie-, oefening- en autorisatiedata.
Het overzicht is een selectiestap. De beheerder voert hier geen directe mutaties uit, maar selecteert één docent en opent daarna via Ondersteun docent de detail- en ondersteuningsweergave.
Uitgangspunten
- Docentondersteuning werkt altijd vanuit één gekozen docentcontext.
- De beheerder heeft supportgerichte inzage, maar mutaties blijven beperkt tot expliciete beheeracties met audit.
- Centrale categorie- en module-identiteit worden niet vanuit deze pagina beheerd.
- Server-side autorisatie is leidend; clientstate mag geen objecttoegang afdwingen.
- Historische runs, resultaten en PDF-contexten worden niet herschreven.
3. Scope
Deze usecase beschrijft:
- Laden van een overzicht van gebruikers met een actieve of historisch relevante docentrol.
- Tonen van naam, accountstatus en actieve rollen.
- Bepalen van aantallen niveaus, actieve categorieën, actieve oefeningen, collaborators en leerlingen met toegang.
- Zoeken op docentnaam of herkenbare accountgegevens binnen de beheercontext.
- Selecteren van precies één docent als voorbereiding op ondersteuning.
- Veilig afhandelen van lege resultaten of inactieve accounts.
Deze usecase beschrijft niet:
- Centraal categoriebeheer; dat blijft bronhoudend in Beheerder / Categorieën beheren.
- Centraal technisch modulebeheer; dat blijft bronhoudend in Beheerder / Modules beheren.
- Volledig account- en rolbeheer; dat blijft bronhoudend in Beheerder / Accountbeheer.
- Reguliere docentflows vervangen; docentondersteuning is supportgericht en niet de primaire docentinterface.
- Live meekijken tijdens actieve oefeningen; beheerders mogen geschiedenis analyseren, maar niet live meekijken.
- Popupteksten, knopteksten of inputlabels specificeren; usecases verwijzen uitsluitend naar PopupKey.
3.1 Afbakening met aangrenzende domeinen
| Onderdeel | Afbakening |
|---|---|
| Docent / Oefenaanbod | Docenten beheren hun eigen niveaus, categorieën en oefeningen via de reguliere docentflows; docentondersteuning biedt beheerderinzage en gerichte correctie. |
| Beheerder / Categorieën beheren | Centrale categorie-identiteit, migratie en statuswijziging worden daar beheerd, niet in docentondersteuning. |
| Beheerder / Modules beheren | Technische modulemetadata en modulemigraties worden daar beheerd; docentondersteuning kan alleen concrete oefeningcontext inspecteren. |
| Beheerder / Accountbeheer | Rollen, accountstatus en account lifecycle horen daar; docentondersteuning gebruikt bestaande account- en relatiecontext. |
| Generiek / Relaties | Relaties en uitnodigingen blijven bronhoudend in het relatiedomein; docentondersteuning kan alleen bestaande geldige context gebruiken of een expliciete beheeractie auditen. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd in OefenHub. |
| PRE-002 | De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft. |
| PRE-003 | De beheerder bevindt zich binnen de beheeromgeving via Content > Docent ondersteuning. |
| PRE-004 | De pagina gebruikt actuele serverdata; clientstate, routeparameters of verborgen formuliervelden bepalen geen autorisatie, docentcontext, niveaucontext of oefeningcontext. |
| PRE-005 | Er bestaan nul of meer gebruikers met een docentrol of docentgeschiedenis. |
| PRE-006 | De beheerder heeft toegang tot het menu Content > Docent ondersteuning. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet een actueel docentenoverzicht. |
| POST-002 | Geen docentcontext, niveau, categorie, oefening, relatie of autorisatie is gewijzigd. |
| POST-003 | Bij selectie van precies één docent wordt de actie Ondersteun docent beschikbaar. |
| POST-004 | Afgeleide aantallen zijn server-side berekend en niet in de client bepaald. |
| POST-005 | Inactieve of geanonimiseerde accounts worden volgens de accountregels veilig weergegeven. |
6. Trigger
De usecase start wanneer de beheerder de pagina Content > Docent ondersteuning opent.
7. Normale processtroom
| Stap | Actor | Component / context | Handeling | Resultaat | Belangrijke gegevens |
|---|---|---|---|---|---|
| 1 | Beheerder | Beheermenu | Opent Docent ondersteuning. | De frontend vraagt het docentenoverzicht op. | Route Content > Docent ondersteuning. |
| 2 | Backend | Autorisatiecomponent | Controleert actieve beheerderrol. | Alleen beheerders krijgen toegang. | Server-side rolcontext. |
| 3 | Backend | Accountquery | Laadt gebruikers met docentrol of relevante docentcontext. | De basislijst van docenten wordt bepaald. | Users, UserRoles, Roles. |
| 4 | Backend | Docentreadmodel | Berekent aantallen niveaus en actieve categorieën. | De impact per docent wordt zichtbaar. | TeacherLevels, TeacherLevelCategories. |
| 5 | Backend | Docentreadmodel | Berekent actieve oefeningen en collaborators. | De onderwijsstructuur per docent wordt samengevat. | Exercises, LevelCollaborators. |
| 6 | Backend | Docentreadmodel | Berekent leerlingen met toegang. | Leerlingtoegang wordt als afgeleide waarde getoond. | LevelStudentAuthorizations. |
| 7 | Frontend | Docentenoverzicht | Toont lijst, zoekveld en selectiegedrag. | De beheerder kan één docent selecteren. | Read-only lijst. |
| 8 | Beheerder | Docentenoverzicht | Selecteert één docent. | De actie Ondersteun docent wordt beschikbaar. | Geselecteerde UserId. |
8. Alternatieve en exceptionele processtromen
| Stap | Situatie | Afhandeling | PopupKey | Datamutatie |
|---|---|---|---|---|
| 2 | Beheerdercontext is ongeldig. | De backend weigert de actie en toont een veilige blokkade. | POP-BEH-DOCSUP-NO-ACCESS | Geen. |
| 3 | De geselecteerde docent bestaat niet of is niet toegankelijk. | De ondersteuningsweergave wordt niet geopend of wordt veilig teruggezet naar het overzicht. | POP-BEH-DOCSUP-SAVE-ERROR | Geen. |
| 4 | Het gekozen object bestaat niet meer. | De pagina toont dat het object niet beschikbaar is en ververst de context. | Niet van toepassing | Geen. |
| 5 | De readmodeldata is tijdelijk incompleet. | De beschikbare gegevens worden getoond met veilige ontbrekend-status; ontbrekend wordt niet als nul geïnterpreteerd. | Niet van toepassing | Geen. |
| 6 | De beheerder gebruikt een oude route of clientstate. | De backend negeert de clientcontext en herleidt de actuele context opnieuw. | Niet van toepassing | Geen. |
9. Business rules
| ID | Business rule |
|---|---|
| BR-UC-BEH-DOCSUP-001-001 | Docentondersteuning start altijd met selectie van precies één docent. |
| BR-UC-BEH-DOCSUP-001-002 | Het overzicht is read-only en mag geen docentdata muteren. |
| BR-UC-BEH-DOCSUP-001-003 | Alle aantallen zijn afgeleide readmodelwaarden en vormen geen nieuwe bronrecords. |
| BR-UC-BEH-DOCSUP-001-004 | Accountstatus en actieve rollen worden server-side bepaald. |
| BR-UC-BEH-DOCSUP-001-005 | Geanonimiseerde accounts mogen geen persoonsgegevens tonen. |
| BR-UC-BEH-DOCSUP-001-006 | Een beheerder mag het overzicht zien, maar mag niet via deze pagina live meekijken met actieve oefeningen. |
| BR-UC-BEH-DOCSUP-001-007 | De lijst toont geen wachtwoorden, tokens, secrets of identity-providergegevens. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-UC-BEH-DOCSUP-001-001 | De ingelogde gebruiker moet een actieve beheerderrol hebben. |
| VAL-UC-BEH-DOCSUP-001-002 | Zoekcriteria mogen alleen worden toegepast binnen de server-side toegestane dataset. |
| VAL-UC-BEH-DOCSUP-001-003 | Geselecteerde docent moet verwijzen naar een bestaand Users-record met docentcontext of docenthistorie. |
| VAL-UC-BEH-DOCSUP-001-004 | Aantallen worden server-side berekend en niet vanuit verborgen clientvelden overgenomen. |
| VAL-UC-BEH-DOCSUP-001-005 | Meervoudige selectie is niet geldig voor het openen van de ondersteuningsweergave. |
| VAL-UC-BEH-DOCSUP-001-006 | Persoonsgegevens van geanonimiseerde accounts worden niet vrijgegeven. |
11. Datamutaties en events
| Object / event | Mutatie |
|---|---|
| Geen functionele mutatie | Deze usecase raadpleegt of navigeert zonder inhoudelijke domeinwijziging. |
| Geen event | Er wordt geen historyrecord geschreven voor alleen raadplegen. |
12. Geen datamutaties
| Object | Waarom geen mutatie |
|---|---|
| Users | Alleen gelezen voor actor- en docentcontext. |
| TeacherLevels | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| TeacherLevelCategories | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| TeacherLevelCategoryExercises | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| Exercises | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| ExerciseRuns | Historische runs worden nooit herschreven. |
13. State diagram
Niet van toepassing.
Deze usecase wijzigt geen persistent statusobject. De getoonde selectie-, detail-, zoek- of navigatietoestand is uitsluitend tijdelijke UI-state binnen de beheerderweergave en wordt niet als domeinstatus opgeslagen.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Gebruik |
|---|---|
| POP-BEH-DOCSUP-NO-ACCESS | Toegang geweigerd wanneer de gebruiker geen beheerderrol heeft. |
| POP-BEH-DOCSUP-SELECT-TEACHER-REQUIRED | Blokkade wanneer geen geldige docentselectie bestaat. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Onderdeel | Afleiding |
|---|---|
| Functioneel Ontwerp | Docent ondersteuning opent met een overzicht van docenten en een expliciete tweestapsflow: selecteren en daarna ondersteunen. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, oefencatalogus, relatiebeheer en logging en historie beschrijven de technische uitwerking. Er is een server-side readmodel nodig voor docentoverzicht en afgeleide impactaantallen. |
| Software Requirements Specification | SRS moet vastleggen welke records meetellen voor niveaus, categorieën, oefeningen, collaborators en leerlingen met toegang. |
| Database | Gebruikt Users, UserRoles, TeacherLevels, TeacherLevelCategories, Exercises, LevelCollaborators en LevelStudentAuthorizations uitsluitend read-only. |
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-BEH-DOCSUP-001-001 | SRS-RDM-001 SRS-RDM-004 SRS-RDM-005 SRS-TCH-001 SRS-ADM-001 AC-RDM-001 AC-RDM-004 AC-RDM-005 AC-TCH-001 AC-ADM-001 | Een beheerder een overzicht van docenten kunnen tonen |
REQ-UC-BEH-DOCSUP-001-002 | SRS-ACC-002 SRS-TCH-001 SRS-ADM-002 SRS-ADM-001 SRS-NFR-PRV-001 AC-ACC-002 AC-TCH-001 AC-ADM-002 AC-ADM-001 AC-NFR-PRV-001 | Per docent naam, accountstatus en actieve rollen tonen binnen privacygrenzen |
REQ-UC-BEH-DOCSUP-001-003 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-002 SRS-RDM-005 SRS-CAT-001 SRS-LRN-005 AC-AUTH-001 AC-RDM-001 AC-RDM-002 AC-RDM-005 AC-CAT-001 AC-LRN-005 | Per docent het aantal niveaus, actieve categorieën, actieve oefeningen, collaborators en leerlingen met toegang server-side afleiden |
REQ-UC-BEH-DOCSUP-001-004 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-002 SRS-RDM-005 SRS-TCH-001 SRS-ADM-001 AC-AUTH-001 AC-RDM-001 AC-RDM-002 AC-RDM-005 AC-TCH-001 AC-ADM-001 | Voorkomen dat de client afgeleide aantallen of docentselectie autoriserend maakt |
REQ-UC-BEH-DOCSUP-001-005 | SRS-TCH-001 SRS-ADM-001 AC-TCH-001 AC-ADM-001 | De actie Ondersteun docent alleen activeren bij precies één geldige docentselectie |
REQ-UC-BEH-DOCSUP-001-006 | SRS-ACC-002 SRS-ACC-004 SRS-ACC-008 SRS-TCH-001 SRS-ADM-002 SRS-ADM-003 AC-ACC-002 AC-ACC-004 AC-ACC-008 AC-TCH-001 AC-ADM-002 AC-ADM-003 | Geanonimiseerde docentaccounts zonder persoonsgegevens tonen |
REQ-UC-BEH-DOCSUP-001-007 | SRS-RDM-001 SRS-RDM-005 SRS-RDM-007 SRS-ACC-002 SRS-REL-001 SRS-CAT-001 AC-RDM-001 AC-RDM-005 AC-RDM-007 AC-ACC-002 AC-REL-001 AC-CAT-001 | Bij raadplegen van het overzicht geen account-, niveau-, relatie- of oefendata wijzigen |
REQ-UC-BEH-DOCSUP-001-008 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-004 SRS-ADM-002 SRS-ADM-001 AC-AUTH-001 AC-RDM-001 AC-RDM-004 AC-ADM-002 AC-ADM-001 | Toegang tot het overzicht blokkeren voor gebruikers zonder actieve beheerderrol |