Skip to main content

Relaties

Deze map bevat de generieke usecases voor relaties en relatie-uitnodigingen binnen OefenHub. Relaties bepalen welke gebruikers elkaar mogen benaderen, welke gegevens zichtbaar zijn en welke vervolgacties beschikbaar zijn, zoals berichten sturen, oefeningen delen, ouder-/voogdinzage en leerlingbegeleiding.

De usecases in deze map zijn procesgericht. De schermdocumentatie van SCH-GEN-08 — Relaties blijft de bron voor de exacte UI-opbouw, labels, kaarten, acties en waardelagen. Deze usecases beschrijven vooral het gedrag achter de schermen: welke relatiecontext geldt, welke controles server-side plaatsvinden, welke statussen ontstaan en welke vervolgprocessen worden gestart.

Usecases

UsecaseOmschrijving
UC-GEN-REL-001 — Relaties bekijkenBekijken van actieve relaties, openstaande verstuurde uitnodigingen, lege staten, details en vervolgacties.
UC-GEN-REL-002 — Vriend uitnodigenVersturen van een vrienduitnodiging vanuit leerlingcontext naar een bestaande leerling of onbekend e-mailadres.
UC-GEN-REL-003 — Ouder/voogd uitnodigenVersturen van een ouder-/voogduitnodiging vanuit leerlingcontext naar een bestaande of nog niet geregistreerde ouder/voogd.
UC-GEN-REL-004 — Relatie ontkoppelenOntkoppelen of aanvragen van ontkoppeling van een bestaande relatie, altijd via bevestigingsmodal.
UC-GEN-REL-005 — Relatie-uitnodiging accepteren of afwijzenVerwerken van inkomende uitnodigingen via systeembericht, inclusief acceptatie, afwijzing, verlopen uitnodigingen en rolcontextcontrole.

Relevante schermdocumentatie

Scherm / contextRelevantie
SCH-GEN-08 — RelatiesPrimaire pagina voor relatieoverzicht, actieve relaties, openstaande verstuurde uitnodigingen en relatieacties.
SCH-GEN-02 — Berichten overzichtInkomende relatie-uitnodigingen worden via systeemberichten of notificatiecontext aangeboden.
RegistratieflowNodig voor uitnodigingen naar een onbekend e-mailadres, waarbij de uitnodiging pas aan een UserId gekoppeld kan worden na registratie.
Ontwerpbronnen — Popup-registerCentrale bron voor popupkeys, popupteksten, knopacties en inputvelden.
Ontwerpbronnen — Popup-themesCentrale bron voor popupvarianten, themes en importdefaults.

Domeinafbakening

OnderwerpAfbakening
Actieve relatiesWorden vastgelegd in UserRelationships en bepalen zichtbaarheid en toegestane vervolgacties.
Relatie-uitnodigingenWorden vastgelegd in RelationshipInvitations en leiden pas na acceptatie tot een actieve relatie.
RelatiehistorieWordt vastgelegd via RelationshipEvents of een gelijkwaardige audit-/historybron.
SysteemberichtenWorden gebruikt om ontvangen uitnodigingen, acceptaties en afwijzingen aan gebruikers te tonen.
PrivéberichtenZijn een gevolg van bestaande relaties, maar worden inhoudelijk uitgewerkt in de berichten-usecases.
Oefenruns en resultatenKunnen zichtbaar worden via ouder-/voogdrelaties, maar worden inhoudelijk uitgewerkt in leerling-, ouder-/voogd- en oefenrun-usecases.

Relatietypen en rolrichting

Relatie / uitnodigingInitiërende rolDoelrolHoofdentiteitOpmerking
Vriend uitnodigenLeerlingLeerlingRelationshipInvitationsLeidt pas na acceptatie tot een actieve vriendschap.
Ouder/voogd uitnodigenLeerlingGuardianRelationshipInvitationsGuardian is de technische/backendwaarde voor ouder/voogd.
Actieve vriendschapLeerlingLeerlingUserRelationshipsOntstaat pas na acceptatie.
Actieve ouder-/voogdrelatieLeerlingGuardianUserRelationshipsBepaalt ouder-/voogdinzage en eventuele live meekijkmogelijkheden.

Bijzondere regels

OnderwerpRegel
Server-side controleFrontend-zichtbaarheid van knoppen of relatiekaarten is nooit voldoende autorisatie. Elke actie wordt server-side gecontroleerd op actor, rolcontext, relatietype en relatie-/uitnodigingsstatus.
Openklapbare detailsRelatiekaarten moeten details zoals Actief sinds kunnen tonen wanneer die voor het relatietype beschikbaar zijn.
Openstaande uitnodigingenDe relatiepagina toont openstaande verstuurde uitnodigingen. Inkomende uitnodigingen worden via systeemberichten aangeboden.
Uitnodiging onbekend e-mailadresWanneer het e-mailadres nog niet bekend is, wordt de gebruiker geïnformeerd en kan een OefenHub-registratie-uitnodiging worden verstuurd.
Registratie binnen termijnBij registratie binnen 7 dagen kan de oorspronkelijke relatie-uitnodiging worden gekoppeld aan het nieuwe account.
Geen directe relatieEen uitnodiging maakt nooit direct een actieve relatie aan. De relatie ontstaat pas na acceptatie.
DuplicaatcontroleActieve identieke relaties, identieke openstaande uitnodigingen en kruislings conflicterende uitnodigingen worden geblokkeerd.
OntkoppelenElke ontkoppelactie opent altijd een bevestigingsmodal met de vraag of de gebruiker zeker weet dat de relatie ontkoppeld moet worden.
OntkoppelverzoekWanneer een relatie niet direct door de gebruiker zelf beëindigd mag worden, start de actie een ontkoppelverzoek of vervolgflow in plaats van directe deactivatie.
Afgehandelde uitnodigingenGeaccepteerde, afgewezen of verlopen uitnodigingen verdwijnen uit openstaande lijsten. Historie blijft via audit/history beschikbaar.
PopupsUsecases verwijzen alleen naar PopupKey. Titel, tekst, knoppen, inputvelden en theme staan centraal in het popup-register en popup-themes.

Diagramgebruik binnen relatie-usecases

De relatie-usecases gebruiken diagrammen alleen wanneer zij het proces duidelijker maken.

DiagramtypeGebruik
Sequence diagramVoor interacties tussen gebruiker, frontend, backend, database, systeemberichten en externe mail.
State diagramVoor statusobjecten zoals RelationshipInvitations en actieve/inactieve relaties.
Decision flowVoor validatievolgorde, blokkades en alternatieve routes.
Data lifecycleVoor inzicht in welke entiteiten wel en niet ontstaan tijdens een proces.