Skip to main content

UC-BEH-CAT-001 — Categorieoverzicht bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-CAT-001
NaamCategorieoverzicht bekijken
DomeinBeheerder / Categorieën beheren
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, categoriebeheercomponent, historiecomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenContent > Categorieën beheren
Gerelateerde usecasesUC-BEH-CAT-002, UC-BEH-CAT-003, UC-BEH-CAT-004, UC-BEH-CAT-005, UC-BEH-CAT-006, UC-BEH-CAT-007
Primaire entiteitenCategories, CategoryHistory, CategoryMigrations, TeacherLevelCategories, TeacherLevelCategoryExercises
Secundaire entiteiten / eventsUsers, ExerciseRuns, SharedExercises, categoriebeheer-readmodels
Gerelateerde popupsNiet van toepassing
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder het overzicht van centrale categorieën bekijkt binnen het beheeronderdeel Content. De pagina richt zich uitsluitend op de centrale categorie-identiteit: naam, kleur, icoon, status, gebruiksimpact en beheerhistorie op hoofdlijnen.

De overzichtspagina is een selectiestap. De beheerder wijzigt hier geen categoriegegevens rechtstreeks, maar selecteert één categorie en opent daarna de detail- en beheerweergave via Open beheer.

Per categorie worden minimaal naam, huidige status, aantal actieve docentniveaus waarin de categorie voorkomt en aantal onderliggende actieve oefenkoppelingen getoond. Deze aantallen zijn afgeleide readmodelwaarden over TeacherLevelCategories en TeacherLevelCategoryExercises.

Uitgangspunten

  • Categorieën zijn centrale onderwijsinhoud en geen private docentlabels.
  • Naam, kleur en icoon vormen samen de centrale categorie-identiteit.
  • Beheeracties op categorieën zijn volledig server-side gevalideerd.
  • Historische resultaten behouden hun oorspronkelijke categoriecontext.
  • Popupinhoud blijft bronhoudend in het centrale popupregister.

3. Scope

Deze usecase beschrijft:

  • Laden van de centrale categorielijst.
  • Tonen van naam, kleur, icoon en status per categorie.
  • Tonen van gebruiksimpact per categorie: actieve docentniveaus en actieve oefenkoppelingen.
  • Selecteren van één categorie als voorbereiding op detailbeheer.
  • Afhandeling van lege, gefilterde of foutieve overzichtstoestanden.

Deze usecase beschrijft niet:

  • Docentniveaubeheer, leerlingautorisaties of oefeningconfiguratie wijzigen; die blijven bronhoudend in docentflows of docentondersteuning.
  • Nieuwe centrale categorieën aanmaken vanuit beheer; categorie-aanmaak is bronhoudend in de docentflow of via technische migratie wanneer dat expliciet nodig is.
  • Historische exercise runs herschrijven; bestaande runs behouden hun oorspronkelijke categoriecontext.
  • Popupteksten of knopteksten specificeren; usecases verwijzen uitsluitend naar PopupKey.
  • Categoriegegevens wijzigen; dit hoort bij UC-BEH-CAT-003.
  • Categoriemigratie voorbereiden of uitvoeren; dit hoort bij UC-BEH-CAT-005 en UC-BEH-CAT-006.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Docent / OefenaanbodDocenten koppelen categorieën aan niveaus en maken waar toegestaan nieuwe centrale categorieën aan; beheer past de centrale identiteit en onderhoudsacties toe.
Beheerder / DocentondersteuningSupport op concrete docentstructuren mag categoriegebruik inspecteren, maar centrale categorie-identiteit wordt hier beheerd.
Leerling / OefenaanbodLeerlingen zien alleen afgeleide toegankelijke categorieën; deze bundel bepaalt niet zelfstandig leerlingtoegang.
Database-informatieCategories, CategoryHistory en CategoryMigrations blijven de technische bron voor centrale categorie-identiteit en audit.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd in OefenHub.
PRE-002De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft.
PRE-003De beheerder bevindt zich binnen de beheeromgeving via Content > Categorieën beheren.
PRE-004De pagina gebruikt actuele serverdata; clientstate, routeparameters of verborgen formuliervelden bepalen geen autorisatie of categorie-identiteit.
PRE-005De beheerpagina Categorieën beheren is bereikbaar via het menu Content.
PRE-006De database bevat nul of meer Categories-records.

