Skip to main content

UC-DOC-AANB-001 — Oefenaanbod openen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-AANB-001
NaamOefenaanbod openen
DomeinDocent
SubdomeinOefenaanbod, niveaus en categorieën
Primaire actorDocent
Secundaire actor(en)Systeem
RolcontextIngelogde gebruiker met actieve rol Docent
Betrokken schermenDocentnavigatie, Oefenaanbod, niveaucontextselector, niveau-overzichtssamenvatting
Gerelateerde usecasesUC-DOC-FP-002 — Docentcontext bepalen; UC-DOC-AANB-002 — Niveau selecteren; UC-DOC-AANB-003 — Nieuw niveau aanmaken; UC-DOC-AANB-005 — Categorieën binnen niveau bekijken
Primaire entiteitenLevels, LevelCollaborators, UserRoles, Users
Secundaire entiteiten / eventsStudentLevelAuthorizations, Exercises, LevelCategoryLinks, audit/readmodel
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een docent de pagina Oefenaanbod opent.

De pagina Oefenaanbod is het centrale startpunt waar een docent werkt met de eigen onderwijsstructuur. De pagina werkt altijd vanuit een docentcontext en toont de niveaus waarvoor de docent relevant is als eigenaar of actieve collaborator. Na het openen van de pagina bepaalt het systeem welk niveau als actuele werkcontext geldt. Vanuit die context kan de docent vervolgens categorieën, oefeningen, collaborators, eigenaarschap en leerlingtoegang benaderen via vervolgflows.

De usecase beschrijft nadrukkelijk niet het beheren van categorieën of oefeningen zelf. Die handelingen zijn uitgewerkt in aparte usecases binnen dit of een volgend docent-subdomein.

3. Scope

Binnen scope:

  • openen van de Oefenaanbodpagina door een docent;
  • server-side controleren van de actieve docentrol;
  • bepalen welke niveaus relevant zijn voor de docent;
  • tonen van een niveaukeuze of lege toestand;
  • laden van compacte niveaucontextinformatie;
  • bepalen van de huidige niveaucontext voor vervolgacties;
  • blokkeren van toegang wanneer geen geldige docentcontext bestaat.

Buiten scope:

  • aanmaken of wijzigen van niveaus;
  • categorieën koppelen of aanmaken;
  • oefeningen aanmaken, configureren of testen;
  • leerlingautorisaties wijzigen;
  • eigenaarschap overdragen;
  • beheerderondersteuning vanuit het beheerportaal;
  • relatie-uitnodigingen naar leerlingen of docenten;
  • leerlingzijde van zichtbaarheid van oefenaanbod.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd binnen OefenHub.
PRE-002De gebruiker heeft een actieve roltoekenning voor Docent.
PRE-003De sessiecontext is server-side gevalideerd.
PRE-004De navigatieroute naar Oefenaanbod is beschikbaar voor de docentcontext.
PRE-005De pagina wordt niet geopend op basis van client-side rolclaims alleen.
PRE-006Eventuele gecombineerde rollen zijn al door de generieke account- en frontpageflows bepaald.
PRE-007De database bevat nul, één of meer niveaus waarbij de docent eigenaar of actieve collaborator is.
PRE-008Inactieve rollen en beëindigde collaboratorrelaties tellen niet mee als actieve docentcontext.

5. Post-condities

IDResultaat
POST-001De Oefenaanbodpagina is geladen voor een geldige docentcontext.
POST-002Het systeem heeft de relevante niveaus voor de docent bepaald.
POST-003Indien mogelijk is één actuele niveaucontext bepaald.
POST-004De pagina toont niveau-informatie zonder ongeautoriseerde leerlingdata te tonen.
POST-005Er zijn geen domeinmutaties uitgevoerd door alleen de pagina te openen.
POST-006Wanneer geen niveaus bestaan, ziet de docent een lege toestand met route naar nieuw niveau aanmaken.
POST-007Wanneer toegang ongeldig is, wordt geen docentdata geladen.
POST-008Vervolgacties blijven afhankelijk van de geselecteerde niveaucontext en autorisatie.

6. Trigger

