2. Frontpage
2.1 Schermafbeelding

2.2 Scherm meta data
| Veld | Waarde |
|---|---|
| Scherm-ID | SCH-BEH-01-01 |
| Schermnaam | Frontpage — beheerder |
| Doelgroep / onderdeel | Beheerder |
| Bronbestand | oefenhub_beheerder_01_frontpage_V1_6.html |
| Mockupversie | V1.6 |
| Screenshotbestand | oefenhub_beheerder_01_frontpage_v1_6.png |
| Processtap / context | Na inloggen of navigeren naar de actieve beheerdercontext; primaire landingsview van de beheeromgeving. |
| Documentatiestatus | Uitgewerkt op basis van HTML-mockup, PNG-screenshot, Functioneel Ontwerp, Technisch Ontwerp, Software Requirements Specification en ondersteunende database-informatie. |
| Opmerkingen | Header, beheerdernavigatie, berichtenicoon, profielmenu en footer vallen buiten de scope van dit schermdocument. Alle zichtbare aantallen, namen, datums, tijden en wijzigingsregels in de mockup zijn dynamische voorbeeldwaarden. |
| Route / URL-patroon | Beheerder-frontpage binnen de ingelogde applicatiecontext, functioneel bijvoorbeeld /beheerder of /admin. De exacte technische route wordt door de applicatieroutering bepaald. |
| Autorisatie / vereiste rol-context | Ingelogde gebruiker met actieve beheerdercontext. De pagina mag server-side niet beschikbaar zijn voor leerling-, ouder-/voogd- of reguliere docentcontext zonder beheerderrol. |
| Primair domeinobject / hoofdentiteit | Geen enkel primair mutatieobject; samengestelde frontpage op basis van beheerdergerichte samenvattingswaarden, contentcontext, accountcontext, meldingen, notificaties en beheerhistorie. |
| Gerelateerde schermen / navigatie | Meldingen overzicht, Site instellingen, Categorieën beheren, Modules beheren, Docent ondersteuning, Accounts en onderliggende beheerpagina’s die via beheerdernavigatie of contextacties bereikbaar zijn. |
| Data-karakter | Read-only overzichts- en oriëntatiepagina met dynamisch berekende tellers, samengestelde historie en beheerbare tekstinhoud; er worden op deze pagina zelf geen beheerobjecten gemuteerd. |
2.3 Functionele beschrijving
De beheerder-frontpage is de start- en oriëntatiepagina voor gebruikers die OefenHub openen in een actieve beheerdercontext. De pagina bundelt de belangrijkste beheersignalen op één rustige plek: technische modules die aandacht vragen, meldingen die opgevolgd moeten worden, actieve systeemnotificaties, centrale contentstatistieken, accountverdeling en recente centrale beheerwijzigingen.
De pagina is nadrukkelijk geen diep mutatiescherm. Een beheerder wijzigt hier geen categorieën, modules, accounts, meldingen of systeeminstellingen direct. De frontpage toont samenvattingen en context, waarna de beheerder via de vaste beheerdernavigatie of via contextacties in de wijzigingslijst naar het juiste onderliggende beheerscherm gaat.
2.3.1 Scope van dit schermdocument
Dit schermdocument beschrijft alleen de inhoudelijke frontpageweergave binnen het <main>-gedeelte van de beheerderlandingsview:
- het introblok Welkom op je beheer-frontpage;
- het attentieblok Vandaag extra aandacht;
- de samenvattingskaart Contentbeheer;
- de samenvattingskaart Accounts & rollen;
- de kaart Recente beheerwijzigingen.
De header, beheerdernavigatie, berichtenbadge, profielmenu en footer zijn generieke componenten en worden niet opnieuw als UI-elementen of waardelagen in dit schermdocument uitgewerkt.
2.3.2 Hoofdopbouw van de pagina
Bovenaan staan twee gelijkwaardige blokken naast elkaar. Links staat het introductieblok met de functionele uitleg van de beheerder-frontpage. Rechts staat het attentieblok Vandaag extra aandacht met vier kernwaarden die een beheerder direct moet kunnen scannen.
Onder deze eerste rij staan twee samenvattingskaarten:
-
Contentbeheer
Deze kaart vat centrale content- en oefenstructuur samen. De kaart toont hoeveel centrale categorieën, technische modules, docentniveaus en concrete oefeningen op dit moment actief of regulier inzetbaar zijn volgens de daarvoor geldende telregels. -
Accounts & rollen
Deze kaart vat de actieve accountpopulatie samen. De kaart toont het totaal aantal actieve accounts en de aantallen actieve rolcontexten voor leerlingen, docenten en ouders/voogden. Omdat OefenHub gecombineerde rollen toestaat voor ouder/voogd, docent en beheerder, zijn roltellers niet altijd onderling exclusieve aantallen.
Onderaan staat Recente beheerwijzigingen. Deze kaart toont een chronologische lijst met centrale beheeracties uit de laatste periode, in de mockup aangeduid als Laatste 30 dagen. De lijst is scrollbaar zodat de frontpage compact blijft, ook wanneer er meerdere recente beheeracties zijn.
2.3.3 Dynamische waarden en mockupdata
Alle zichtbare aantallen in de mockup, zoals 1, 4, 3 open / 1 nieuw, 18, 11, 42, 286, 428, 312, 36 en 74, zijn voorbeeldwaarden. Zij mogen niet als vaste productiegegevens worden gebruikt.
Ook de regels in Recente beheerwijzigingen zijn voorbeelddata. Namen zoals Naomi van Dijk en Tom de Boer, wijzigingstitels, datums, tijdstippen en domeinlabels worden dynamisch opgebouwd uit de relevante beheerhistorie.
De pagina mag technische identifiers, GUID’s, interne record-id’s of ruwe enumwaarden niet zichtbaar maken. De beheerder ziet functionele labels, aantallen en menselijke contextinformatie.
2.3.4 Beheerbare inhoud versus codegedreven structuur
De globale pagina-opbouw, de aanwezigheid van de kernblokken, de volgorde van de blokken en de layout zijn codegedreven. De beheerder-frontpage is dus geen vrije pagebuilder.
Tekstuele onderdelen zoals de titel, introductietekst, begeleidende kaartteksten en korte toelichtingen kunnen via het contentblokmodel beheerbaar zijn, voor zover daar ContentBlocks met DomainType = FrontPage en ContextType = Admin voor beschikbaar zijn. Het ontbreken of wijzigen van beheerbare tekstcontent mag de betekenis van de onderliggende tellers niet veranderen. Kernwaarden blijven read-only afleidingen uit het domeinmodel.
Wanneer een gebruiker meerdere niet-leerlingrollen heeft, blijft de runtime-samenstelling van de frontpage de vaste prioriteit volgen: beheerderblokken eerst, daarna docentblokken en daarna ouder-/voogdblokken. Deze beheerder-frontpage beschrijft het beheerderdeel van die samenstelling.
2.3.5 Vandaag extra aandacht
Het attentieblok toont kernsignalen die een beheerder direct na binnenkomst moet kunnen beoordelen:
- Modules in onderhoud: technische modules die niet regulier inzetbaar zijn voor docenten of leerlingen en daardoor aandacht kunnen vragen.
- Beheerders: actieve accounts met een actieve beheerderrol.
- Meldingen: samengestelde meldingenteller met minimaal het totaal aantal open meldingen en de subset daarvan die nog de status Nieuw heeft.
- Actieve notificaties: systeemnotificaties die op het moment van laden binnen de actuele beheerdercontext zichtbaar kunnen worden.
De waarden zijn read-only. Een klik op het blok of een onderliggende waarde mag hoogstens naar een passend beheerscherm navigeren; de frontpage zelf voert geen mutatie uit.
2.3.6 Contentbeheer-samenvatting
De kaart Contentbeheer toont aantallen die een beheerder helpen inschatten hoe groot de actuele onderwijs- en contentstructuur is.
De teller Actieve categorieën telt centrale categorieën die regulier bruikbaar zijn. Soft-deleted, uitgefaseerde of na migratie niet langer kiesbare broncategorieën tellen niet mee.
De teller Actieve modules telt technische moduleversies die regulier beschikbaar zijn voor gebruik. Moduleversies die alleen testzichtbaar zijn of niet regulier actief zijn, tellen niet mee als actieve module.
De teller Actieve niveaus volgt de tekst in de mockup: docentniveaus waarvoor leerlingen op dit moment toegang hebben. Dit betekent dat niet alleen het niveau actief moet zijn, maar ook dat er minimaal één actieve leerlingtoegang voor het niveau bestaat.
De teller Actieve oefeningen telt concrete docent-oefeningen die actief en inzetbaar zijn binnen een actieve niveau-categorie-koppeling. Een oefening die wel bestaat maar in onderhoud staat, niet actief gekoppeld is of alleen historisch beschikbaar is, telt niet mee.
2.3.7 Accounts & rollen-samenvatting
De kaart Accounts & rollen toont de actuele accountverdeling binnen OefenHub.
Totaal actieve accounts telt actieve gebruikersaccounts. De roltellers Leerlingen, Docenten en Ouders/voogden tellen actieve gebruikers met de betreffende actieve rolcontext. Omdat gebruikers met ouder-/voogd-, docent- en beheerderrollen gecombineerd mogen voorkomen, kunnen roltellers elkaar overlappen. De leerlingrol blijft uitgesloten van combinatie met de andere rollen.
Geblokkeerde, gedeactiveerde, verwijderde of geanonimiseerde accounts tellen niet mee als actief account. De exacte uitsluiting volgt de accountstatus en rolstatus in het identiteits- en autorisatiemodel.
2.3.8 Recente beheerwijzigingen
De kaart Recente beheerwijzigingen toont centrale beheeracties over content-, account- en systeemdomeinen. Per regel worden minimaal getoond:
- korte wijzigingstitel;
- korte functionele toelichting;
- uitvoerende gebruiker;
- datum en tijd;
- functioneel domeinlabel;
- eventuele contextactie naar het bijbehorende beheerscherm.
De lijst is bedoeld voor snelle oriëntatie en reconstructie op hoofdlijnen. Zij vervangt niet de formele audit- en historielagen in de onderliggende domeinen. De frontpage gebruikt daarom een samengesteld read model over relevante historiebronnen, maar de bron van waarheid blijft bij de betreffende domeinhistorie, zoals categoriehistorie, modulemigratiehistorie, oefenhistorie, systeeminstellinghistorie, featuretogglehistorie en systeemnotificatiehistorie.
De standaardperiode is Laatste 30 dagen, zoals zichtbaar in de mockup. Wanneer er geen recente beheerwijzigingen zijn, toont de kaart een lege staat met de strekking dat er in de gekozen periode geen centrale beheerwijzigingen zijn gevonden.
2.3.9 Site-notificaties rond de frontpage
Systeemnotificaties blokkeren het initiële laden van de frontpage niet. De frontpage wordt eerst geladen. Daarna controleert de applicatie of er actieve site-notificaties relevant zijn voor de actuele beheerdercontext. Wanneer dat zo is, wordt de eerste relevante notificatie als losse notificatieweergave boven de reeds geladen pagina getoond. Na sluiten wordt direct gecontroleerd of er nog een volgende actieve notificatie is.
De aanwezigheid van zulke notificaties hoort functioneel bij de frontpagecontext, maar de notificatie-popup zelf is geen onderdeel van deze frontpageweergave zonder geopende notificatie.
2.3.10 Leegstaten, foutstaten en laden
Wanneer een teller tijdelijk niet kan worden berekend, mag de pagina niet onveilige of verouderde data presenteren alsof deze actueel is. Het systeem toont dan per betrokken waarde een passende laad-, fout- of onbekendstatus en logt de fout server-side.
Wanneer een samenvattingswaarde 0 is, blijft de kaart zichtbaar met waarde 0. Dit is iets anders dan een foutstaat. Een nulwaarde is functionele informatie en mag niet verborgen worden.
Wanneer de beheerhistorie leeg is voor de gekozen periode, blijft de kaart Recente beheerwijzigingen zichtbaar met een compacte lege staat. De pagina blijft bruikbaar als oriëntatiepunt.
2.3.11 Responsief gedrag
Bij voldoende schermbreedte staan intro en attentieblok naast elkaar en staan Contentbeheer en Accounts & rollen in een tweekolomsgrid. Bij smallere schermbreedtes stapelen de blokken onder elkaar. De kaart Recente beheerwijzigingen blijft onder de samenvattingskaarten staan en behoudt een eigen scrollbaar lijstgebied wanneer het aantal regels groter is dan de beschikbare ruimte.
De responsive layout mag de betekenis van de tellers, de sortering van de historie of de autorisatie niet wijzigen.
2.4 UI-elementen en velddefinities
| Element-ID | Type | GUI-verwijzing | Omschrijving | Zichtbaar label | Opmerking | Technische naam |
|---|---|---|---|---|---|---|
| SCH-BEH-01-01-S01 | S | Hoofdinhoud | Codegedreven container voor de beheerder-frontpage binnen de beheerdercontext. | Beheerder-frontpage | Header en footer vallen buiten scope. | AdminFrontpageShell |
| SCH-BEH-01-01-S02 | S | Introblok | Introblok met titel en uitleg over de functie van de beheerder-frontpage. | Welkom op je beheer-frontpage | Tekstuele inhoud kan beheerbaar zijn; layout blijft codegedreven. | AdminFrontpageIntroSection |
| SCH-BEH-01-01-F01 | F | Introblok — titel | Titel van de beheerder-frontpage. | Welkom op je beheer-frontpage | Read-only op deze pagina. | AdminFrontpageIntroTitle |
| SCH-BEH-01-01-F02 | F | Introblok — tekst | Begeleidende tekst die uitlegt dat de frontpage een oriëntatiepagina is. | Vanaf deze startpagina krijg je... | Tekst mag geen diepe beheeracties suggereren op deze pagina zelf. | AdminFrontpageIntroText |
| SCH-BEH-01-01-S03 | S | Vandaag extra aandacht | Attentieblok met direct relevante kerncijfers voor de beheerder. | Vandaag extra aandacht | Samenvatting van beheerdergerichte aandachtspunten. | AdminAttentionSummarySection |
| SCH-BEH-01-01-F03 | F | Vandaag extra aandacht — toelichting | Korte toelichting onder de titel van het attentieblok. | Deze kaart laat de kerncijfers zien... | Begeleidende tekst; waarden blijven afzonderlijke dynamische tellers. | AdminAttentionIntroText |
| SCH-BEH-01-01-F04 | F | Modules in onderhoud | Read-only teller van technische modules die niet regulier inzetbaar zijn. | Modules in onderhoud | Dynamische teller; mockupwaarde is voorbeelddata. | ModulesInMaintenanceValue |
| SCH-BEH-01-01-F05 | F | Beheerders | Read-only teller van actieve accounts met beheerderrol. | Beheerders | Dynamische teller; mockupwaarde is voorbeelddata. | AdminAccountsValue |
| SCH-BEH-01-01-F06 | F | Meldingen | Read-only samengestelde teller van open en nieuwe meldingen. | Meldingen | Toont minimaal totaal open en subset nieuw. | TicketsOpenNewValue |
| SCH-BEH-01-01-F07 | F | Actieve notificaties | Read-only teller van relevante actieve site-notificaties. | Actieve notificaties | Telt notificaties die binnen de actuele beheerdercontext zichtbaar kunnen worden. | ActiveNotificationsValue |
| SCH-BEH-01-01-S04 | S | Contentbeheer | Samenvattingskaart voor centrale content, modules en docentstructuur. | Contentbeheer | Kaart toont dynamische contentstatistieken. | ContentManagementSummarySection |
| SCH-BEH-01-01-F08 | F | Contentbeheer — rol/kicker | Visuele contextaanduiding van de kaart. | Beheerder | Geen autorisatiebron; alleen UI-label. | ContentManagementKicker |
| SCH-BEH-01-01-F09 | F | Contentbeheer — contexttag | Compacte tag rechtsboven in de kaart. | Content | Contextlabel; geen zelfstandig filter. | ContentManagementContextTag |
| SCH-BEH-01-01-F10 | F | Actieve categorieën | Read-only teller van regulier inzetbare centrale categorieën. | Actieve categorieën | Dynamische teller; mockupwaarde is voorbeelddata. | ActiveCategoriesValue |
| SCH-BEH-01-01-F11 | F | Actieve modules | Read-only teller van regulier actieve technische modules. | Actieve modules | Dynamische teller; mockupwaarde is voorbeelddata. | ActiveModulesValue |
| SCH-BEH-01-01-F12 | F | Actieve niveaus | Read-only teller van actieve docentniveaus met actuele leerlingtoegang. | Actieve niveaus | Teller volgt de mockuptoelichting “waarvoor leerlingen momenteel toegang hebben”. | ActiveLevelsWithStudentAccessValue |
| SCH-BEH-01-01-F13 | F | Actieve oefeningen | Read-only teller van actieve, gekoppelde en inzetbare concrete oefeningen. | Actieve oefeningen | Oefening moet actief en binnen actieve structuur inzetbaar zijn. | ActiveAvailableExercisesValue |
| SCH-BEH-01-01-S05 | S | Accounts & rollen | Samenvattingskaart voor actieve accounts en rolverdelingen. | Accounts & rollen | Roltellers kunnen elkaar overlappen bij combinatierollen. | AccountsAndRolesSummarySection |
| SCH-BEH-01-01-F14 | F | Accounts & rollen — rol/kicker | Visuele contextaanduiding van de kaart. | Beheerder | Geen autorisatiebron; alleen UI-label. | AccountsAndRolesKicker |
| SCH-BEH-01-01-F15 | F | Accounts & rollen — contexttag | Compacte tag rechtsboven in de kaart. | Accounts | Contextlabel; geen zelfstandig filter. | AccountsAndRolesContextTag |
| SCH-BEH-01-01-F16 | F | Totaal actieve accounts | Read-only teller van actieve gebruikersaccounts. | Totaal actieve accounts | Dynamische teller; mockupwaarde is voorbeelddata. | TotalActiveAccountsValue |
| SCH-BEH-01-01-F17 | F | Leerlingen | Read-only teller van actieve leerlingaccounts. | Leerlingen | Leerlingrol is niet combineerbaar met andere rollen. | ActiveStudentsValue |
| SCH-BEH-01-01-F18 | F | Docenten | Read-only teller van actieve docentrolcontexten. | Docenten | Kan overlappen met ouder/voogd en beheerder. | ActiveTeachersValue |
| SCH-BEH-01-01-F19 | F | Ouders/voogden | Read-only teller van actieve ouder-/voogdrolcontexten. | Ouders/voogden | Kan overlappen met docent en beheerder. | ActiveGuardiansValue |
| SCH-BEH-01-01-S06 | S | Recente beheerwijzigingen | Kaart met chronologisch overzicht van recente centrale beheeracties. | Recente beheerwijzigingen | Scrollbaar lijstgebied; geen vervanging van domeinhistorie. | RecentAdminChangesSection |
| SCH-BEH-01-01-F20 | F | Recente beheerwijzigingen — contexttags | Tags boven de wijzigingslijst. | Historie / Laatste 30 dagen | Periode-aanduiding en domeincontext. | RecentAdminChangesTags |
| SCH-BEH-01-01-T01 | T | Wijzigingenlijst | Lijst met recente beheerwijzigingen inclusief titel, toelichting, actor, datum/tijd en domeinlabel. | Recente beheerwijzigingen | Dynamische collectie op basis van relevante historiebronnen. | RecentAdminChangesList |
| SCH-BEH-01-01-F21 | F | Wijzigingenlijst — titel | Titel van één wijzigingsregel. | <wijzigingstitel> | Dynamische tekst; geen vaste mockupwaarde. | RecentAdminChangeTitle |
| SCH-BEH-01-01-F22 | F | Wijzigingenlijst — toelichting | Korte functionele samenvatting van de wijziging. | <toelichting> | Dynamische tekst; veilig geëncodeerd tonen. | RecentAdminChangeSummary |
| SCH-BEH-01-01-F23 | F | Wijzigingenlijst — actor en moment | Uitvoerende gebruiker en datum/tijd van de wijziging. | <naam> · <datum> · <tijd> | Datum/tijd lokaal weergeven op basis van UTC-bronwaarde. | RecentAdminChangeByline |
| SCH-BEH-01-01-F24 | F | Wijzigingenlijst — domeinlabel | Visueel label voor het beheeronderdeel van de wijziging. | Modules beheren / Categorieën beheren / Docent ondersteuning / Site instellingen | Label wordt afgeleid uit het brondomein. | RecentAdminChangeDomainLabel |
| SCH-BEH-01-01-A01 | A | Wijzigingenlijst — contextactie | Contextgebonden doorklikactie naar het relevante onderliggende beheerscherm. | <beheeractie> | Alleen tonen wanneer een veilige route voor de beheerder beschikbaar is. | RecentAdminChangeOpenAction |
| SCH-BEH-01-01-M01 | M | Recente beheerwijzigingen — leegstaat | Bericht wanneer er binnen de geselecteerde periode geen recente beheerwijzigingen zijn. | Geen recente beheerwijzigingen gevonden. | Alleen zichtbaar bij lege lijst. | RecentAdminChangesEmptyState |
| SCH-BEH-01-01-M02 | M | Samenvattingswaarde — foutstaat | Compacte melding of fallback wanneer een teller niet geladen kan worden. | Waarde niet beschikbaar | Mag niet als nulwaarde worden geïnterpreteerd. | SummaryValueUnavailableState |
2.5 Waardelagen
| Element-ID | GUI-verwijzing | Zichtbaar label | Technische naam | Databron | Waardebron | Datatype | Bewerkbaar | Validatie / regel |
|---|---|---|---|---|---|---|---|---|
| SCH-BEH-01-01-S01 | Hoofdinhoud | Beheerder-frontpage | AdminFrontpageShell | Actieve sessie + Users + UserRoles + Roles | Runtime autorisatiecontext | Composite | Nee | Server-side alleen tonen wanneer de ingelogde gebruiker een actieve beheerderrol heeft. |
| SCH-BEH-01-01-F01 | Introblok — titel | Welkom op je beheer-frontpage | AdminFrontpageIntroTitle | ContentBlocks met DomainType = FrontPage, ContextType = Admin, passende ReferenceKey; eventueel codegedreven fallback | Beheerbare content of codegedreven standaardtekst | String | Nee op deze view | Rendering veilig uitvoeren; ontbrekende content mag de pagina niet laten falen. |
| SCH-BEH-01-01-F02 | Introblok — tekst | Vanaf deze startpagina krijg je... | AdminFrontpageIntroText | ContentBlocks met DomainType = FrontPage, ContextType = Admin, passende ReferenceKey; eventueel codegedreven fallback | Beheerbare content of codegedreven standaardtekst | String / rich text display | Nee op deze view | Alleen veilige, gesanitized beheercontent tonen. |
| SCH-BEH-01-01-F03 | Vandaag extra aandacht — toelichting | Deze kaart laat de kerncijfers zien... | AdminAttentionIntroText | ContentBlocks of codegedreven kaarttekst | Beheerbare content of codegedreven standaardtekst | String | Nee op deze view | Tekst mag de betekenis van de tellers niet veranderen. |
| SCH-BEH-01-01-F04 | Modules in onderhoud | Modules in onderhoud | ModulesInMaintenanceValue | ExerciseModules.IsActive, eventueel ExerciseModules.IsVisibleForTesting voor testzichtbare maar niet reguliere modules | Berekende telling van moduleversies die niet regulier actief zijn | Integer | Nee | Alleen technische modules tellen die beheerdergerichte aandacht vragen; mockupwaarde niet hardcoden. |
| SCH-BEH-01-01-F05 | Beheerders | Beheerders | AdminAccountsValue | Users.IsActive, UserRoles.IsActive, Roles.Code = Admin | Berekende telling van actieve accounts met actieve beheerderrol | Integer | Nee | Gedeactiveerde, verwijderde of geanonimiseerde accounts niet meetellen. |
| SCH-BEH-01-01-F06 | Meldingen | Meldingen | TicketsOpenNewValue | Tickets, TicketStatuses.Code | Samengestelde telling: open tickets en subset status New | String / samengesteld object | Nee | Open = tickets waarvan backendstatus niet Closed; Nieuw = status New; beide waarden gebruiker-onafhankelijk voor beheerdercontext. |
| SCH-BEH-01-01-F07 | Actieve notificaties | Actieve notificaties | ActiveNotificationsValue | SiteNotifications.StartAtUtc, SiteNotifications.EndAtUtc, SiteNotifications.AudienceType | Berekende telling van notificaties die op dit moment relevant zijn voor de beheerdercontext | Integer | Nee | UTC-tijdvenster gebruiken; doelgroepfilter moet consistent zijn met notificatieweergave na laden van de frontpage. |
| SCH-BEH-01-01-F08 | Contentbeheer — rol/kicker | Beheerder | ContentManagementKicker | Codegedreven UI-label of ContentBlocks indien beheerbaar gemaakt | Weergavetekst | String | Nee op deze view | Label is presentatie; autorisatie komt uit server-side rolcontext. |
| SCH-BEH-01-01-F09 | Contentbeheer — contexttag | Content | ContentManagementContextTag | Codegedreven UI-label | Weergavetekst | String | Nee | Geen filter of beveiligingslaag. |
| SCH-BEH-01-01-F10 | Actieve categorieën | Actieve categorieën | ActiveCategoriesValue | Categories.IsDeleted, migratie-/uitfaseerstatus uit categoriebeheer | Berekende telling van regulier inzetbare centrale categorieën | Integer | Nee | Soft-deleted, uitgefaseerde of na migratie niet langer kiesbare broncategorieën niet meetellen. |
| SCH-BEH-01-01-F11 | Actieve modules | Actieve modules | ActiveModulesValue | ExerciseModules.IsActive | Berekende telling van regulier actieve technische moduleversies | Integer | Nee | Test-only zichtbaarheid telt niet als regulier actief. |
| SCH-BEH-01-01-F12 | Actieve niveaus | Actieve niveaus | ActiveLevelsWithStudentAccessValue | TeacherLevels.IsActive, TeacherStudentLevelAccess.IsActive | Berekende telling van actieve docentniveaus met minimaal één actieve leerlingtoegang | Integer | Nee | Telling volgt de kaarttekst: niveaus waarvoor leerlingen momenteel toegang hebben. |
| SCH-BEH-01-01-F13 | Actieve oefeningen | Actieve oefeningen | ActiveAvailableExercisesValue | Exercises.IsActive, TeacherLevelCategoryExercises.IsActive, actieve bovenliggende niveau-/categoriecontext | Berekende telling van actieve concrete docent-oefeningen die inzetbaar gekoppeld zijn | Integer | Nee | Oefeningen in onderhoud, historisch gedeactiveerde koppelingen en niet-regulier inzetbare contexten niet meetellen. |
| SCH-BEH-01-01-F14 | Accounts & rollen — rol/kicker | Beheerder | AccountsAndRolesKicker | Codegedreven UI-label of ContentBlocks indien beheerbaar gemaakt | Weergavetekst | String | Nee op deze view | Label is presentatie; autorisatie komt uit server-side rolcontext. |
| SCH-BEH-01-01-F15 | Accounts & rollen — contexttag | Accounts | AccountsAndRolesContextTag | Codegedreven UI-label | Weergavetekst | String | Nee | Geen filter of beveiligingslaag. |
| SCH-BEH-01-01-F16 | Totaal actieve accounts | Totaal actieve accounts | TotalActiveAccountsValue | Users.IsActive en account-lifecyclestatus | Berekende telling van actieve OefenHub-accounts | Integer | Nee | Gedeactiveerde, verwijderde of geanonimiseerde accounts niet meetellen als actief. |
| SCH-BEH-01-01-F17 | Leerlingen | Leerlingen | ActiveStudentsValue | Users.IsActive, UserRoles.IsActive, Roles.Code = Student | Berekende telling van actieve leerlingaccounts | Integer | Nee | Leerlingrol is exclusief en mag niet met andere rollen gecombineerd voorkomen. |
| SCH-BEH-01-01-F18 | Docenten | Docenten | ActiveTeachersValue | Users.IsActive, UserRoles.IsActive, Roles.Code = Teacher | Berekende telling van actieve docentrolcontexten | Integer | Nee | Kan overlappen met ouder/voogd en beheerder. |
| SCH-BEH-01-01-F19 | Ouders/voogden | Ouders/voogden | ActiveGuardiansValue | Users.IsActive, UserRoles.IsActive, Roles.Code = Guardian | Berekende telling van actieve ouder-/voogdrolcontexten | Integer | Nee | Kan overlappen met docent en beheerder. |
| SCH-BEH-01-01-F20 | Recente beheerwijzigingen — contexttags | Historie / Laatste 30 dagen | RecentAdminChangesTags | Codegedreven periode- en domeinlabels | UI-context voor lijst | String | Nee | De periode moet overeenkomen met de query op recente beheerwijzigingen. |
| SCH-BEH-01-01-T01 | Wijzigingenlijst | Recente beheerwijzigingen | RecentAdminChangesList | Samengesteld read model over onder meer CategoryHistory, CategoryMigrations, ExerciseHistory, ExerciseModuleMigrations, TeacherLevelOwnershipTransfers, TeacherLevelCollaborators, SystemSettings, SiteFeatureToggleHistory, SiteNotificationHistory, ContentBlockHistory en relevante accountbeheerhistorie | Chronologische aggregatie van recente centrale beheeracties | Collection | Nee | Sorteren op meest recente wijziging eerst; alleen beheerderrelevante centrale acties tonen; bronhistorie blijft leidend. |
| SCH-BEH-01-01-F21 | Wijzigingenlijst — titel | <wijzigingstitel> | RecentAdminChangeTitle | Bronspecifieke history- of migratierecords | Afgeleide menselijke samenvatting | String | Nee | Geen technische enum of GUID tonen; tekst veilig encoden. |
| SCH-BEH-01-01-F22 | Wijzigingenlijst — toelichting | <toelichting> | RecentAdminChangeSummary | Bronspecifieke history- of migratierecords | Afgeleide korte toelichting | String | Nee | Vrije tekst uit redenen of toelichtingen alleen veilig en compact tonen. |
| SCH-BEH-01-01-F23 | Wijzigingenlijst — actor en moment | <naam> · <datum> · <tijd> | RecentAdminChangeByline | Users, actorvelden uit historytabellen, ChangedAtUtc, MigratedAtUtc of vergelijkbaar brontijdstip | Actorweergave en lokaal geformatteerd tijdstip | String / DateTime display | Nee | UTC-bronwaarden lokaal tonen; geanonimiseerde of verwijderde gebruikers veilig weergeven. |
| SCH-BEH-01-01-F24 | Wijzigingenlijst — domeinlabel | Modules beheren / Categorieën beheren / Docent ondersteuning / Site instellingen | RecentAdminChangeDomainLabel | Brondomein van de wijziging | Afgeleid domeinlabel | Enum/string | Nee | Alleen ondersteunde beheerlabels tonen; onbekend domein veilig als algemeen beheerlabel tonen. |
| SCH-BEH-01-01-A01 | Wijzigingenlijst — contextactie | <beheeractie> | RecentAdminChangeOpenAction | Routeconfiguratie + brondomein + actuele beheerderautorisatie | Afgeleide navigatieactie | Action | Ja | Alleen tonen of activeren wanneer de beheerder server-side toegang heeft tot het doelscherm en het object nog veilig geopend kan worden. |
| SCH-BEH-01-01-M01 | Recente beheerwijzigingen — leegstaat | Geen recente beheerwijzigingen gevonden. | RecentAdminChangesEmptyState | Queryresultaat van RecentAdminChangesList | Afgeleide leegstaat | Message | Nee | Tonen bij lege collectie binnen de gekozen periode. |
| SCH-BEH-01-01-M02 | Samenvattingswaarde — foutstaat | Waarde niet beschikbaar | SummaryValueUnavailableState | Fout uit read model, service of querylaag | Runtime state | Message | Nee | Niet verwarren met waarde 0; fout server-side loggen en geen misleidende teller tonen. |
2.6 Schermtrace naar SRS en acceptatiecriteria
De onderstaande tabel legt per schermrequirement de koppeling naar het centrale schermrequirements-trace-register, SRS-requirements en acceptatiecriteria vast. De normatieve requirementtekst staat in de SRS; dit schermdocument beschrijft alleen de lokale schermcontext.
Deze tabel bevat alleen schermtraceability. De normatieve requirementtekst en acceptatiecriteria staan centraal in de SRS.
| Schermrequirement | Dekt | Schermcontext |
|---|---|---|
REQ-SCH-BEH-01-01-01 | SRS-AUTH-001 SRS-ADM-001 AC-AUTH-001 AC-ADM-001 | De beheerder na inloggen of navigeren naar de beheerdercontext een zelfstandige beheerder-frontpage tonen als overzichts- en oriëntatiepagina |
REQ-SCH-BEH-01-01-02 | SRS-AUTH-001 SRS-ADM-005 AC-AUTH-001 AC-ADM-005 | Toegang tot de beheerder-frontpage server-side beperken tot gebruikers met een actieve beheerderrol |
REQ-SCH-BEH-01-01-03 | SRS-ADM-001 AC-ADM-001 | De beheerder-frontpage mag geen primair mutatiescherm zijn; inhoudelijke mutaties plaatsvinden op onderliggende beheerpagina’s |
REQ-SCH-BEH-01-01-04 | SRS-ADM-001 AC-ADM-001 | Header, beheerdernavigatie, berichtenicoon, profielmenu en footer als generieke componenten behandelen en niet als onderdeel van de frontpage-inhoud documenteren of muteren |
REQ-SCH-BEH-01-01-05 | SRS-ADM-001 AC-ADM-001 | Een introblok tonen met een beheerdergerichte titel en toelichting over het doel van de frontpage |
REQ-SCH-BEH-01-01-06 | SRS-ADM-001 AC-ADM-001 | Tekstuele frontpagecontent mag beheerbaar zijn via het contentblokmodel, maar de structurele indeling, volgorde en layout van de beheerder-frontpage codegedreven blijven |
REQ-SCH-BEH-01-01-07 | SRS-ADM-001 AC-ADM-001 | In het blok Vandaag extra aandacht minimaal de kernwaarden Modules in onderhoud, Beheerders, Meldingen en Actieve notificaties tonen |
REQ-SCH-BEH-01-01-08 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-ADM-001 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-ADM-001 | De teller Modules in onderhoud dynamisch worden afgeleid uit technische modules die niet regulier inzetbaar zijn en mag mockupwaarden niet hardcoded gebruiken |
REQ-SCH-BEH-01-01-09 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-NFR-PRV-001 SRS-ADM-005 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-NFR-PRV-001 AC-ADM-005 | De teller Beheerders actieve accounts met een actieve beheerderrol tellen en gedeactiveerde, verwijderde of geanonimiseerde accounts uitsluiten |
REQ-SCH-BEH-01-01-10 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-ADM-001 AC-RDM-003 AC-RDM-004 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-ADM-001 | De teller Meldingen minimaal het totaal aantal open meldingen en de subset met status Nieuw tonen |
REQ-SCH-BEH-01-01-11 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-AUTH-001 SRS-ADM-001 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-AUTH-001 AC-ADM-001 | De teller Actieve notificaties wordt berekend op basis van het actuele UTC-tijdvenster en de doelgroep die relevant is voor de beheerdercontext |
REQ-SCH-BEH-01-01-12 | SRS-ADM-001 AC-ADM-001 | Systeemnotificaties mogen het initiële laden van de frontpage niet blokkeren; relevante notificaties pas na het laden als afzonderlijke notificatieweergave worden afgehandeld |
REQ-SCH-BEH-01-01-13 | SRS-ADM-001 AC-ADM-001 | In de kaart Contentbeheer minimaal de waarden Actieve categorieën, Actieve modules, Actieve niveaus en Actieve oefeningen tonen |
REQ-SCH-BEH-01-01-14 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-ADM-001 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-ADM-001 | De teller Actieve categorieën alleen centrale categorieën tellen die regulier inzetbaar zijn en soft-deleted, uitgefaseerde of niet langer kiesbare broncategorieën uitsluiten |
REQ-SCH-BEH-01-01-15 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-ADM-005 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-ADM-005 | De teller Actieve modules alleen technische moduleversies tellen die regulier actief zijn voor gebruik |
REQ-SCH-BEH-01-01-16 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-AUTH-001 SRS-ADM-001 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-AUTH-001 AC-ADM-001 | De teller Actieve niveaus actieve docentniveaus tellen waarvoor minimaal één actieve leerlingtoegang bestaat, zolang de kaarttekst aangeeft dat het om niveaus gaat waarvoor leerlingen momenteel toegang hebben |
REQ-SCH-BEH-01-01-17 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-006 SRS-RDM-002 SRS-RDM-001 SRS-ADM-005 AC-RDM-003 AC-RDM-004 AC-RDM-006 AC-RDM-002 AC-RDM-001 AC-ADM-005 | De teller Actieve oefeningen concrete docent-oefeningen tellen die actief zijn en binnen een actieve niveau-categorie-koppeling inzetbaar zijn |
REQ-SCH-BEH-01-01-18 | SRS-ADM-005 AC-ADM-005 | In de kaart Accounts & rollen minimaal de waarden Totaal actieve accounts, Leerlingen, Docenten en Ouders/voogden tonen |
REQ-SCH-BEH-01-01-19 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-NFR-PRV-001 SRS-ADM-005 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-NFR-PRV-001 AC-ADM-005 | De teller Totaal actieve accounts gedeactiveerde, verwijderde en geanonimiseerde accounts uitsluiten |
REQ-SCH-BEH-01-01-20 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-AUTH-001 SRS-ADM-005 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-AUTH-001 AC-ADM-005 | Roltellers actieve rolcontexten tellen en correct omgaan met toegestane combinatierollen, waarbij leerling niet gecombineerd mag worden met andere rollen |
REQ-SCH-BEH-01-01-21 | SRS-NFR-AUD-001 SRS-ADM-001 AC-NFR-AUD-001 AC-ADM-001 | In Recente beheerwijzigingen een chronologische lijst tonen van recente centrale beheeracties met minimaal titel, toelichting, actor, datum/tijd en domeinlabel |
REQ-SCH-BEH-01-01-22 | SRS-ADM-001 AC-ADM-001 | De lijst Recente beheerwijzigingen standaard de periode Laatste 30 dagen ondersteunen zoals in de mockup aangeduid |
REQ-SCH-BEH-01-01-23 | SRS-NFR-AUD-001 SRS-ADM-001 AC-NFR-AUD-001 AC-ADM-001 | Recente beheerwijzigingen worden opgebouwd uit de relevante formele history- en migratiebronnen en mogen de onderliggende domeinhistorie niet vervangen |
REQ-SCH-BEH-01-01-24 | SRS-AUTH-001 SRS-ADM-001 AC-AUTH-001 AC-ADM-001 | Per wijzigingsregel mag een contextactie naar het relevante beheerscherm worden aangeboden, mits de beheerder server-side toegang heeft tot dat doel |
REQ-SCH-BEH-01-01-25 | SRS-AUTH-004 SRS-ADM-001 AC-AUTH-004 AC-ADM-001 | Het systeem mag in de beheerder-frontpage geen technische identifiers zoals GUID’s, interne record-id’s of ruwe enumwaarden zichtbaar tonen |
REQ-SCH-BEH-01-01-26 | SRS-ADM-001 AC-ADM-001 | Een compacte lege staat tonen wanneer er binnen de geselecteerde periode geen recente beheerwijzigingen zijn |
REQ-SCH-BEH-01-01-27 | SRS-ADM-001 AC-ADM-001 | Nulwaarden als geldige dynamische waarden tonen en deze niet verwarren met fout- of laadstaten |
REQ-SCH-BEH-01-01-28 | SRS-RDM-009 SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-AUTH-001 SRS-ADM-001 AC-RDM-009 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-AUTH-001 AC-ADM-001 | Wanneer een samenvattingswaarde niet geladen kan worden, het systeem een passende fout- of onbekendstatus tonen en de fout server-side loggen |
REQ-SCH-BEH-01-01-29 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-002 SRS-RDM-001 SRS-ADM-001 AC-RDM-003 AC-RDM-004 AC-RDM-002 AC-RDM-001 AC-ADM-001 | Zichtbare tellers, datums, tijden, namen, wijzigingsregels en contextlabels dynamisch worden opgebouwd uit actuele brondata of beheerbare content |
REQ-SCH-BEH-01-01-30 | SRS-RDM-003 SRS-RDM-004 SRS-RDM-008 SRS-RDM-002 SRS-RDM-001 SRS-AUTH-001 SRS-ADM-001 AC-RDM-003 AC-RDM-004 AC-RDM-008 AC-RDM-002 AC-RDM-001 AC-AUTH-001 AC-ADM-001 | Bij smallere schermbreedtes de frontpageblokken onder elkaar stapelen zonder dat tellerbetekenis, sortering of autorisatiegedrag wijzigt |
2.7 Technische koppeling
Voor technische uitwerking van de beheerderfrontpage zijn vooral relevant:
- 04 Identiteit, authenticatie en rolcontext voor actieve beheerdercontext en combinatierollen.
- 05 Autorisatie, policies en server-side contextcontrole voor server-side begrenzing van beheerderdata en navigatieacties.
- 13 Berichten, systeemberichten, notificaties en privéberichten voor systeemnotificaties, berichteningang en beheerdercommunicatie.
- 14 Meldingen, tickets en beheerafhandeling voor meldingen die opvolging door beheer vragen.
- 17 Readmodels, tellers, badges, caching en materialisatie voor frontpage-tellers, badges en samengestelde samenvattingen.
- 19 Logging, audit, securitylogging en technische foutafhandeling voor recente beheerwijzigingen en auditbare beheeracties.
- 24 Frontend, Blazor, routing, state en componentopbouw voor dashboardopbouw, laadstates en responsieve frontpagecomponenten.
- 25 Privacy, retentie, anonimisering en gegevensbescherming voor gegevensminimalisatie in beheerderoverzichten.