5. Post-condities

IDResultaat
POST-001De beheerder ziet een actueel overzicht van centrale categorieën.
POST-002Geen categoriegegevens zijn gewijzigd.
POST-003Geen history- of migratierecord is aangemaakt.
POST-004Een geselecteerde categorie kan worden geopend via UC-BEH-CAT-002.
POST-005De getoonde aantallen zijn afgeleid en niet als los beheerrecord opgeslagen.

6. Trigger

De usecase start wanneer de beheerder in het menu Content de pagina Categorieën beheren opent.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderContent-menuOpent Categorieën beheren.De frontend vraagt het categorieoverzicht op.Route: Content > Categorieën beheren.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen een actieve beheerder mag centrale categorieën beheren.Server-side autorisatie.
3BackendCategoriequeryLaadt Categories inclusief statusvelden.Categorieën worden geschikt gemaakt voor overzichtsweergave.Categories.
4BackendImpactreadmodelBerekent actieve docentniveaus per categorie.Alleen actieve TeacherLevelCategories tellen mee.TeacherLevelCategories.IsActive.
5BackendImpactreadmodelBerekent actieve oefenkoppelingen per categorie.Alleen actieve TeacherLevelCategoryExercises onder actieve niveau-categorieën tellen mee.TeacherLevelCategoryExercises.IsActive.
6FrontendOverzichtToont lijst met naam, status, aantallen en visuele identiteit.De beheerder kan één categorie selecteren.Read-only overzicht.
7BeheerderOverzichtSelecteert één categorie.De actie Open beheer wordt beschikbaar.Geselecteerde CategoryId in servervalideerbare context.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Gebruiker is geen beheerder.De backend weigert toegang en toont een veilige toegang-geweigerdafhandeling.Niet van toepassing.Geen.
ALT-0023Er bestaan geen categorieën.Het overzicht toont een lege staat met uitleg dat er geen centrale categorieën beschikbaar zijn.Niet van toepassing.Geen.
ALT-0034Impactberekening faalt gedeeltelijk.De categorie blijft zichtbaar, maar impactwaarden worden niet als nul geïnterpreteerd; het systeem toont een veilige foutindicatie.Niet van toepassing.Geen.
ALT-0046Een categorie is soft deleted.De categorie blijft zichtbaar voor beheer en historie, maar wordt herkenbaar als niet nieuw kiesbaar getoond.Niet van toepassing.Geen.
ALT-0057De geselecteerde categorie bestaat niet meer bij openen.De selectie wordt geweigerd en het overzicht wordt opnieuw geladen.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001Het categorieoverzicht is read-only; mutaties gebeuren pas in detailusecases.
BR-002Een centrale categorie is geen privé-categorie van een docent en mag in het overzicht niet als docentgebonden object worden gepresenteerd.
BR-003Het aantal actieve docentniveaus telt actieve TeacherLevelCategories per categorie.
BR-004Het aantal actieve oefenkoppelingen telt actieve TeacherLevelCategoryExercises onder actieve niveau-categorieën.
BR-005Soft-deleted of gemigreerde broncategorieën blijven zichtbaar voor beheeranalyse en historie, maar niet als normale nieuwe keuze voor docenten.
BR-006Sortering en filtering van het overzicht wijzigen geen categorie, koppeling, oefening of historie.
BR-007De beheerder moet eerst één categorie selecteren voordat detailbeheer beschikbaar komt.

10. Datavalidatie

