Skip to main content

UC-BEH-FEAT-004 — Systeemnotificatie aanmaken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-FEAT-004
NaamSysteemnotificatie aanmaken
DomeinBeheerder / Features en systeemnotificaties
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, beheerlogcomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenSite Instellingen > Features > Systeemnotificaties > Actief & gepland
Gerelateerde usecasesUC-BEH-FEAT-003, UC-BEH-FEAT-008, UC-GEN-NOT-001
Primaire entiteitenSiteNotifications, SiteNotificationHistory, Users
Secundaire entiteiten / eventsSiteNotificationCreated
Gerelateerde popupsPOP-BEH-NOT-CREATE-CONFIRM, POP-BEH-NOT-SAVED, POP-BEH-NOT-SAVE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder een nieuwe systeemnotificatie aanmaakt. De notificatie krijgt een doelgroep, type, titel, tekst, startmoment, eventueel eindmoment en displayregel.

De nieuwe notificatie wordt opgeslagen in SiteNotifications. De aanmaak en relevante velden worden auditbaar vastgelegd in SiteNotificationHistory of het notificatiegeschiedeniskanaal.

Een nieuwe notificatie kan direct actief zijn wanneer StartAtUtc bereikt is, of gepland wanneer het startmoment in de toekomst ligt.

Uitgangspunten

  • Start- en eindmomenten worden door de backend in UTC opgeslagen.
  • De UI toont lokale datum/tijd maar stuurt of converteert veilig naar UTC.
  • Eenmalige weergave wordt niet server-side per gebruiker geregistreerd.
  • Overlapping met bestaande notificaties is toegestaan.

3. Scope

Deze usecase beschrijft:

  • Invoeren van type, doelgroep, titel, tekst, planning en weergaveregel.
  • Valideren van toegestane enumwaarden en lengtegrenzen.
  • Opslaan van een nieuw SiteNotifications-record.
  • Vastleggen van aanmaakhistorie.
  • Terugkeren naar het overzicht met de nieuwe notificatie zichtbaar in de juiste tab.

Deze usecase beschrijft niet:

  • Nieuwe NotificationType-, AudienceType- of DisplayRule-waarden definiëren.
  • Eindgebruikersweergave van de notificatie.
  • Mailbox-systeemberichten versturen.
  • Popupdefinities aanmaken.
  • Bestaande notificaties wijzigen of heractiveren.

3.1 Afbakening met aangrenzende usecases

OnderdeelAfbakening
UC-BEH-FEAT-003Toont de aangemaakte notificatie in de juiste tab.
UC-BEH-FEAT-008Beschrijft de betekenis van DisplayRule voor beheer en gebruikersweergave.
UC-GEN-NOT-001Toont relevante actieve notificaties aan gebruikers.

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 Site Instellingen-route is beschikbaar via de beheerdernavigatie.
PRE-004Clientstate, querystringwaarden of zichtbare UI-elementen bepalen niet zelfstandig de autorisatie.
PRE-005De beheerder bevindt zich in de Systeemnotificaties-tab.
PRE-006De centrale sleutelsets voor AudienceType, NotificationType en DisplayRule zijn beschikbaar.

5. Post-condities

IDResultaat
POST-001Er bestaat een nieuw SiteNotifications-record wanneer alle validaties slagen.
POST-002CreatedAtUtc, CreatedByUserId, UpdatedAtUtc en eventueel UpdatedByUserId zijn gevuld volgens de mutatieregels.
POST-003De aanmaak is auditbaar vastgelegd.
POST-004De notificatie wordt in Actief & gepland of na het verstrijken van de einddatum als verlopen getoond afhankelijk van planning.
POST-005Er is geen gebruikersgerichte seen-status aangemaakt.

6. Trigger

De usecase start wanneer de beheerder kiest voor het aanmaken van een nieuwe systeemnotificatie en het formulier bevestigt.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderSysteemnotificaties-tabKiest Nieuwe systeemnotificatie.De frontend opent een invoerweergave met toegestane velden.Geen vrije enumwaarden.
2BeheerderFormulierVult doelgroep, type, titel, tekst, start, optionele einddatum en weergaveregel in.De frontend voert basisvalidatie uit.Title max 50, BodyText max 1000.
3BeheerderBevestigingBevestigt het aanmaken.De frontend toont bevestigingspopup.POP-BEH-NOT-CREATE-CONFIRM.
4BackendAutorisatiecomponentControleert beheerdercontext opnieuw.Alleen actieve beheerders mogen opslaan.Server-side autorisatie.
5BackendValidatieValideert AudienceType, NotificationType, DisplayRule en datums.Ongeldige waarden worden geweigerd.Centrale sleutelsets.
6BackendDatabase-transactieMaakt SiteNotifications-record aan.CreatedAtUtc en CreatedByUserId worden gevuld.UTC.
7BackendHistorieLegt aanmaak en velden vast.De beheeractie is achteraf reconstrueerbaar.SiteNotificationHistory.
8FrontendOverzichtVerverst de tab en selecteert de nieuwe notificatie.De beheerder ziet status actief of gepland.POP-BEH-NOT-SAVED.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Titel of tekst overschrijdt maximumlengte.Opslaan wordt geblokkeerd met veldvalidatie.Inline fout of POP-BEH-NOT-SAVE-FAILED.Geen.
ALT-0025EndAtUtc ligt vóór StartAtUtc.De backend weigert opslag.POP-BEH-NOT-SAVE-FAILED.Geen.
ALT-0035AudienceType is niet toegestaan.De backend weigert opslag en toont veilige validatiefout.POP-BEH-NOT-SAVE-FAILED.Geen.
ALT-0045DisplayRule is OncePerBrowser.De notificatie wordt normaal opgeslagen; browsermarkers ontstaan pas aan gebruikerszijde bij tonen.Niet van toepassing.SiteNotifications.
ALT-0056Opslaan of history schrijven faalt.De transactie wordt teruggedraaid.POP-BEH-NOT-SAVE-FAILED.Geen gedeeltelijke mutatie.
ALT-0068StartAtUtc ligt in de toekomst.De notificatie verschijnt als gepland en wordt nog niet aan gebruikers getoond.Niet van toepassing.Geen extra mutatie.

