UC-BEH-FEAT-003 — Systeemnotificaties-overzicht bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-FEAT-003 |
| Naam | Systeemnotificaties-overzicht bekijken |
| Domein | Beheerder / Features en systeemnotificaties |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, beheerlogcomponent |
| Rolcontext | Actieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Site Instellingen > Features > tab Systeemnotificaties |
| Gerelateerde usecases | UC-BEH-FEAT-004, UC-BEH-FEAT-005, UC-BEH-FEAT-006, UC-BEH-FEAT-007, UC-GEN-NOT-001 |
| Primaire entiteiten | SiteNotifications, Users |
| Secundaire entiteiten / events | SiteNotificationHistory |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft het beheerderoverzicht van systeemnotificaties. Systeemnotificaties zijn beheerder-gedreven UI-notificaties die boven een reeds geladen frontpage of rolgerichte startpagina getoond kunnen worden. Zij zijn geen mailbox-systeemberichten en geen popupregister-popups.
De beheerpagina gebruikt binnen de Systeemnotificaties-tab minimaal de tabbladen Actief & gepland, Afgelopen 31 dagen en Alle verlopen. Per notificatie toont het overzicht minimaal titel, type-tag, doelgroep, startmoment, eindmoment of geen einddatum, afgeleide status en laatste wijziging.
De tab Alle verlopen is read-only; vanuit Actief & gepland en Afgelopen 31 dagen kan een geselecteerde notificatie worden bewerkt of hergebruikt via de daarvoor bedoelde usecases.
Uitgangspunten
- Datums worden opgeslagen en verwerkt in UTC en lokaal getoond.
- Actief, gepland, bijna verlopen en verlopen zijn afgeleide beheerstatussen.
- Overlapping tussen notificaties is toegestaan.
- Het overzicht schrijft geen seen-status per gebruiker.
3. Scope
Deze usecase beschrijft:
- Tonen van actief en gepland notificatieoverzicht.
- Tonen van recent verlopen notificaties van de afgelopen 31 dagen.
- Read-only raadpleging van alle verlopen notificaties.
- Afleiden van statuslabels op basis van StartAtUtc en EndAtUtc.
- Afbakening met generieke weergaveusecases voor eindgebruikers.
Deze usecase beschrijft niet:
- Aanmaken van notificaties.
- Wijzigen of uitschakelen van notificaties.
- Tonen van notificaties aan eindgebruikers.
- Server-side seen-log per gebruiker.
- Popupdefinities of mailbox-systeemberichten beheren.
3.1 Afbakening met aangrenzende usecases
| Onderdeel | Afbakening |
|---|---|
| UC-GEN-NOT-001 t/m UC-GEN-NOT-003 | Zijn bronhoudend voor tonen, sluiten en eenmalig verwerken aan gebruikerszijde. |
| UC-BEH-FEAT-004 | Maakt een nieuwe SiteNotification aan. |
| UC-BEH-FEAT-006 | Vult EndAtUtc om een notificatie uit te schakelen. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd in OefenHub. |
| PRE-002 | De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft. |
| PRE-003 | De Site Instellingen-route is beschikbaar via de beheerdernavigatie. |
| PRE-004 | Clientstate, querystringwaarden of zichtbare UI-elementen bepalen niet zelfstandig de autorisatie. |
| PRE-005 | De beheerder heeft de Systeemnotificaties-tab geopend. |
| PRE-006 | SiteNotifications kunnen server-side worden gelezen. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet per tab de juiste set systeemnotificaties. |
| POST-002 | Afgeleide statuslabels zijn berekend op basis van het actuele UTC-moment. |
| POST-003 | Er is geen notificatie aangemaakt, gewijzigd, uitgeschakeld of verwijderd. |
| POST-004 | Alle verlopen is read-only zichtbaar. |
| POST-005 | De beheerder kan vanuit toegestane tabs doorklikken naar beheeracties. |
6. Trigger
De usecase start wanneer de beheerder binnen de Features-pagina de tab Systeemnotificaties opent of tussen de notificatietabs wisselt.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Beheerder | Systeemnotificaties-tab | Opent de tab. | De frontend vraagt het notificatieoverzicht op. | Geen mutatie. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | Alleen beheerders krijgen het overzicht. | Server-side autorisatie. |
| 3 | Backend | Tijdcomponent | Bepaalt actueel UTC-moment. | Alle statussen worden ten opzichte van hetzelfde telmoment afgeleid. | UTC. |
| 4 | Backend | Actief en gepland | Selecteert notificaties met StartAtUtc in toekomst of zichtbare huidige periode. | Einddatum null of toekomst wordt correct meegenomen. | SiteNotifications. |
| 5 | Backend | Afgelopen 31 dagen | Selecteert recent verlopen notificaties. | Alleen records met EndAtUtc binnen 31 dagen worden getoond. | EndAtUtc. |
| 6 | Backend | Alle verlopen | Selecteert verlopen historie. | Deze tab krijgt read-only markering. | Read-only. |
| 7 | Backend | Statusafleiding | Bepaalt actief, gepland, bijna verlopen of verlopen. | Bijna verlopen betekent EndAtUtc minder dan 24 uur in de toekomst. | Afgeleide status. |
| 8 | Frontend | Overzicht | Toont linkerlijst en detailpaneel voor geselecteerde notificatie. | De beheerder ziet titel, type, doelgroep, einddatum en status. | Geen mutatie. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 4 | Geen actieve of geplande notificaties. | De tab toont een lege staat met mogelijkheid om een nieuwe notificatie te maken. | Niet van toepassing. | Geen. |
| ALT-002 | 5 | Geen recent verlopen notificaties. | De tab toont een neutrale lege staat. | Niet van toepassing. | Geen. |
| ALT-003 | 6 | Alle verlopen bevat veel records. | De backend past sortering en paginering of lazy loading toe zonder inhoud te wijzigen. | Niet van toepassing. | Geen. |
| ALT-004 | 7 | EndAtUtc ontbreekt. | De notificatie krijgt geen bijna-verlopenstatus zolang er geen einddatum bestaat. | Niet van toepassing. | Geen. |
| ALT-005 | 8 | Een notificatie is verlopen terwijl de pagina open staat. | Bij verversen of herladen wordt de status opnieuw afgeleid. | Niet van toepassing. | Geen. |
9. Business rules
| ID | Business rule |
|---|---|
| BR-001 | Systeemnotificaties zijn geen SystemMessages en geen PopupDetails. |
| BR-002 | Afgeleide beheerstatussen worden niet als zelfstandige databasewaarheid opgeslagen. |
| BR-003 | Alle datumvergelijkingen gebeuren op basis van UTC. |
| BR-004 | Alle verlopen is read-only; heractivatie gebeurt niet vanuit deze view. |
| BR-005 | Overlappende notificaties zijn toegestaan en worden aan gebruikerszijde aan gebruikerszijde in de vastgelegde volgorde getoond. |
| BR-006 | Er wordt geen server-side gebruikersgebonden gezienlog bijgehouden. |
| BR-007 | Een notificatie zonder EndAtUtc heeft geen geplande einddatum en kan actief blijven zolang StartAtUtc bereikt is. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-001 | AudienceType moet behoren tot Public, Authenticated, Teacher, Student, Guardian of Admin. |
| VAL-002 | NotificationType moet Info of Warning zijn. |
| VAL-003 | DisplayRule moet Always of OncePerBrowser zijn. |
| VAL-004 | StartAtUtc en EndAtUtc worden als UTC behandeld. |
| VAL-005 | Bijna verlopen wordt alleen afgeleid wanneer EndAtUtc bestaat en minder dan 24 uur in de toekomst ligt. |
| VAL-006 | Alle verlopen mag geen actieve mutatieacties tonen. |
11. Datamutaties en events
Niet van toepassing. Deze usecase is een read-only raadpleegflow. Het overzicht wijzigt geen SiteNotifications, schrijft geen SiteNotificationHistory, maakt geen mailbox-systeembericht aan en registreert geen browser- of gebruikersseenstatus.
12. Geen datamutaties
| ID | Geen mutatie | Reden |
|---|---|---|
| NO-001 | SiteNotifications | Geen inhoud, planning, doelgroep of displayregel wordt aangepast. |
| NO-002 | SiteNotificationHistory | Bekijken schrijft geen historyregel. |
| NO-003 | SystemMessages | Er ontstaan geen mailbox-systeemberichten. |
| NO-004 | PopupDetails | Er worden geen popupdefinities aangemaakt of gewijzigd. |
| NO-005 | Browsermarkers | Beheerderraadpleging wijzigt geen OncePerBrowser-marker. |
13. State diagram
Niet van toepassing. De tab toont afgeleide beheerstatussen op basis van StartAtUtc, EndAtUtc en het actuele UTC-moment, maar wijzigt zelf geen persistente notificatiestatus.
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
| Document | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft de drie beheer-tabs en read-only gedrag voor verlopen historie. |
| Technisch Ontwerp | Technisch Ontwerp: communicatie en systeemnotificaties, readmodels en badges en frontendstate beschrijven de technische uitwerking. Vraagt queryfilters op StartAtUtc, EndAtUtc en UTC-statusafleiding. |
| Software Requirements Specification | Levert eisen voor statuslabels, tabs, datumweergave en scheiding van notificatiedomeinen. |
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 |
|---|---|---|
UC-BEH-FEAT-003-REQ-001 | SRS-MSG-001 SRS-ADM-001 SRS-POP-001 SRS-POP-002 AC-MSG-001 AC-ADM-001 AC-POP-001 AC-POP-002 | Systeemnotificaties beheren in een eigen domein gescheiden van popups en systeemberichten |
UC-BEH-FEAT-003-REQ-002 | SRS-ADM-001 AC-ADM-001 | De tabs Actief & gepland, Afgelopen 31 dagen en Alle verlopen ondersteunen |
UC-BEH-FEAT-003-REQ-003 | SRS-RDM-001 SRS-ADM-001 AC-RDM-001 AC-ADM-001 | Statuslabels afleiden uit UTC-start- en eindmomenten |
UC-BEH-FEAT-003-REQ-004 | SRS-ADM-001 AC-ADM-001 | Alle verlopen read-only maken |
UC-BEH-FEAT-003-REQ-005 | SRS-ADM-001 SRS-POP-002 AC-ADM-001 AC-POP-002 | Een notificatie zonder einddatum correct als geen einddatum tonen |
UC-BEH-FEAT-003-REQ-006 | SRS-ADM-001 SRS-NFR-AUD-001 AC-ADM-001 AC-NFR-AUD-001 | Bij raadplegen geen SiteNotificationHistory schrijven |
UC-BEH-FEAT-003-REQ-007 | SRS-ADM-001 AC-ADM-001 | Bijna verlopen uitsluitend tonen wanneer EndAtUtc minder dan 24 uur in de toekomst ligt |