IDValidatie
VAL-001De opgevraagde pagina vereist een server-side beheerderclaim.
VAL-002CategoryId in selecties moet verwijzen naar een bestaand Categories-record.
VAL-003Impactaantallen worden server-side berekend en mogen niet vanuit de client worden aangeleverd.
VAL-004Statuslabels zijn afgeleide UI-labels en vervangen niet de onderliggende databasevelden.
VAL-005De kleurwaarde in het overzicht wordt uitsluitend weergegeven wanneer ColorHex geldig is.
VAL-006IconKey wordt als sleutel weergegeven of vertaald naar een bekende iconrepresentatie; onbekende keys leiden niet tot datamutatie.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001Geen functionele mutatieHet raadplegen van het overzicht wijzigt geen categorie- of koppeldata.
MUT-002Geen domeineventHet raadplegen van het overzicht schrijft geen CategoryHistory-, CategoryMigrations- of systeemberichtrecord.

12. Geen datamutaties

IDGeen mutatieReden
NO-001CategoriesNaam, kleur, icoon en IsDeleted blijven ongewijzigd.
NO-002TeacherLevelCategoriesKoppelingen en IsActive blijven ongewijzigd.
NO-003TeacherLevelCategoryExercisesOefenkoppelingen blijven ongewijzigd.
NO-004CategoryHistoryBekijken schrijft geen historie.
NO-005CategoryMigrationsBekijken start geen migratie.

13. State diagram

Niet van toepassing. Deze usecase raadpleegt een overzicht en wijzigt geen persistent statusobject. De relevante beslislogica staat in hoofdstuk 14 en de readmodel-lifecycle in hoofdstuk 15.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Niet van toepassing.

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

DocumentAfleiding
Functioneel OntwerpCategorieën beheren is een zelfstandige beheerpagina binnen Content met een overzicht van centrale categorieën en gebruiksimpact.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, databaseontwerp en historie en background jobs beschrijven de technische uitwerking. Het overzicht gebruikt een readmodel over Categories, TeacherLevelCategories en TeacherLevelCategoryExercises.
Software Requirements SpecificationSRS moet vastleggen welke records meetellen voor de getoonde aantallen en dat het overzicht read-only is.
DatabaseGeen nieuwe tabel nodig; bestaande categorie- en koppelbronnen volstaan voor het overzicht.

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
UC-BEH-CAT-001-REQ-001SRS-AUTH-001
SRS-RDM-001
SRS-RDM-004
SRS-RDM-005
SRS-CAT-001
SRS-ADM-001
AC-AUTH-001
AC-RDM-001
AC-RDM-004
AC-RDM-005
AC-CAT-001
AC-ADM-001
Alleen beheerders toegang geven tot het categorieoverzicht
UC-BEH-CAT-001-REQ-002SRS-CAT-001
SRS-ADM-001
AC-CAT-001
AC-ADM-001
Per categorie naam, status, kleur en icoon tonen
UC-BEH-CAT-001-REQ-003SRS-CAT-001
SRS-TCH-002
SRS-ADM-001
AC-CAT-001
AC-TCH-002
AC-ADM-001
Per categorie het aantal actieve docentniveaus tonen
UC-BEH-CAT-001-REQ-004SRS-CAT-001
SRS-ADM-001
AC-CAT-001
AC-ADM-001
Per categorie het aantal actieve oefenkoppelingen tonen
UC-BEH-CAT-001-REQ-005SRS-RDM-001
SRS-RDM-005
SRS-CAT-001
SRS-ADM-001
AC-RDM-001
AC-RDM-005
AC-CAT-001
AC-ADM-001
Bij raadplegen van het overzicht geen categoriegegevens wijzigen
UC-BEH-CAT-001-REQ-006SRS-CAT-001
SRS-ADM-001
AC-CAT-001
AC-ADM-001
Soft-deleted of historisch relevante categorieën voor beheer raadpleegbaar houden
UC-BEH-CAT-001-REQ-007SRS-AUTH-001
SRS-AUTH-002
SRS-AUTH-004
SRS-CAT-001
SRS-ADM-001
AC-AUTH-001
AC-AUTH-002
AC-AUTH-004
AC-CAT-001
AC-ADM-001
Één geselecteerde categorie kunnen doorgeven aan de detailbeheerflow zonder clientstate als autorisatiebron te gebruiken