Deze map bevat de usecases voor het domein Generiek binnen OefenHub. Het domein beschrijft roloverschrijdende en applicatiebrede processen die door meerdere rolcontexten gebruikt kunnen worden, zoals accounttoegang, profielbeheer, relatiebeheer, berichten, meldingen en systeemnotificaties.
Generieke usecases zijn procesgericht. De schermdocumentatie blijft de bron voor exacte UI-opbouw, labels, knoppen, iconen, tekstuele microcopy en responsive gedrag. Deze usecases beschrijven vooral gedrag, autorisatie, server-side controles, beslismomenten, datamutaties, events, audit, readmodels en de samenhang met rolgerichte domeinen zoals leerling, docent, ouder/voogd en beheerder.
Subdomeinen
| Subdomein | Omschrijving |
|---|
| Accounttoegang en account lifecycle | Beschrijft eerste login, provisioning, sessieverwerking, onvolledige accountcontext, accountverwijdering, anonimisering en uitloggen. |
| Berichten | Beschrijft het gecombineerde berichtenoverzicht, systeemberichten, privéberichten, threads, antwoorden en participantgebonden verwijderen. |
| Meldingen | Beschrijft het meldingenproces voor gebruikers en beheerders, inclusief indienen, behandelen, reageren, sluiten, oplossen, heropenen en doorzetten. |
| Profiel, toegankelijkheid en voorkeuren | Beschrijft profielgegevens, verplicht niveau, profielfoto, toegankelijkheidsinstellingen en overige voorkeuren. |
| Relaties | Beschrijft relatiebeheer, uitnodigen, accepteren, afwijzen en ontkoppelen van gebruikersrelaties. |
| Systeemnotificaties | Beschrijft applicatiebrede notificaties die boven de geladen frontpage of contextpagina worden getoond. |
Usecase-overzicht
Accounttoegang en account lifecycle
| Usecase | Naam | Korte beschrijving |
|---|
| UC-GEN-ACC-001 | Eerste login en account provisioning | Maakt na succesvolle externe authenticatie een intern OefenHub-account aan wanneer dit nog niet bestaat. |
| UC-GEN-ACC-002 | Inloggen en sessie verwerken | Verwerkt een succesvolle identity-providerlogin tot een geldige OefenHub-sessiecontext. |
| UC-GEN-ACC-003 | Geen rol of onvolledig account afhandelen | Handelt situaties af waarin een gebruiker wel geauthenticeerd is, maar geen bruikbare applicatiecontext heeft. |
| UC-GEN-ACC-004 | Account verwijderen aanvragen | Laat een gebruiker verwijdering van het eigen OefenHub-account aanvragen en bevestigen. |
| UC-GEN-ACC-005 | Account anonimiseren en afhankelijke toegang opruimen | Voert de interne anonimiseer- en opruimflow uit na accountverwijdering. |
| UC-GEN-ACC-006 | Uitloggen en sessie beëindigen | Beëindigt de lokale OefenHub-applicatiecontext en handelt routeguard- en realtime-effecten veilig af. |
Berichten
| Usecase | Naam | Korte beschrijving |
|---|
| UC-GEN-MSG-001 | Berichtenoverzicht bekijken | Toont systeemberichten en privéberichtthreads in één mailboxweergave. |
| UC-GEN-MSG-002 | Privébericht opstellen en verzenden | Laat een gebruiker een privébericht sturen binnen toegestane relatie- of systeemcontext. |
| UC-GEN-MSG-003 | Bericht openen | Opent een systeembericht of privébericht en werkt waar nodig de leesstatus bij. |
| UC-GEN-MSG-004 | Bericht beantwoorden | Verwerkt een antwoord binnen een bestaande privéberichtthread. |
| UC-GEN-MSG-005 | Privéberichtthread verwijderen | Verwijdert een privéthread participantgebonden uit de eigen mailboxweergave. |
Meldingen
| Usecase | Naam | Korte beschrijving |
|---|
| UC-GEN-TIC-001 | Melding indienen | Laat een gebruiker een melding aanmaken met categorie, onderwerp, beschrijving en technische context. |
| UC-GEN-TIC-002 | Mijn meldingen bekijken | Toont de eigen meldingen van de gebruiker in de gebruikersweergave. |
| UC-GEN-TIC-003 | Melding details bekijken | Toont de detailweergave van een melding voor de melder. |
| UC-GEN-TIC-004 | Reageren op melding | Laat de melder een externe reactie toevoegen binnen een open melding. |
| UC-GEN-TIC-005 | Eigen melding sluiten | Laat de melder een eigen melding sluiten met verplichte reden. |
| UC-GEN-TIC-006 | Oplossing accepteren | Laat de melder een aangeboden oplossing accepteren en de melding gebruikersgericht sluiten. |
| UC-GEN-TIC-007 | Melding heropenen door gebruiker | Laat de melder een opgeloste melding binnen de heropentermijn heropenen. |
| UC-GEN-TIC-008 | Beheerdersoverzicht meldingen bekijken | Toont het beheerderoverzicht met filters, zoekfunctie en meldingenlijst. |
| UC-GEN-TIC-009 | Melding openen als beheerder | Opent de beheerderdetailweergave van een melding. |
| UC-GEN-TIC-010 | Beheerder koppelen of ontkoppelen | Beheert actieve beheerderkoppelingen bij een melding. |
| UC-GEN-TIC-011 | Extern bericht plaatsen | Laat een beheerder een extern bericht plaatsen dat zichtbaar is voor de melder. |
| UC-GEN-TIC-012 | Intern bericht plaatsen | Laat een beheerder een intern bericht plaatsen dat alleen voor beheerders zichtbaar is. |
| UC-GEN-TIC-013 | Melding oplossen of sluiten | Laat beheer een melding formeel oplossen of sluiten met afsluitstatus. |
| UC-GEN-TIC-014 | Melding heropenen door beheerder | Laat beheer een gesloten melding handmatig heropenen en actieve beheerders ontkoppelen. |
| UC-GEN-TIC-015 | Melding doorzetten naar docent | Zet een melding als samengestelde beheerflow door naar een docent. |
Profiel, toegankelijkheid en voorkeuren
| Usecase | Naam | Korte beschrijving |
|---|
| UC-GEN-PROF-001 | Profiel bekijken | Toont de eigen OefenHub-profielgegevens van de ingelogde gebruiker. |
| UC-GEN-PROF-002 | Profielgegevens wijzigen | Wijzigt toegestane OefenHub-profielvelden. |
| UC-GEN-PROF-003 | Verplicht niveau instellen | Laat een gebruiker een verplicht niveau kiezen wanneer de context dat vereist. |
| UC-GEN-PROF-004 | Profielfoto kiezen | Laat een gebruiker een avatar kiezen uit vooraf gedefinieerde profielafbeeldingen. |
| UC-GEN-PROF-005 | Toegankelijkheidsinstellingen beheren | Beheert toegankelijkheidsinstellingen zoals contrast, lettertype en lettergrootte. |
| UC-GEN-PROF-006 | Toegankelijkheid vóór en na login synchroniseren | Synchroniseert browserwaarde en profielinstellingen volgens de centrale toegankelijkheidsregels. |
| UC-GEN-PROF-007 | Voorkeuren beheren | Beheert gebruikersvoorkeuren die presentatiegedrag beïnvloeden. |
Relaties
| Usecase | Naam | Korte beschrijving |
|---|
| UC-GEN-REL-001 | Relaties bekijken | Toont actieve relaties en openstaande verstuurde uitnodigingen binnen de actieve rolcontext. |
| UC-GEN-REL-002 | Vriend uitnodigen | Laat een leerling een vriendschapsuitnodiging sturen. |
| UC-GEN-REL-003 | Ouder/voogd uitnodigen | Laat een leerling of ouder/voogd een ouder-/voogdrelatie initiëren. |
| UC-GEN-REL-004 | Relatie ontkoppelen | Beëindigt een actieve relatie via soft-deactivation. |
| UC-GEN-REL-005 | Relatie-uitnodiging accepteren of afwijzen | Verwerkt een inkomende relatie-uitnodiging via systeemberichtcontext. |
Systeemnotificaties
| Usecase | Naam | Korte beschrijving |
|---|
| UC-GEN-NOT-001 | Systeemnotificatie tonen | Toont een actieve systeemnotificatie na het normaal laden van de frontpage of contextpagina. |
| UC-GEN-NOT-002 | Systeemnotificatie sluiten | Sluit de actuele systeemnotificatie en controleert op een volgende actieve notificatie. |
| UC-GEN-NOT-003 | Eenmalige systeemnotificatie verwerken | Verwerkt een OncePerBrowser-notificatie via browserwaarde zonder server-side seen-tabel. |
Relevante schermdocumentatie en contexten
| Scherm / context | Relevantie |
|---|
| Publieke pagina / loginroute | Startpunt voor authenticatie en accounttoegang. |
| Identity-providerflow | Bronhouder voor authenticatie, credentials, wachtwoord-reset, e-mailverificatie en primaire sessie. |
| Geauthenticeerde frontpage | Doel na succesvolle sessieverwerking en contextbepaling. |
| Profielmenu | Route naar profiel, toegankelijkheid, voorkeuren, berichten, meldingen en relaties. |
| Berichtenoverzicht | Centrale mailboxweergave voor systeemberichten en privéberichten. |
| Meldingen / Mijn meldingen | Gebruikersroute voor meldingen en opvolging. |
| Beheerdersoverzicht meldingen | Beheerdersroute voor meldingbehandeling. |
| Relaties | Centrale route voor actieve relaties en verstuurde uitnodigingen. |
| Systeemnotificatiecomponent | Toont applicatiebrede notificaties boven een reeds geladen pagina. |
| Ontwerpbronnen — Autorisatiematrix | Centrale bron voor toegestane acties per rolcontext en object. |
| Ontwerpbronnen — Business rules | Centrale bron voor applicatiebrede regels. |
| Ontwerpbronnen — Popup-register | Centrale bron voor popupkeys, popupteksten, knopacties en inputvelden. |
Domeinafbakening
| Onderwerp | Afbakening |
|---|
| Generiek domein | Bevat applicatiebrede of roloverschrijdende processen. |
| Rolspecifieke uitvoering | Leerling-, docent-, ouder/voogd- en beheerderusecases mogen generieke processen gebruiken, maar dupliceren deze niet bronhoudend. |
| Accounttoegang | OefenHub verwerkt de applicatiecontext na externe authenticatie; credentials blijven bij de identity provider. |
| Profiel | Beheert OefenHub-profielgegevens, niveaukeuze, profielfoto, toegankelijkheid en voorkeuren. |
| Relaties | Beheert relatievorming, uitnodigingen en ontkoppeling tussen gebruikers. |
| Berichten | Beheert mailboxweergave, systeemberichten, privéberichten en threadgedrag. |
| Meldingen | Beheert het ticket-/meldingenproces voor gebruikers en beheerders. |
| Systeemnotificaties | Beheert applicatiebrede notificatie-overlaylogica en is geen mailboxbericht of popupregister-popup. |
| Schermdetails | Exacte layout, labels, visuele componenten en microcopy staan in schermdocumentatie of centrale registers. |
| Centrale registers | Popupinhoud, commands, events, business rules en autorisatieregels blijven centraal bronhoudend. |
Rolcontext en autorisatie
| Context | Betekenis | Belangrijkste begrenzing |
|---|
| Niet ingelogd | Gebruiker heeft geen OefenHub-sessiecontext. | Alleen publieke routes en identity-providerstart zijn beschikbaar. |
| Geauthenticeerd zonder bruikbare context | Gebruiker is extern geauthenticeerd, maar mist rol, instelling of noodzakelijke applicatiecontext. | OefenHub leidt naar een veilige vervolgflow of blokkeert rolgebonden routes. |
| Leerling | Gebruiker handelt vanuit leerlingcontext. | Leerlingrol is niet combineerbaar met ouder/voogd, docent of beheerder. |
| Ouder/voogd | Gebruiker handelt vanuit ouder-/voogdcontext. | Ziet alleen gegevens van gekoppelde kinderen volgens relatie- en autorisatieregels. |
| Docent | Gebruiker handelt vanuit docentcontext. | Ziet en wijzigt alleen gegevens binnen eigen docentcontext, relaties en niveau-autorisaties. |
| Beheerder | Gebruiker handelt vanuit beheercontext. | Heeft beheerrechten volgens autorisatiematrix en blijft gebonden aan audit- en procesregels. |
| Gecombineerde niet-leerlingrollen | Gebruiker heeft meerdere niet-leerlingrollen. | Frontpage- en routecontext worden server-side bepaald volgens vaste prioriteit en rechten. |
Bijzondere regels
| Onderwerp | Regel |
|---|
| Server-side autorisatie | Frontend-zichtbaarheid, routeparameters en clientstate zijn nooit voldoende autorisatie. |
| Rolcontext | Usecases benoemen waar gedrag afhankelijk is van de actieve rolcontext. |
| Header/footer | Alleen opnemen wanneer de usecase daar functioneel op ingrijpt, zoals berichtentellers of meldingsindicatoren. |
| Popups | Usecases verwijzen alleen naar PopupKey; teksten, knoppen, inputvelden en themes blijven centraal. |
| Systeemberichten | Systeemberichten zijn mailboxitems en blijven gescheiden van systeemnotificaties en popupregister-popups. |
| Systeemnotificaties | Worden pas na normaal laden van frontpage of contextpagina gecontroleerd en getoond. |
| Accountstatus | Een geldige identity-providerlogin is niet automatisch voldoende voor OefenHub-toegang. |
| Profielmutaties | Wijzigen geen rollen, relaties, autorisaties, berichten, meldingen of oefenresultaten. |
| Relatie-uitnodigingen | Inkomende uitnodigingen lopen via systeemberichten en acceptatie/afwijzing blijft onderdeel van relatiebeheer. |
| Meldingen | Meldingen zijn geen privéberichten en privéberichten zijn geen meldingen. |
| Readmodels | Tellers, filters, badges en overzichtswaarden zijn afgeleide waarden tenzij expliciet anders gemodelleerd. |
| Audit | Domeinmutaties moeten herleidbaar zijn volgens de betreffende ontwerpbron of database-informatie. |
| DRY | Generieke regels worden niet opnieuw bronhoudend uitgewerkt in rolgerichte domeinen. |
Samenhang met rolgerichte domeinen
| Domein | Samenhang |
|---|
| Leerling | Gebruikt generieke account-, profiel-, relatie-, berichten- en notificatieflows voor toegang, voorkeuren, relaties, gedeelde oefeningen en systeemcommunicatie. |
| Docent | Gebruikt generieke account-, relatie-, berichten- en profielcontext voor docenttoegang, leerlingen, collaborators, autorisaties en systeemcommunicatie. |
| Ouder/voogd | Gebruikt generieke relatie-, profiel-, berichten- en accountflows voor gekoppelde kinderen en rolcontext. |
| Beheerder | Gebruikt generieke account- en meldingenflows, maar heeft aanvullende beheerprocessen voor content, configuratie, accounts en ondersteuning. |
| Oefenmodules | Gebruiken generieke profiel- en toegankelijkheidsinstellingen waar relevant, maar blijven functioneel gescheiden van account- en berichtendomeinen. |
| Ontwerpbronnen | Business rules, autorisatiematrix, domeinobjecten, statusmodellen, commands, events en popupregisters blijven centrale bronhouders. |
Generieke usecases dupliceren geen popupteksten of knopteksten. Popupinhoud wordt centraal beheerd in het popup-register en popup-themes. Usecases verwijzen alleen naar de benodigde PopupKey, of leggen expliciet vast dat een flow geen popupregister-popup gebruikt.
| Subdomein | Popupgebruik |
|---|
| Accounttoegang en account lifecycle | Login- en sessiefouten gebruiken meestal identity-provider-, routeguard- of toegang-geweigerdafhandeling; accountverwijdering gebruikt wel bevestigingspopups. |
| Berichten | Gebruikt popupkeys voor blokkades, verzendfouten, niet-beschikbaarafhandeling en verwijderen. |
| Meldingen | Gebruikt popupkeys voor melding aanmaken, sluiten, heropenen, oplossen, ontkoppelen en doorzetten waar relevant. |
| Profiel, toegankelijkheid en voorkeuren | Gebruikt popupkeys of componentafhandeling bij verplichte niveaukeuze, wijzigingen en waarschuwingen. |
| Relaties | Gebruikt popupkeys voor uitnodigen, afwijzen, ontkoppelen, blokkades en foutafhandeling. |
| Systeemnotificaties | Gebruikt geen popupregister-popups; systeemnotificaties hebben een eigen component en lifecycle. |
Diagramgebruik binnen generieke usecases
| Diagramtype | Gebruik |
|---|
| Sequence diagram | Voor interacties tussen gebruiker, frontend, backend, database, identity provider, berichtenservice, notificatiecomponent, scheduler, mailservice of externe services. |
| Decision flow | Voor autorisatiepaden, routekeuzes, validatiepaden, statusafleidingen en blokkades. |
| Data lifecycle | Voor belangrijke datamutaties of expliciet wel/niet aangemaakte entiteiten. |
| State diagram | Alleen bij echte statusobjecten zoals relatie-uitnodigingen, tickets of lifecycleobjecten. |
| UI-flowdiagram | Alleen wanneer meerdere schermen, tabs of modals anders lastig te volgen zijn. |
| ERD | Niet in usecases; hoort in database-informatie of domeinobjecten. |