De usecase start wanneer een ingelogde gebruiker met docentrol in de docentnavigatie kiest voor Oefenaanbod of via een geldige interne route naar de Oefenaanbodpagina navigeert.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentNavigatieKiest Oefenaanbod.Routeguard activeert server-side controle.Alleen actieve docentrol is geldig.
2SysteemRouteguardControleert authenticatie en rolcontext.Laat route toe bij geldige docentcontext.UserRoles + Roles.
3SysteemOefenaanbod serviceBepaalt relevante niveaus.Haalt niveaus op waar docent eigenaar of actieve collaborator is.Levels, LevelCollaborators.
4SysteemOefenaanbod serviceBepaalt actuele niveaucontext.Gebruikt geldige eerder geselecteerde context of kiest veilige standaard.UserSettings of applicatielogica.
5SysteemPagina OefenaanbodLaadt compacte samenvatting.Toont naam, eigenaar, zichtbaarheid en relevante aantallen.Readmodel, geen mutatie.
6DocentPagina OefenaanbodBekijkt niveaucontext.Ziet vervolgacties die bij de context passen.Acties blijven autorisatieafhankelijk.
7DocentPagina OefenaanbodKiest eventueel een ander niveau.Start UC-DOC-AANB-002.Niveau selecteren.
8DocentPagina OefenaanbodKiest eventueel nieuw niveau.Start UC-DOC-AANB-003.Nieuw niveau aanmaken.
9DocentPagina OefenaanbodKiest eventueel categorieën of oefeningen.Systeem routeert naar vervolgusecases.Geselecteerde niveaucontext verplicht.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Gebruiker is niet ingelogd.Route wordt geblokkeerd en gebruiker gaat naar loginflow.Identity-provider/routeguard.Geen.
ALT-0022Gebruiker heeft geen actieve docentrol.Oefenaanbod wordt niet geladen.Generieke toegangafhandeling.Geen.
ALT-0033Docent heeft geen niveaus.Pagina toont lege toestand en route naar nieuw niveau.Inline melding.Geen.
ALT-0044Eerder geselecteerde niveaucontext is niet meer geldig.Systeem kiest geen ongeldige context en vraagt selectie of gebruikt geldige fallback.Inline melding.Geen.
ALT-0055Aantallen kunnen tijdelijk niet worden berekend.Pagina laadt kerninformatie en toont aantallen als niet beschikbaar.Inline melding.Geen.
ALT-0065Collaboratorrelatie is beëindigd tijdens laden.Niveau wordt niet als actieve context getoond.Inline melding indien relevant.Geen.
ALT-0076Docent probeert via oude URL een niet-toegankelijk niveau te openen.Routeguard blokkeert niveaucontext en toont veilige afhandeling.Generieke toegangafhandeling.Geen.
ALT-0086Gebruiker heeft gecombineerde rol Docent + Ouder/voogd.Docentcontext wordt gebruikt omdat route Oefenaanbod docentgebonden is.Niet van toepassing.Geen.

9. Business rules

IDRegel
BR-001Oefenaanbod is alleen beschikbaar voor gebruikers met een actieve docentrol.
BR-002De pagina Oefenaanbod werkt altijd vanuit een docentcontext.
BR-003Een docent ziet alleen niveaus waarvoor hij eigenaar is of actieve collaborator is.
BR-004Een beëindigde collaboratorrelatie geeft geen toegang meer tot het niveau in Oefenaanbod.
BR-005De pagina toont geen detailinformatie over leerlingen buiten een expliciete leerlingcontext.
BR-006De pagina is geen beheerderondersteuningspagina en geeft geen beheerderrechten.
BR-007Het openen van de pagina veroorzaakt geen domeinmutaties.
BR-008Een oude client-side selectie mag nooit leiden tot toegang tot een inmiddels ongeldig niveau.
BR-009Vervolgacties moeten opnieuw server-side autorisatie controleren.
BR-010Samenvattingsaantallen zijn afgeleide readmodelwaarden en geen zelfstandige brondata.
BR-011Een niveaucontext mag niet uit routeparameters alleen worden vertrouwd.
BR-012Een docent met meerdere rollen gebruikt binnen deze pagina expliciet de docentcontext.
BR-013Systeemnotificaties worden niet door deze usecase bepaald of getoond.
BR-014Relatievorming met leerlingen of andere docenten blijft bronhoudend in het generieke relatiedomein.
BR-015Frontpage-samenvattingen worden niet door deze pagina gemuteerd.

10. Datavalidatie

Veld / objectValidatie
GebruikerssessieMoet server-side geldig zijn.
RolcontextMoet actieve rol Docent bevatten.
Niveau-ID uit route of voorkeurMoet bestaan en binnen de docentcontext toegankelijk zijn.
CollaboratorstatusAlleen actieve collaboratorrecords tellen mee.
EigenaarschapAlleen actuele eigenaarstatus telt mee.
Readmodel-aantallenMoeten worden afgeleid uit actuele toegankelijke records.
ClientstateMag niet als autorisatiebron worden gebruikt.
Gecombineerde rolcontextMoet expliciet naar docentcontext worden gerouteerd.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1-2ReadUsers, UserRoles, RolesSessie- en docentrolcontext worden gelezen.
3-4ReadLevels, LevelCollaboratorsToegankelijke niveaus worden bepaald op basis van eigenaarschap of actieve collaboratorcontext.
5ReadmodelOefenaanbodreadmodelSamenvattingsdata wordt opgebouwd uit actuele toegankelijke records.
7-9GeenVervolgusecasesKeuzes op de pagina starten aparte vervolgusecases; deze flow voert zelf geen mutatie uit.

Deze usecase kent geen persistente domeinmutaties en geen nieuw domeinevent. Het bepalen van de actuele werkcontext is autorisatie- en readmodelgedrag.

12. Geen datamutaties

