UC-DOC-OEF-001 - Oefeningen binnen categorie bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-OEF-001 |
| Naam | Oefeningen binnen categorie bekijken |
| Domein | Docent |
| Subdomein | Oefeningen configureren en testen |
| Primaire actor | Docent |
| Secundaire actor(en) | Systeem |
| Rolcontext | Docentcontext met toegang tot het geselecteerde niveau |
| Betrokken schermen | Docent - Oefenaanbod, categorie binnen niveau, oefeningoverzicht |
| Gerelateerde usecases | UC-DOC-AANB-005, UC-DOC-OEF-002, UC-DOC-OEF-005, UC-DOC-OEF-006, UC-DOC-SAM-004 |
| Primaire entiteiten | Levels, LevelCategories, Categories, Exercises |
| Secundaire entiteiten / events | ExerciseModules, LevelCollaborators, ExerciseHistory |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent binnen een geselecteerd niveau en een geselecteerde categorie de bestaande concrete oefeningen bekijkt. Het overzicht is het startpunt voor vervolgacties zoals een nieuwe oefening aanmaken, een oefening bewerken, de status wijzigen of een oefening testen.
De usecase is read-only. Het systeem gebruikt het geselecteerde niveau, de categoriekoppeling en de docentcontext om te bepalen welke oefeningen getoond worden en welke vervolgacties beschikbaar zijn.
De technische module achter een oefening mag herkenbaar worden getoond, maar modulespecifieke configuratie wordt niet in dit overzicht bewerkt. Beheer van modules en centraal categoriebeheer blijven buiten deze usecase.
3. Scope
3.1 Binnen scope
- Ophalen van oefeningen binnen exact één niveau- en categoriecontext.
- Controleren van docentrol, niveaucontext en categoriekoppeling.
- Tonen van oefeningnaam, status, gekoppelde module en toegestane acties.
- Tonen van lege toestand wanneer geen oefeningen aanwezig zijn.
- Afleiden of de docent beheeracties mag gebruiken.
- Veilig blokkeren van directe routes met ongeldige context.
3.2 Buiten scope
- Nieuwe oefening aanmaken.
- Technische module selecteren.
- Oefeningconfiguratie wijzigen.
- Oefening activeren of in onderhoud zetten.
- Oefening testen als docent.
- Leerlingresultaten bekijken of wijzigen.
- Relatie-uitnodigingen of docent-leerlingrelaties beheren.
- Account-, profiel- of toegankelijkheidsinstellingen wijzigen.
- Systeemnotificaties beheren of tonen.
- Centrale beheerderflows voor modules of categorieën uitvoeren.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De docent is ingelogd. |
| PRE-002 | De gebruiker heeft een actieve docentrol. |
| PRE-003 | Er is een geldig niveau geselecteerd. |
| PRE-004 | De docent is eigenaar van het niveau of actieve collaborator. |
| PRE-005 | Er is een categorie geselecteerd. |
| PRE-006 | De categorie is actief gekoppeld aan het niveau. |
| PRE-007 | De backend kan de oefeningen en modulemetadata lezen. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | Het oefeningoverzicht is getoond. |
| POST-002 | Alleen oefeningen binnen de gekozen niveau- en categoriecontext zijn zichtbaar. |
| POST-003 | Toegestane acties zijn rechtenafhankelijk bepaald. |
| POST-004 | Er zijn geen oefeningen aangemaakt of gewijzigd. |
| POST-005 | Er zijn geen leerlingresultaten gelezen. |
| POST-006 | Ongeldige context is veilig geblokkeerd. |
6. Trigger
De docent opent binnen Oefenaanbod een categorie om de concrete oefeningen binnen die categorie te bekijken.
De trigger kan ook ontstaan na terugkeer uit een vervolgflow, waarbij dezelfde context opnieuw server-side wordt gecontroleerd.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Categorieoverzicht | Opent een categorie | Systeem ontvangt niveau- en categoriecontext | LevelId, CategoryId |
| 2 | Systeem | Backend | Controleert actieve docentrol | Alleen docentcontext mag verder | UserRoles, Roles |
| 3 | Systeem | Backend | Controleert toegang tot niveau | Eigenaar of actieve collaborator is geldig | Levels, LevelCollaborators |
| 4 | Systeem | Backend | Controleert categoriekoppeling | Categorie moet actief gekoppeld zijn | LevelCategories |
| 5 | Systeem | Backend | Haalt oefeningen op | Oefeningen worden gefilterd op context | Exercises |
| 6 | Systeem | Backend | Verrijkt overzicht | Modulemetadata en status worden toegevoegd | ExerciseModules, IsActive |
| 7 | Systeem | Backend | Bepaalt acties | Acties volgen uit rechten | Eigenaarschap, collaboratorrechten |
| 8 | Systeem | Frontend | Rendert overzicht | Docent ziet oefeningen of lege toestand | Read-only |
| 9 | Docent | Oefeningoverzicht | Kiest eventueel vervolgactie | Systeem routeert naar passende usecase | Context opnieuw valideerbaar |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Geen actieve docentrol | Blokkeer docentroute | Routeguard | Geen |
| ALT-002 | 3 | Geen toegang tot niveau | Toon geen oefeningen | Generieke toegangafhandeling | Geen |
| ALT-003 | 4 | Categorie hoort niet bij niveau | Leid terug naar categorieoverzicht | Inline melding | Geen |
| ALT-004 | 5 | Geen oefeningen aanwezig | Toon lege toestand | Inline informatief | Geen |
| ALT-005 | 6 | Gekoppelde module is niet beschikbaar | Toon oefening maar beperk vervolgacties | Inline melding | Geen |
| ALT-006 | 7 | Docent heeft alleen leesrechten | Toon alleen toegestane acties | Geen popup | Geen |
| ALT-007 | 9 | Verouderde browserstate | Backend blokkeert ongeldige vervolgactie | Routeguard | Geen |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Een oefeningoverzicht is altijd gebonden aan één niveau en één categorie. |
| BR-002 | Een docent mag alleen oefeningen zien binnen toegankelijke docentcontext. |
| BR-003 | Een categorie moet actief aan het niveau gekoppeld zijn. |
| BR-004 | Modulemetadata mag getoond worden zonder configuratiepayload te openen. |
| BR-005 | Beheeracties zijn alleen beschikbaar bij bewerkrechten. |
| BR-006 | Een lege categorie mag in docentcontext zichtbaar blijven. |
| BR-007 | Het overzicht maakt geen leerlingdata zichtbaar buiten de context. |
| BR-008 | Routeparameters zijn nooit leidend voor autorisatie. |
| BR-009 | De usecase voert geen datamutaties uit. |
| BR-010 | In onderhoud betekent niet beschikbaar voor leerlinguitvoering, maar wel zichtbaar voor bevoegde docenten. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| UserId | Komt uit server-side sessiecontext. |
| Docentrol | Moet actief zijn. |
| LevelId | Moet bestaan en toegankelijk zijn. |
| CategoryId | Moet bestaan. |
| LevelCategory | Moet actief zijn. |
| ExerciseId | Wordt pas bij vervolgacties gebruikt en opnieuw gevalideerd. |
| ExerciseModuleId | Moet naar bestaande modulemetadata verwijzen. |
| IsActive | Wordt alleen gelezen voor statusweergave. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1 | Read | Levels | Niveaucontext wordt gelezen. |
| 3 | Read | LevelCollaborators | Toegang wordt gecontroleerd. |
| 4 | Read | LevelCategories | Categoriekoppeling wordt gelezen. |
| 5 | Read | Exercises | Oefeningen worden opgehaald. |
| 6 | Read | ExerciseModules | Modulemetadata wordt gelezen. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| Exercises | Alleen lezen. |
| ExerciseModules | Alleen metadata lezen. |
| ExerciseHistory | Geen wijziging. |
| ExerciseRuns | Geen run starten. |
| StudentAuthorizations | Geen leerlingtoegang wijzigen. |
| SystemMessages | Geen communicatie. |
| LiveViewAudit | Geen live meekijken. |
13. State diagram
Geen zelfstandig statusdiagram. De usecase leest de oefeningstatus, maar wijzigt deze niet. Statusovergangen van oefeningen horen bij UC-DOC-OEF-006.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Oefeningoverzicht laden
16.2 Context ongeldig
17. Popupverwijzingen
| PopupKey | Moment | Toelichting |
|---|---|---|
| Niet van toepassing | Deze usecase gebruikt geen domeinspecifieke popup. | Routeguard-, inline validatie- of componentafhandeling volstaat. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Oefeningen worden binnen een geselecteerde categorie en niveaucontext getoond. |
| Functioneel Ontwerp | Acties zijn afhankelijk van eigenaar- of collaboratorrechten. |
| Technisch Ontwerp | Technisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en testuitvoering en background jobs beschrijven de technische uitwerking. Backend valideert niveau, categorie en docentcontext opnieuw. |
| Technisch Ontwerp | Technisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en testuitvoering en background jobs beschrijven de technische uitwerking. Modulemetadata wordt gelezen zonder volledige configuratiepayload. |
| Software Requirements Specification | Alleen toegankelijke oefeningen worden getoond. |
| Database | Geen nieuwe entiteiten nodig. |
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-OEF-001-001 | SRS-CAT-001 SRS-LRN-009 SRS-TCH-002 AC-CAT-001 AC-LRN-009 AC-TCH-002 | Toon alleen oefeningen binnen geldige niveau- en categoriecontext |
REQ-UC-DOC-OEF-001-002 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | Controleer de actieve docentrol server-side |
REQ-UC-DOC-OEF-001-003 | SRS-CAT-005 SRS-TCH-002 AC-CAT-005 AC-TCH-002 | Controleer dat de categorie actief aan het niveau gekoppeld is |
REQ-UC-DOC-OEF-001-004 | SRS-LRN-009 SRS-TCH-002 SRS-MOD-003 AC-LRN-009 AC-TCH-002 AC-MOD-003 | Toon per oefening minimaal naam, status en moduleherkenning |
REQ-UC-DOC-OEF-001-005 | SRS-TCH-001 SRS-ADM-001 AC-TCH-001 AC-ADM-001 | Bepaal beheeracties op basis van docentrechten |
REQ-UC-DOC-OEF-001-006 | SRS-LRN-009 SRS-TCH-002 AC-LRN-009 AC-TCH-002 | Toon een lege toestand wanneer geen oefeningen aanwezig zijn |
REQ-UC-DOC-OEF-001-007 | SRS-AUTH-004 SRS-TCH-001 AC-AUTH-004 AC-TCH-001 | Blokkeer ongeldige directe routes |
REQ-UC-DOC-OEF-001-008 | SRS-LRN-009 SRS-TCH-002 AC-LRN-009 AC-TCH-002 | Wijzig geen oefeninggegevens bij bekijken |
REQ-UC-DOC-OEF-001-009 | SRS-LRN-009 SRS-TCH-001 AC-LRN-009 AC-TCH-001 | Lees geen leerlingresultaten in deze flow |
REQ-UC-DOC-OEF-001-010 | SRS-TCH-001 SRS-POP-001 AC-TCH-001 AC-POP-001 | Gebruik geen domeinspecifieke popup voor deze read-only flow |