UC-DOC-AANB-005 — Categorieën binnen niveau bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-AANB-005 |
| Naam | Categorieën binnen niveau bekijken |
| Domein | Docent |
| Subdomein | Oefenaanbod, niveaus en categorieën |
| Primaire actor | Docent |
| Secundaire actor(en) | OefenHub-systeem |
| Rolcontext | Docentcontext binnen een actief intern OefenHub-account |
| Betrokken schermen | Oefenaanbod; niveaudetail; categorieoverzicht binnen niveau |
| Gerelateerde usecases | UC-DOC-AANB-001, UC-DOC-AANB-002, UC-DOC-AANB-006, UC-DOC-AANB-007, UC-DOC-AANB-008, UC-DOC-OEF-001 |
| Primaire entiteiten | Levels, LevelCategories, Categories |
| Secundaire entiteiten / events | Exercises, ExerciseModules, ExerciseRuns, CategoryHistory |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
De docent bekijkt binnen een geselecteerd niveau welke categorieën aan dat niveau gekoppeld zijn. Het overzicht vormt de ingang naar categoriegebonden oefenbeheer en maakt zichtbaar welke onderwijsinhoud binnen het niveau beschikbaar is. De docent ziet alleen niveaus waarvoor de docent eigenaar is of waarop de docent als actieve collaborator mag werken. De zichtbaarheid voor leerlingen wordt niet handmatig door de docent ingesteld, maar afgeleid uit actieve onderliggende oefeningen binnen het geselecteerde niveau.
Deze usecase beschrijft de docenthandeling binnen het subdomein Oefenaanbod, niveaus en categorieën. De usecase is procesgericht en beschrijft geen pixelniveau-schermdetails. Schermdetails, exacte layout en componentvormgeving blijven bronhoudend in schermdocumentatie en mockups. Centraal categoriebeheer, migratie van categorieën en beheerdercorrecties blijven bronhoudend in de beheerderflows en ontwerpbronnen.
3. Scope
Binnen scope:
- laden van categorieën binnen één geselecteerd niveau;
- tonen van centrale categorie-identiteit zoals naam, kleur, icoon en status;
- tonen van niveaugebonden gebruikscontext zoals aantal oefeningen en afgeleide zichtbaarheid;
- doorklikken naar oefeningen binnen een categorie;
- tonen van acties om een bestaande categorie te koppelen of een nieuwe centrale categorie aan te maken via docentflow;
- server-side autorisatie op docentcontext, eigenaar- of collaboratorrechten.
Buiten scope:
- wijzigen van centrale categorienaam, kleur of icoon door de docent;
- migreren of samenvoegen van categorieën;
- beheren van centrale categoriehistorie door beheerder;
- configureren van concrete oefeningen;
- bepalen van leerlingniveau-autorisaties;
- genereren of starten van leerlingoefeningen.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De actor is succesvol ingelogd en heeft een actieve docentrol. |
| PRE-002 | Er is een geldige docentcontext bepaald op basis van server-side rollen en rechten. |
| PRE-003 | De docent heeft een niveau geselecteerd via UC-DOC-AANB-002. |
| PRE-004 | De docent is eigenaar van het niveau of actieve collaborator met inzagerecht op het niveau. |
| PRE-005 | Het niveau is niet verwijderd of ontoegankelijk gemaakt. |
| PRE-006 | De centrale categorie- en niveaukoppeltabellen zijn beschikbaar voor uitlezen. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De docent ziet de categorieën die aan het geselecteerde niveau zijn gekoppeld. |
| POST-002 | Per categorie is duidelijk of er actieve oefeningen bestaan binnen dit niveau. |
| POST-003 | Per categorie is de afgeleide leerlingzichtbaarheid functioneel verklaarbaar. |
| POST-004 | Er zijn geen datamutaties uitgevoerd door alleen bekijken. |
| POST-005 | De docent kan door naar categorie koppelen, nieuwe categorie aanmaken of oefeningen binnen categorie bekijken. |
| POST-006 | Onbevoegde categoriegegevens worden niet getoond. |
6. Trigger
De usecase start wanneer een docent binnen Oefenaanbod een niveau selecteert en het systeem de aan dat niveau gekoppelde categorieën moet tonen. De trigger kan ook ontstaan doordat de docent terugkeert vanuit een oefening-, categorie- of niveaudetailroute.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Oefenaanbod | Opent of heeft een niveau geselecteerd. | Systeem ontvangt het niveau als actieve context. | LevelId uit server-side context. |
| 2 | Systeem | Backend autorisatie | Controleert docentrol en toegang tot niveau. | Alleen eigenaar of actieve collaborator mag categorieën zien. | UserRoles, Levels, LevelCollaborators. |
| 3 | Systeem | Categoriequery | Laadt niveaucategorieën. | Alleen actieve of historisch relevante gekoppelde categorieën worden opgehaald volgens overzichtsregels. | LevelCategories, Categories. |
| 4 | Systeem | Afleiding zichtbaarheid | Berekent per categorie de zichtbaarheid voor leerlingen. | Categorie is leerlingzichtbaar wanneer binnen niveau minimaal één actieve oefening aanwezig is. | Exercises.IsActive. |
| 5 | Systeem | Afleiding gebruik | Berekent compacte aantallen. | Aantal oefeningen en actieve oefeningen worden getoond als afgeleide waarden. | Exercises per categorie en niveau. |
| 6 | Systeem | UI-model | Bouwt readmodel op. | Centrale categorie-identiteit en niveaugebruik worden gecombineerd zonder centrale categorie te wijzigen. | Geen datamutatie. |
| 7 | Docent | Categorieoverzicht | Bekijkt de categorieën. | Systeem toont categoriekaarten of lijstregels met acties. | UI-weergave volgens schermdocumentatie. |
| 8 | Docent | Categorieoverzicht | Kiest eventueel een categorie. | Systeem opent oefeningoverzicht binnen die categorie. | Vervolg naar UC-DOC-OEF-001. |
| 9 | Docent | Categorieoverzicht | Kiest eventueel categorie koppelen of nieuwe categorie aanmaken. | Systeem start de passende vervolgusecase. | UC-DOC-AANB-006 of UC-DOC-AANB-007. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Docent heeft geen toegang tot het geselecteerde niveau. | Systeem blokkeert het overzicht en toont toegang-geweigerdafhandeling. | Geen popupregister-popup; routeguardafhandeling. | Geen. |
| ALT-002 | 3 | Het niveau bevat nog geen gekoppelde categorieën. | Systeem toont lege toestand met beschikbare vervolgactie om categorie te koppelen of aan te maken. | Geen popupregister-popup. | Geen. |
| ALT-003 | 3 | Een gekoppelde centrale categorie is gedeactiveerd of uitgefaseerd. | Systeem toont deze alleen wanneer de relatie nog functioneel relevant is voor beheercontext en markeert de status volgens regels. | Geen popupregister-popup. | Geen. |
| ALT-004 | 4 | Er zijn alleen inactieve oefeningen binnen de categorie. | Categorie blijft zichtbaar voor de docent, maar wordt niet leerlingzichtbaar afgeleid. | Geen popupregister-popup. | Geen. |
| ALT-005 | 5 | Aantallen kunnen niet worden berekend door technische fout. | Systeem toont veilige foutafhandeling zonder gedeeltelijke of foutieve aantallen als waarheid te presenteren. | Generieke foutafhandeling. | Geen. |
| ALT-006 | 8 | Categorie is geselecteerd maar de onderliggende oefenroute is niet beschikbaar. | Systeem blijft in categorieoverzicht of toont veilige niet-beschikbaarafhandeling. | Generieke routeafhandeling. | Geen. |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Een docent mag alleen categorieën bekijken binnen niveaus waarvoor de docent eigenaar is of actieve collaboratorrechten heeft. |
| BR-002 | Categorieën zijn centrale domeinobjecten; naam, kleur en icoon worden niet vanuit deze kijkflow gewijzigd. |
| BR-003 | Een categorie wordt binnen leerlingnavigatie alleen zichtbaar wanneer binnen het actieve niveau minimaal één actieve oefening aan die categorie gekoppeld is. |
| BR-004 | Een categorie zonder actieve oefeningen mag wel zichtbaar zijn voor de docent in beheercontext. |
| BR-005 | Afgeleide aantallen op het overzicht zijn readmodelwaarden en geen aparte brondata. |
| BR-006 | De docent mag via deze usecase geen centrale categorie migreren, samenvoegen, verwijderen of hernoemen. |
| BR-007 | Clientstate of routeparameters mogen niet zelfstandig bepalen tot welk niveau de docent toegang heeft. |
| BR-008 | Inactieve of uitgefaseerde categorieën worden niet als nieuwe koppeloptie behandeld, maar kunnen historisch relevant blijven. |
| BR-009 | Doorklikken naar oefeningen vereist opnieuw server-side controle op niveau- en categoriecontext. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| LevelId | Moet bestaan en voor de docent toegankelijk zijn. |
| TeacherUserId | Moet verwijzen naar een actieve gebruiker met docentrol. |
| LevelCollaborator | Moet actief zijn wanneer toegang via collaboratorcontext wordt verkregen. |
| LevelCategory | Moet behoren bij het geselecteerde niveau. |
| CategoryId | Moet verwijzen naar een bestaande centrale categorie. |
| ExerciseCount | Wordt server-side afgeleid en niet door de client aangeleverd. |
| StudentVisible | Wordt server-side afgeleid uit actieve oefeningen binnen niveau en categorie. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-2 | Read | Levels, LevelCollaborators | Docentcontext en toegang tot het niveau worden gecontroleerd. |
| 3-6 | Read | LevelCategories, Categories, Exercises | Gekoppelde categorieën, centrale categorie-identiteit en afgeleide aantallen worden gelezen. |
| 7-9 | Geen | Vervolgusecases | Doorklikken naar categorie- of oefeningacties start aparte flows. |
Deze usecase is read-only en schrijft geen categorie-, niveau-, oefening- of historyrecords.
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| Categories | Centrale categorie-identiteit wordt alleen gelezen. |
| LevelCategories | Koppelingen worden alleen gelezen. |
| Exercises | Oefeningen worden alleen geteld en niet gewijzigd. |
| CategoryHistory | Kijkacties schrijven geen categoriehistorie. |
| SystemMessages | Bekijken van categorieën veroorzaakt geen systeembericht. |
| UserSettings | De geselecteerde niveaucontext kan elders persistent zijn, maar deze usecase wijzigt die niet. |
13. State diagram
Niet van toepassing. Deze usecase wijzigt geen statusobject.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Deze usecase bevat alleen bekijken en navigeren. | Er is geen domeinspecifieke popup nodig. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft dat de docent binnen een geselecteerd niveau de gekoppelde categorieën ziet en dat categoriezichtbaarheid voor leerlingen wordt afgeleid uit actieve oefeningen. |
| Technisch Ontwerp | Technisch Ontwerp: oefencatalogus en autorisatie en contextcontrole beschrijven de technische uitwerking. Beschrijf server-side autorisatie op niveau-eigenaar en collaborators, plus readmodelopbouw uit Levels, LevelCategories, Categories en Exercises. |
| Software Requirements Specification | Beschrijft dat het categorieoverzicht read-only is en geen centrale categorie-identiteit wijzigt. |
| Database-informatie | Controleer beschrijving van LevelCategories, Categories, Exercises en afgeleide zichtbaarheid. |
| Ontwerpbronnen | Neem business rules op rond centrale categorie-identiteit en docentcontext. |
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-AANB-005-001 | SRS-AUTH-001 SRS-AUTH-004 SRS-CAT-001 SRS-TCH-002 AC-AUTH-001 AC-AUTH-004 AC-CAT-001 AC-TCH-002 | Categorieën binnen een geselecteerd niveau kunnen tonen aan een bevoegde docent |
REQ-UC-DOC-AANB-005-002 | SRS-AUTH-001 SRS-CAT-001 SRS-TCH-006 AC-AUTH-001 AC-CAT-001 AC-TCH-006 | Server-side controleren of de docent eigenaar of actieve collaborator van het niveau is |
REQ-UC-DOC-AANB-005-003 | SRS-RDM-001 SRS-RDM-005 SRS-CAT-002 SRS-TCH-002 AC-RDM-001 AC-RDM-005 AC-CAT-002 AC-TCH-002 | Centrale categorie-identiteit tonen zonder deze vanuit het overzicht te wijzigen |
REQ-UC-DOC-AANB-005-004 | SRS-RDM-001 SRS-RDM-005 SRS-CAT-001 SRS-LRN-005 SRS-TCH-003 AC-RDM-001 AC-RDM-005 AC-CAT-001 AC-LRN-005 AC-TCH-003 | Per categorie afleiden of deze voor leerlingen zichtbaar is op basis van actieve oefeningen binnen het niveau |
REQ-UC-DOC-AANB-005-005 | SRS-CAT-001 SRS-TCH-002 AC-CAT-001 AC-TCH-002 | Een lege toestand tonen wanneer het niveau nog geen categorieën bevat |
REQ-UC-DOC-AANB-005-006 | SRS-CAT-001 SRS-TCH-002 AC-CAT-001 AC-TCH-002 | Bij het bekijken van categorieën geen datamutaties uitvoeren |
REQ-UC-DOC-AANB-005-007 | SRS-AUTH-001 SRS-CAT-001 SRS-LRN-009 SRS-TCH-002 AC-AUTH-001 AC-CAT-001 AC-LRN-009 AC-TCH-002 | Doorklikken naar oefeningen binnen een categorie alleen toestaan na geldige server-side contextcontrole |
REQ-UC-DOC-AANB-005-008 | SRS-RDM-001 SRS-RDM-002 SRS-RDM-005 SRS-CAT-001 SRS-TCH-002 AC-RDM-001 AC-RDM-002 AC-RDM-005 AC-CAT-001 AC-TCH-002 | Categoriegebruik en aantallen als afgeleide readmodelwaarden behandelen |
REQ-UC-DOC-AANB-005-009 | SRS-CAT-001 SRS-TCH-002 SRS-ADM-006 SRS-ADM-001 AC-CAT-001 AC-TCH-002 AC-ADM-006 AC-ADM-001 | Categoriebeheeracties zoals migreren of hernoemen niet vanuit deze kijkflow uitvoeren |