EntiteitReden
LevelsBekijken van Oefenaanbod maakt of wijzigt geen niveau.
LevelCollaboratorsBekijken koppelt of ontkoppelt geen collaborators.
StudentLevelAuthorizationsBekijken wijzigt geen leerlingtoegang.
ExercisesBekijken maakt of wijzigt geen oefeningen.
LevelCategoryLinksBekijken koppelt geen categorieën.
SystemMessagesOefenaanbod openen verstuurt geen systeemberichten.
ExerciseRunsEr wordt geen oefening gestart of gewijzigd.
UserRelationshipsRelaties worden niet aangemaakt of aangepast.

13. State diagram

Niet van toepassing.

De usecase raakt geen statusobject met eigen lifecycle. De zichtbaarheid van niveaus is een afgeleide van eigenaarschap en actieve collaboratorcontext.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Oefenaanbod openen

16.2 Ongeldige context blokkeren

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingOefenaanbod openenDeze usecase gebruikt routeguard- en inline afhandeling, geen popupregister-popup.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

DoeldocumentAfleiding
Functioneel OntwerpBeschrijven dat Oefenaanbod het centrale docentstartpunt is voor niveaus, categorieën en oefeningen.
Functioneel OntwerpVastleggen dat de pagina vanuit één geselecteerde niveaucontext werkt.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus en autorisatie en contextcontrole beschrijven de technische uitwerking. Server-side bepalen van docentcontext, niveaucontext en toegankelijke niveaus.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus en autorisatie en contextcontrole beschrijven de technische uitwerking. Samenvattingsaantallen als readmodel, niet als zelfstandige brondata.
Software Requirements SpecificationBeschrijft dat Oefenaanbod alleen beschikbaar is voor actieve docentrol.
Software Requirements SpecificationBeschrijft dat oude clientstate of routeparameters nooit autorisatie bepalen.
Database-informatieGeen nieuwe tabellen; gebruik bestaande Levels, LevelCollaborators en UserRoles.
OntwerpbronnenBusiness rules en autorisatiematrix uitbreiden met openen van Oefenaanbod.

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-afleidingDektUsecasecontext
REQ-UC-DOC-AANB-001-001SRS-ACC-003
SRS-ACC-005
SRS-CAT-001
SRS-TCH-001
SRS-NFR-ACC-001
AC-ACC-003
AC-ACC-005
AC-CAT-001
AC-TCH-001
AC-NFR-ACC-001
Oefenaanbod alleen toegankelijk maken voor gebruikers met een actieve docentrol
REQ-UC-DOC-AANB-001-002SRS-AUTH-001
SRS-ACC-003
SRS-ACC-005
SRS-CAT-006
SRS-TCH-002
SRS-NFR-ACC-001
AC-AUTH-001
AC-ACC-003
AC-ACC-005
AC-CAT-006
AC-TCH-002
AC-NFR-ACC-001
Bij openen van Oefenaanbod server-side bepalen welke niveaus voor de docent toegankelijk zijn
REQ-UC-DOC-AANB-001-003SRS-CAT-001
SRS-TCH-006
AC-CAT-001
AC-TCH-006
Niveaus tonen waarbij de docent actuele eigenaar of actieve collaborator is
REQ-UC-DOC-AANB-001-004SRS-AUTH-001
SRS-REL-003
SRS-REL-006
SRS-CAT-001
SRS-TCH-006
AC-AUTH-001
AC-REL-003
AC-REL-006
AC-CAT-001
AC-TCH-006
Beëindigde collaboratorrelaties niet gebruiken voor toegang tot Oefenaanbod
REQ-UC-DOC-AANB-001-005SRS-ACC-003
SRS-ACC-005
SRS-CAT-001
SRS-TCH-002
SRS-NFR-ACC-001
AC-ACC-003
AC-ACC-005
AC-CAT-001
AC-TCH-002
AC-NFR-ACC-001
Een lege toestand tonen wanneer de docent nog geen toegankelijke niveaus heeft
REQ-UC-DOC-AANB-001-006SRS-AUTH-001
SRS-CAT-006
SRS-TCH-002
AC-AUTH-001
AC-CAT-006
AC-TCH-002
Een oude of ongeldige niveaucontext blokkeren
REQ-UC-DOC-AANB-001-007SRS-CAT-006
SRS-TCH-001
AC-CAT-006
AC-TCH-001
Bij alleen openen van Oefenaanbod geen domeinmutaties uitvoeren
REQ-UC-DOC-AANB-001-008SRS-RDM-001
SRS-RDM-002
SRS-ACC-003
SRS-ACC-005
SRS-TCH-001
SRS-NFR-ACC-001
AC-RDM-001
AC-RDM-002
AC-ACC-003
AC-ACC-005
AC-TCH-001
AC-NFR-ACC-001
Samenvattingsaantallen afleiden uit actuele toegankelijke records
REQ-UC-DOC-AANB-001-009SRS-AUTH-001
SRS-TCH-001
AC-AUTH-001
AC-TCH-001
Vervolgacties opnieuw server-side autoriseren
REQ-UC-DOC-AANB-001-010SRS-AUTH-003
SRS-CAT-001
SRS-TCH-001
AC-AUTH-003
AC-CAT-001
AC-TCH-001
Bij gecombineerde rollen binnen Oefenaanbod de docentcontext gebruiken