UC-BEH-FP-003 — Beheersamenvattingen tonen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-FP-003 |
| Naam | Beheersamenvattingen tonen |
| Domein | Beheerder / Frontpage en context |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, readmodelqueries |
| Rolcontext | Actieve beheerdercontext; bij combinatierollen samengesteld volgens prioriteit Beheerder, Docent, Ouder/voogd |
| Betrokken schermen | Beheerder-frontpage, gezamenlijke frontpage bij combinatierollen, hoofdmenu |
| Gerelateerde usecases | UC-BEH-FP-001, UC-BEH-FP-002, UC-BEH-FP-004, UC-GEN-TIC-008, UC-GEN-NOT-001 |
| Primaire entiteiten | ExerciseModules, Categories, TeacherLevels, Exercises, Users, Roles, UserRoles, Tickets, SiteNotifications |
| Secundaire entiteiten / events | SiteFeatureToggles, TicketAssignments, TicketClosures, ContentBlocks |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft de compacte beheersamenvattingen op de beheerder-frontpage. De waarden geven de beheerder snel inzicht in systeemstatus, contentstatus, accounts en meldingen zonder dat de frontpage zelf beheeracties uitvoert.
De samenvattingen zijn verdeeld over minimaal het attentieblok, Contentbeheer en Accounts & rollen. Het attentieblok toont modules in onderhoud, aantal beheerders, meldingen open en nieuw, en actieve systeemnotificaties. Contentbeheer toont actieve modules, actieve categorieën, actieve niveaus en actieve oefeningen. Accounts & rollen toont rolgebonden totalen voor docenten, leerlingen en ouder-/voogdaccounts.
Elke teller heeft een expliciete functionele definitie. Een weergegeven aantal mag niet impliciet zijn: per teller moet duidelijk zijn welke records meetellen, welke statussen uitgesloten zijn, hoe soft-delete of inactief gedrag werkt, welk tijdstip geldt en of combinatierollen per groep meetellen.
Uitgangspunten
- Samenvattingen zijn readmodelwaarden en geen opgeslagen frontpagewaarheid.
- De frontpage toont compacte aantallen; analyse en detailbeheer gebeuren op de onderliggende pagina’s.
- Meldingen op de frontpage verwijzen naar bestaande meldingenbeheerflows en maken geen nieuwe ticketlogica aan.
- Actieve systeemnotificaties worden geteld als beheerdomein, niet als mailbox-systeemberichten.
3. Scope
Deze usecase beschrijft:
- Tonen van waarden in het attentieblok.
- Tonen van totalen in Contentbeheer.
- Tonen van totalen in Accounts & rollen.
- Definiëren van filters, statussen en uitzonderingen per teller.
- Veilige lege staten bij nul of ontbrekende records.
- Voorkomen dat het tonen van tellers brondomeinen wijzigt.
Deze usecase beschrijft niet:
- Detailanalyse van meldingen, modules, categorieën, accounts of systeemnotificaties.
- Aanpassen van featuretoggles of systeemnotificaties.
- Cachingstrategie voor alle readmodels buiten de frontpage.
- Auditregistratie van alleen bekijken.
- Vrij configureerbare tellerdefinities door beheerders.
3.1 Afbakening met aangrenzende usecases
| Onderdeel | Afbakening |
|---|---|
| UC-BEH-FP-001 | Plaats de samenvattingen in de beheerder-frontpage. |
| UC-BEH-FP-004 | Recente beheerwijzigingen is een eigen blok en geen teller binnen Contentbeheer. |
| Generiek meldingen | Ticketstatussen en beheerderflows blijven bronhoudend in het meldingen-domein. |
| Features en systeemnotificaties | Publiceren of uitschakelen van notificaties hoort bij het beheerder-subdomein Features en systeemnotificaties. |
| Accountbeheer | Roltotalen zijn read-only en wijzigen geen accounts. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De beheerder-frontpage wordt geladen voor een geldige beheerdercontext. |
| PRE-002 | De tellerdefinities zijn functioneel vastgelegd. |
| PRE-003 | De backend heeft toegang tot de relevante brondomeinen of kan veilige lege staten tonen. |
| PRE-004 | Soft-delete- en actiefstatusvelden zijn per brondomein bekend. |
| PRE-005 | Meldingen- en systeemnotificatiestatussen kunnen op het telmoment worden afgeleid. |
| PRE-006 | De gebruiker hoeft geen objectselectie te maken om samenvattingen te bekijken. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet compacte samenvattingsblokken met eenduidige labels. |
| POST-002 | Alle getoonde waarden zijn afgeleid uit server-side readmodels. |
| POST-003 | Geen onderliggende module, categorie, oefening, melding, notificatie of account is gewijzigd. |
| POST-004 | Waarden met nulrecords tonen nul of een neutrale lege staat. |
| POST-005 | Feature- of modulebeschikbaarheid is niet gewijzigd door weergave. |
| POST-006 | Tellerdefinities kunnen rechtstreeks worden verwerkt in FO, TO en SRS. |
6. Trigger
De usecase start wanneer UC-BEH-FP-001 tijdens het laden van de beheerder-frontpage de beheersamenvattingen opvraagt.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Frontend | Beheerder-frontpage | Vraagt samenvattingsreadmodel op. | De backend valideert de beheerdercontext. | UC-BEH-FP-002. |
| 2 | Backend | Attentieblok | Telt modules in onderhoud. | Het systeem telt actieve technische modules of concrete oefenmodules met onderhoudsstatus volgens vastgelegde definitie. | ExerciseModules.IsActive of onderhoudsdefinitie. |
| 3 | Backend | Attentieblok | Telt beheerders. | Het systeem telt actieve accounts met actieve beheerderrol. | Users.IsActive, UserRoles, Roles. |
| 4 | Backend | Attentieblok | Telt meldingen open en nieuw. | Open meldingen sluiten Closed uit; nieuw telt Tickets met status New. | Tickets.Status. |
| 5 | Backend | Attentieblok | Telt actieve systeemnotificaties. | Notificaties tellen mee wanneer start bereikt is en einddatum ontbreekt of in de toekomst ligt. | UTC telmoment. |
| 6 | Backend | Contentbeheer | Telt actieve modules. | Alle inzetbare modules tellen mee volgens modulebeheerdefinitie. | ExerciseModules.IsActive. |
| 7 | Backend | Contentbeheer | Telt actieve categorieën. | Alle centrale categorieën met actieve status en niet soft deleted tellen mee. | Categories. |
| 8 | Backend | Contentbeheer | Telt actieve niveaus en oefeningen. | Alle actieve docentniveaus en actieve concrete oefeningen tellen mee volgens statusfilters. | TeacherLevels, Exercises. |
| 9 | Backend | Accounts en rollen | Telt docenten, leerlingen en ouder-/voogden. | Accounts tellen per actieve rolcontext; combinatierollen kunnen in meerdere groepen meetellen wanneer de groep rolgebonden is. | Users, UserRoles. |
| 10 | Backend | Readmodel | Bundelt labels, waarden en eventuele leegstaatinformatie. | Het readmodel bevat geen ruwe querydetails of technische identifiers. | Veilige output. |
| 11 | Frontend | Beheerder-frontpage | Toont samenvattingsblokken. | De beheerder ziet alleen compacte waarden en navigatie-ingangen. | Geen mutatieknoppen. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Er zijn geen modules in onderhoud. | De teller toont 0 en geen foutmelding. | Niet van toepassing. | Geen. |
| ALT-002 | 4 | Meldingenfeature is sitebreed uitgeschakeld. | De teller wordt verborgen of neutraal getoond volgens de beheerdefinitie, maar er wordt geen ticketdata onnodig geladen. | Niet van toepassing. | Geen. |
| ALT-003 | 4 | Een ticket heeft status Closed maar is gebruikersgericht nog Opgelost. | De ticket telt niet als open wanneer de tellerdefinitie open uitsluitend niet-Closed statuswaarden bevat. | Niet van toepassing. | Geen. |
| ALT-004 | 5 | Een systeemnotificatie is gepland voor de toekomst. | De notificatie telt niet als actief zichtbaar. | Niet van toepassing. | Geen. |
| ALT-005 | 5 | Een systeemnotificatie is verlopen. | De notificatie telt niet mee in actieve systeemnotificaties. | Niet van toepassing. | Geen. |
| ALT-006 | 8 | Een categorie is historisch aanwezig maar gedeactiveerd. | De categorie telt niet mee bij actieve categorieën. | Niet van toepassing. | Geen. |
| ALT-007 | 9 | Een gebruiker heeft meerdere rollen. | De gebruiker telt per rolgroep waarin hij of zij actief is; het label moet duidelijk maken dat het rolgebonden totalen zijn. | Niet van toepassing. | Geen. |
| ALT-008 | 10 | Een readmodelquery geeft een technische fout. | Het betreffende blok toont een veilige foutstaat; overige blokken blijven zichtbaar. | Inline melding zonder stacktrace. | Geen. |
| ALT-009 | 10 | Een readmodelwaarde is niet betrouwbaar berekend. | De waarde wordt niet als getal getoond maar als tijdelijk niet beschikbaar. | Inline melding. | Geen. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-BEH-FP-003-001 | Iedere samenvattingswaarde op de beheerder-frontpage heeft een expliciete definitie van bronrecords, filters en statusvoorwaarden. |
| BR-UC-BEH-FP-003-002 | Modules in onderhoud tellen alleen volgens de vastgelegde onderhoudsdefinitie en niet op basis van vrije tekstlabels. |
| BR-UC-BEH-FP-003-003 | Aantal beheerders telt actieve accounts met actieve beheerderrol en sluit inactieve of geanonimiseerde accounts uit. |
| BR-UC-BEH-FP-003-004 | Meldingen open sluit Closed uit; meldingen nieuw telt alleen status New. |
| BR-UC-BEH-FP-003-005 | Actieve systeemnotificaties worden bepaald op basis van UTC-start- en eindmoment, doelgroep en actuele zichtbaarheid. |
| BR-UC-BEH-FP-003-006 | Actieve contenttotalen sluiten soft-deleted of inactieve records uit tenzij de tellerdefinitie expliciet anders bepaalt. |
| BR-UC-BEH-FP-003-007 | Rolgebonden accounttotalen mogen combinatierollen per groep meetellen, maar niet als unieke totaalpopulatie worden gepresenteerd zonder toelichting. |
| BR-UC-BEH-FP-003-008 | Het tonen van samenvattingen mag geen detailbeheer of mutatieactie op de frontpage introduceren. |
| BR-UC-BEH-FP-003-009 | Tellers worden server-side berekend en niet client-side samengesteld uit verborgen datasets. |
| BR-UC-BEH-FP-003-010 | Een teller die niet betrouwbaar kan worden bepaald wordt veilig niet beschikbaar getoond in plaats van misleidend als 0. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Modules in onderhoud | Definitie moet vastleggen of dit ExerciseModules.IsActive=false, een onderhoudsvlag of concrete oefeningstatus betreft. |
| Aantal beheerders | Users.IsActive=true en actieve UserRole met rol Beheerder. |
| Meldingen open | Tickets met status New, InProgress of WaitingForUser; Closed uitgesloten. |
| Meldingen nieuw | Tickets met status New. |
| Actieve systeemnotificaties | StartAtUtc <= telmoment en EndAtUtc ontbreekt of EndAtUtc > telmoment; doelgroep relevant volgens beheerdefinitie. |
| Actieve modules | ExerciseModules die functioneel inzetbaar zijn voor reguliere of toegestane testcontext. |
| Actieve categorieën | Centrale categorieën zonder soft-delete en met actieve status. |
| Actieve niveaus | Niveaus die niet historisch, inactief of soft-deleted zijn. |
| Actieve oefeningen | Exercises met IsActive=true binnen actieve niveau-/categoriekoppeling. |
| Rolgebonden accounttotalen | Gebruiker telt in elke actieve rolcontext waarvoor een afzonderlijk totaal wordt getoond. |
10.1 Autorisatie en server-side controles
| Controle | Uitwerking |
|---|---|
| Accountstatus | Controleer dat het interne account actief is voordat beheerdata wordt geladen. |
| Rolstatus | Controleer dat de beheerderrol actief is op het moment van het verzoek. |
| Clientstate | Gebruik browserstate uitsluitend als UI-hint en nooit als autorisatiebron. |
| Directe URL | Voer dezelfde controle uit bij directe routes als bij navigatie via menu of tegel. |
| Veilige response | Geef bij blokkade geen beheerdata, technische sleutels of querydetails terug. |
| Tellerbron | Bereken tellers server-side per brondomein en geef geen ruwe datasets aan de browser. |
| Telmoment | Gebruik één consistent UTC-telmoment voor tijdsafhankelijke waarden. |
| Definitiemismatch | Toon niet beschikbaar wanneer een tellerdefinitie niet betrouwbaar toepasbaar is. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-11 | Database | Niet van toepassing | Samenvattingswaarden worden gelezen of berekend, niet opgeslagen als bronwaarheid. |
| 1-11 | Event | Niet van toepassing | Het tonen van tellerwaarden publiceert geen domeinevent. |
| 1-11 | Audit | Niet van toepassing | Tellerweergave is geen beheerwijziging. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| ExerciseModules | Geen actiefstatus- of onderhoudswijziging. |
| Categories, TeacherLevels en Exercises | Geen contentwijziging of migratie. |
| Users, Roles en UserRoles | Geen roltoekenning, intrekking of accountstatuswijziging. |
| Tickets | Geen assignment, statuswijziging, sluiting of heropening. |
| SiteNotifications | Geen publicatie, uitschakeling of seen-registratie. |
| ContentBlocks | Geen frontpagecontentwijziging. |
13. State diagram
Niet van toepassing. Deze usecase wijzigt geen persistente domeinstatus, workflowstatus of lifecycle-status. De flow bestaat uit server-side contextcontrole, readmodelopbouw en veilige weergave-afhandeling.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
Samenvattingsreadmodel opbouwen
Veilige blokfout
17. Popupverwijzingen
Deze usecase gebruikt geen popupregister-popup. Eventuele fout- of blokkademeldingen worden als inline melding, veilige redirect of statusweergave afgehandeld.
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Geen bevestigings- of invoerpopup in deze usecase. | Niet van toepassing. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Neem per beheerder-frontpageblok op welke tellers zichtbaar zijn en welke betekenis zij hebben. Leg expliciet vast dat deze waarden oriëntatie bieden en geen mutatie starten. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, readmodels en beheersamenvattingen en frontendcompositie beschrijven de technische uitwerking. Specificeer per teller de querybron, statusfilter, soft-deletegedrag, rolcontextgedrag, UTC-telmoment en foutafhandeling. |
| Software Requirements Specification | Beschrijft requirements voor minimale tellerwaarden, expliciete tellerdefinities, server-side berekening, veilige lege staten en read-only gedrag. |
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-FP-003-001 | SRS-TIC-003 SRS-ADM-004 SRS-ADM-001 SRS-POP-002 SRS-MOD-003 AC-TIC-003 AC-ADM-004 AC-ADM-001 AC-POP-002 AC-MOD-003 | In het attentieblok minimaal modules in onderhoud, aantal beheerders, meldingen open, meldingen nieuw en actieve systeemnotificaties tonen |
REQ-UC-BEH-FP-003-002 | SRS-CAT-001 SRS-LRN-009 SRS-ADM-004 SRS-ADM-001 SRS-CNT-001 SRS-MOD-003 AC-CAT-001 AC-LRN-009 AC-ADM-004 AC-ADM-001 AC-CNT-001 AC-MOD-003 | In Contentbeheer minimaal actieve modules, actieve categorieën, actieve niveaus en actieve oefeningen tonen |
REQ-UC-BEH-FP-003-003 | SRS-ACC-002 SRS-LRN-009 SRS-TCH-001 SRS-GUA-001 SRS-ADM-002 SRS-ADM-001 AC-ACC-002 AC-LRN-009 AC-TCH-001 AC-GUA-001 AC-ADM-002 AC-ADM-001 | In Accounts & rollen minimaal docenten, leerlingen en ouder-/voogdaccounts of gelijkwaardige rolgebonden groepen tonen |
REQ-UC-BEH-FP-003-004 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-002 SRS-ADM-001 AC-AUTH-001 AC-RDM-001 AC-RDM-002 AC-ADM-001 | Tellerwaarden server-side berekenen uit geautoriseerde brondomeinen |
REQ-UC-BEH-FP-003-005 | SRS-RDM-001 SRS-RDM-002 SRS-ADM-001 SRS-NFR-AUD-001 AC-RDM-001 AC-RDM-002 AC-ADM-001 AC-NFR-AUD-001 | Per teller expliciet vastleggen welke statussen en soft-deletecondities meetellen |
REQ-UC-BEH-FP-003-006 | SRS-AUTH-003 SRS-ACC-002 SRS-ADM-002 SRS-ADM-001 AC-AUTH-003 AC-ACC-002 AC-ADM-002 AC-ADM-001 | Combinatierollen correct verwerken in rolgebonden accounttotalen |
REQ-UC-BEH-FP-003-007 | SRS-RDM-001 SRS-ADM-001 AC-RDM-001 AC-ADM-001 | Bij nul records een duidelijke nul- of lege staat tonen |
REQ-UC-BEH-FP-003-008 | SRS-RDM-001 SRS-RDM-002 SRS-RDM-009 SRS-ADM-001 SRS-NFR-SEC-001 AC-RDM-001 AC-RDM-002 AC-RDM-009 AC-ADM-001 AC-NFR-SEC-001 | Bij onbetrouwbare tellerberekening een veilige niet-beschikbaarstatus tonen |
REQ-UC-BEH-FP-003-009 | SRS-RDM-001 SRS-RDM-002 SRS-RDM-004 SRS-ADM-001 AC-RDM-001 AC-RDM-002 AC-RDM-004 AC-ADM-001 | Het tonen van beheersamenvattingen mag geen domeinrecords wijzigen |
REQ-UC-BEH-FP-003-010 | SRS-RDM-001 SRS-RDM-002 SRS-RDM-003 SRS-RDM-004 SRS-ADM-001 AC-RDM-001 AC-RDM-002 AC-RDM-003 AC-RDM-004 AC-ADM-001 | Op de beheerder-frontpage geen directe mutatieacties aan samenvattingstellers koppelen |