9. Business rules

IDBusiness rule
BR-001Een systeemnotificatie is een eigen beheerdomein en geen popup of mailboxbericht.
BR-002AudienceType, NotificationType en DisplayRule zijn gesloten sleutelsets.
BR-003Title is maximaal 50 tekens en BodyText maximaal 1000 tekens.
BR-004StartAtUtc is verplicht; EndAtUtc mag leeg zijn.
BR-005Datums worden opgeslagen en vergeleken in UTC.
BR-006Overlapping met andere notificaties is toegestaan.
BR-007Een nieuwe versie van belangrijke informatie moet als nieuwe notificatie worden aangemaakt wanneer OncePerBrowser-markers opnieuw tonen zouden blokkeren.

10. Datavalidatie

IDValidatie
VAL-001AudienceType moet Public, Authenticated, Teacher, Student, Guardian of Admin zijn.
VAL-002NotificationType moet Info of Warning zijn.
VAL-003DisplayRule moet Always of OncePerBrowser zijn.
VAL-004Title is verplicht en maximaal 50 tekens.
VAL-005BodyText is verplicht en maximaal 1000 tekens.
VAL-006EndAtUtc mag alleen gevuld zijn wanneer het na StartAtUtc ligt.
VAL-007Lokale UI-tijd moet betrouwbaar naar UTC worden geconverteerd.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001SiteNotifications insertNieuw record met doelgroep, type, titel, tekst, start, einddatum en displayregel.
MUT-002SiteNotificationHistory insertAanmaak en relevante veldwaarden worden vastgelegd.
MUT-003SiteNotificationCreated eventInterne eventregistratie voor audit en eventuele cacheverversing.

12. Geen datamutaties

IDGeen mutatieReden
NO-001SystemMessagesEr wordt geen mailbox-systeembericht aangemaakt.
NO-002PopupDetailsEr wordt geen popupdefinitie aangemaakt.
NO-003GebruikersseenstatusEr wordt geen server-side per-gebruiker-seenrecord aangemaakt.
NO-004BrowsermarkersMarkers ontstaan niet in beheer maar pas in gebruikersbrowser bij tonen.
NO-005Bestaande notificatiesBestaande records worden niet aangepast door aanmaak.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Deze usecase verwijst uitsluitend naar PopupKey. Popupteksten, knopteksten, inputlabels en themakeuzes blijven bronhoudend in het popupregister en popup-themes.

PopupKeyGebruik
POP-BEH-NOT-CREATE-CONFIRMBevestigt publicatie of planning van een nieuwe systeemnotificatie.
POP-BEH-NOT-SAVEDTerugkoppeling na succesvolle aanmaak.
POP-BEH-NOT-SAVE-FAILEDVeilige foutmelding bij validatie- of opslagfout.

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

DocumentAfleiding
Functioneel OntwerpBeschrijft beheervelden en tabs voor systeemnotificaties.
Technisch OntwerpTechnisch Ontwerp: communicatie en systeemnotificaties, readmodels en badges en frontendstate beschrijven de technische uitwerking. Vraagt UTC-conversie, enumvalidatie en transactionele history.
Software Requirements SpecificationLevert eisen voor aanmaken, validatiegrenzen, doelgroep en displayregel.

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-FEAT-004-REQ-001SRS-ADM-001
SRS-POP-002
AC-ADM-001
AC-POP-002
Beheerders nieuwe systeemnotificaties kunnen laten aanmaken
UC-BEH-FEAT-004-REQ-002SRS-ADM-001
SRS-POP-002
AC-ADM-001
AC-POP-002
AudienceType, NotificationType en DisplayRule beperken tot de bekende sleutelsets
UC-BEH-FEAT-004-REQ-003SRS-ADM-001
SRS-NFR-PER-001
AC-ADM-001
AC-NFR-PER-001
Title en BodyText verplicht en begrensd valideren
UC-BEH-FEAT-004-REQ-004SRS-ADM-001
AC-ADM-001
StartAtUtc verplicht opslaan in UTC
UC-BEH-FEAT-004-REQ-005SRS-ADM-001
AC-ADM-001
EndAtUtc leeg kunnen laten en, wanneer gevuld, alleen toestaan na StartAtUtc
UC-BEH-FEAT-004-REQ-006SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
Aanmaak auditbaar vastleggen
UC-BEH-FEAT-004-REQ-007SRS-AUTH-001
SRS-ADM-001
SRS-POP-001
AC-AUTH-001
AC-ADM-001
AC-POP-001
Bij aanmaak geen SystemMessage, PopupDetails of server-side seenrecord creëren