Skip to main content

UC-GEN-REL-001 — Relaties bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-GEN-REL-001
NaamRelaties bekijken
DomeinRelaties
Primaire actorIngelogde gebruiker
Secundaire actor(en)Gerelateerde gebruikers binnen zichtbare relatietypen
RolcontextActieve gebruiker met één of meer rolcontexten; zichtbaarheid wordt per relatie- en rolcontext server-side bepaald
Betrokken schermenSCH-GEN-08 — Relaties
Gerelateerde usecasesUC-GEN-REL-002 — Vriend uitnodigen, UC-GEN-REL-003 — Ouder/voogd uitnodigen, UC-GEN-REL-004 — Relatie ontkoppelen, UC-GEN-REL-005 — Relatie-uitnodiging accepteren of afwijzen
Primaire entiteitenUserRelationships, RelationshipTypes, RelationshipInvitations, Users, Roles
Secundaire entiteiten / eventsRelationshipEvents, SystemMessages, gedeelde-oefeningenreadmodel, docentniveau-autorisatiereadmodel
Gerelateerde popupsGeen popup in de primaire leesflow; vervolgacties verwijzen naar onder meer POP-GEN-REL-INVITE-FRIEND, POP-GEN-REL-INVITE-GUARDIAN, POP-GEN-REL-DISCONNECT-CONFIRM
PopupregisterOntwerpbronnen — Popup-register
MoSCoWShould have

2. Omschrijving

De gebruiker opent de pagina Relaties om bestaande relaties en door de gebruiker verstuurde openstaande uitnodigingen te bekijken. Het systeem toont relatieblokken op basis van de actuele gebruiker, rolcontexten, actieve relaties, actieve relatietypen en beschikbare relatieacties.

Deze usecase is primair een lees- en oriëntatieflow. De gebruiker kan vanuit de pagina vervolgacties starten, zoals een vriend uitnodigen, een ouder/voogd uitnodigen, een relatie ontkoppelen of een bericht sturen. De uitvoering van die vervolgacties valt onder aparte usecases; deze leesflow voert die acties niet zelf uit.

3. Scope

Deze usecase beschrijft:

  • het openen van de relatiepagina vanuit de profielcontext;
  • het laden van samenvattingsaantallen;
  • het tonen van actieve relaties per zichtbaar relatietype;
  • het tonen van door de gebruiker verstuurde openstaande uitnodigingen;
  • het open- en dichtklappen van relatiedetails;
  • rolafhankelijke zichtbaarheid van secties en acties;
  • lege staten, foutstaten en disabled states;
  • de verwijzing naar vervolgacties zonder die vervolgacties opnieuw uit te werken.

Deze usecase beschrijft niet:

  • het aanmaken van een vrienduitnodiging;
  • het aanmaken van een ouder-/voogduitnodiging;
  • het accepteren of afwijzen van een inkomende uitnodiging;
  • het daadwerkelijk ontkoppelen of aanvragen van ontkoppeling;
  • het versturen van privéberichten;
  • het herinneren of intrekken van openstaande uitnodigingen als volledige muterende flow.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd.
PRE-002De gebruiker opent de pagina Relaties vanuit de profielcontext of via een functioneel gelijkwaardige route.
PRE-003Het systeem kan de actieve gebruiker en diens rolcontexten bepalen.
PRE-004Het systeem kan relatietypen, actieve relaties en openstaande door de gebruiker verstuurde uitnodigingen ophalen.

5. Post-condities

IDResultaat
POST-001De gebruiker ziet uitsluitend relaties en openstaande uitnodigingen die bij de eigen gebruiker en toegestane rolcontexten horen.
POST-002De samenvattingsaantallen zijn afgeleid uit de actuele relatie- en uitnodigingsdata.
POST-003Actieve relaties worden per zichtbaar relatietype getoond.
POST-004Door de gebruiker verstuurde openstaande uitnodigingen worden getoond zolang zij Pending en zichtbaar zijn.
POST-005Inkomende relatie-uitnodigingen worden niet als aparte inkomende lijst op deze pagina getoond; zij worden via systeemberichten aangeboden.
POST-006Het bekijken van de pagina veroorzaakt geen mutatie in UserRelationships, RelationshipInvitations of RelationshipEvents.

6. Trigger

De gebruiker opent het profielmenu en kiest Relaties, of komt via een functioneel gelijkwaardige navigatie op de relatiepagina.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1GebruikerProfielcontextKiest Relaties.Het systeem opent SCH-GEN-08 — Relaties.Alleen ingelogde gebruikers mogen de pagina openen.
2SysteemBackendBepaalt de actuele gebruiker en beschikbare rolcontexten.Het systeem stelt vast welke relatietypen en secties relevant kunnen zijn.Server-side contextbepaling; frontendnavigatie is geen autorisatie.
3SysteemBackendLaadt actieve relaties van de gebruiker.Alleen relaties met IsActive = true worden als actieve relatie getoond.Relaties van andere gebruikers worden nooit toegevoegd aan het resultaat.
4SysteemBackendLaadt door de gebruiker verstuurde openstaande uitnodigingen.Alleen eigen pending uitnodigingen die zichtbaar horen te blijven worden opgehaald.Inkomende uitnodigingen worden via SystemMessages aangeboden.
5SysteemBackend / readmodelBerekent samenvattingsaantallen.Het systeem bepaalt aantallen voor actieve vrienden, ouders/voogden, docenten en openstaande uitnodigingen.Waarden zijn dynamisch en mogen niet uit de mockup worden overgenomen.
6SysteemRelatiepaginaToont intro, samenvatting en zichtbare relatieblokken.De gebruiker ziet relevante secties met beschikbare acties.Secties en acties zijn rol- en relatieafhankelijk.
7GebruikerRelatieblokKlapt een relatie open.Het systeem toont detailinformatie voor die relatie.UI-state; geen database-mutatie.
8GebruikerRelatieblokKlapt een relatie dicht.Het systeem verbergt de detailinformatie.UI-state; geen database-mutatie.
9GebruikerRelatiepaginaKiest Details bij een verzonden openstaande uitnodiging.Het systeem opent een detailsweergave met aanmaakmoment, relatietype, status, ontvangerstype en tijdlijn.Alleen eigen verzonden uitnodigingen mogen worden geopend. Mailstatus vervangt de functionele relatieverzoekstatus niet.
10GebruikerRelatiepaginaStart optioneel een vervolgactie.Het systeem navigeert of opent een modal voor de bijbehorende vervolgusecase.Uitvoering valt buiten deze usecase.

Relatieblokken en zichtbaarheid

SectieWanneer tonenInhoudBelangrijke regels
VriendenWanneer de gebruiker in een rolcontext zit waarin vriendschappen relevant of mogelijk zijn.Actieve Friendship-relaties, uitnodigactie, berichtactie, ontkoppelactie en openklapdetails.Voor leerling-leerlingvriendschappen is de sectie relevant voor berichten en gedeelde oefeningen.
Ouders / voogdenWanneer de gebruiker relevante ouder-/voogdrelaties kan zien of als leerling een ouder/voogd mag uitnodigen.Actieve GuardianStudent-relaties, uitnodigactie, berichtactie en ontkoppelverzoekactie.Ouder/voogd is het zichtbare label; Guardian is de technische/backend-contextwaarde.
DocentenWanneer de gebruiker actieve docentrelaties heeft.Actieve TeacherStudent-relaties, berichtactie, niveaucontext en ontkoppelverzoekactie.Een leerling kan geen docent uitnodigen; alleen docenten starten de docent-leerlingrelatieflow.
Openstaande uitnodigingenWanneer de gebruiker verstuurde uitnodigingen heeft die nog Pending zijn en zichtbaar horen te blijven.Doelnaam of e-mailadres, uitnodigingstype, verzenddatum en actie Details.Alleen door de huidige gebruiker verstuurde uitnodigingen; inkomende uitnodigingen staan in systeemberichten. Details toont veilige historie en maildeliverysamenvatting.
Goed om te wetenWanneer de pagina normaal geladen is.Functionele toelichting op relaties, uitnodigingen en zichtbaarheid.Informatief, niet muterend.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011De gebruiker is niet ingelogd.Het systeem weigert toegang en stuurt de gebruiker naar de login- of toegangsflow.Generieke autorisatiemelding buiten deze usecase.Geen.
ALT-0022De gebruiker heeft geen relevante actieve relaties.Het systeem toont lege staten per relevante sectie.Inline lege staat.Geen.
ALT-0033Een relatie is ondertussen gedeactiveerd.De relatie wordt niet meer als actief item getoond.Geen popup in de leesflow.Geen.
ALT-0044Een uitnodiging is geaccepteerd, afgewezen, verlopen of ingetrokken.De uitnodiging verdwijnt uit de sectie Openstaande uitnodigingen zodra deze niet meer als pending zichtbaar hoort te zijn.Geen popup in de leesflow.Geen door deze usecase.
ALT-0055Samenvattingsaantallen kunnen niet worden geladen.Het systeem toont de pagina zonder onbetrouwbare tellingen of met een foutstaat voor het betrokken blok.Inline foutstaat.Geen.
ALT-0066Een relatietype of feature is niet beschikbaar voor de gebruiker.De bijbehorende sectie of actie wordt verborgen of disabled.Inline uitleg of tooltip waar functioneel relevant.Geen.
ALT-0077De detailinformatie voor een relatie kan niet worden geladen.Het systeem toont een foutmelding binnen de relatiekaart en laat de gebruiker de pagina blijven gebruiken.Inline foutstaat.Geen.
ALT-0089De gebruiker start + Nodig vriend uit.Het systeem opent de uitnodigflow voor een vriend.POP-GEN-REL-INVITE-FRIEND.Afhandeling via UC-GEN-REL-002.
ALT-0099De gebruiker start + Nodig ouder/voogd uit.Het systeem opent de uitnodigflow voor ouder/voogd.POP-GEN-REL-INVITE-GUARDIAN.Afhandeling via UC-GEN-REL-003.
ALT-01010De gebruiker kiest Ontkoppel of Ontkoppelverzoek.Het systeem opent altijd eerst een bevestigingsmodal.POP-GEN-REL-DISCONNECT-CONFIRM.Afhandeling via UC-GEN-REL-004 of een vervolgflow voor ontkoppelverzoeken.
ALT-01110De gebruiker kiest Bericht.Het systeem start of opent een privéberichtcontext met de geselecteerde relatie.Geen relatiepopup.Afhandeling via berichtenusecases.

9. Business rules

IDRegel
BR-UC-GEN-REL-001-001De relatiepagina toont uitsluitend relaties en uitnodigingen die bij de ingelogde gebruiker horen.
BR-UC-GEN-REL-001-002Relaties van andere gebruikers mogen niet zichtbaar worden via relatiecontext, familierelatie, docentcontext of URL-manipulatie.
BR-UC-GEN-REL-001-003Alleen actieve relaties tellen mee in de samenvattingsaantallen voor actieve vrienden, ouders/voogden en docenten.
BR-UC-GEN-REL-001-004De sectie Openstaande uitnodigingen toont alleen door de huidige gebruiker verstuurde uitnodigingen die nog openstaand en zichtbaar zijn.
BR-UC-GEN-REL-001-005Inkomende uitnodigingen worden via systeemberichten aangeboden en niet als aparte inkomende lijst op de relatiepagina getoond.
BR-UC-GEN-REL-001-006Secties en acties zijn rolcontextafhankelijk; frontend-zichtbaarheid is geen autorisatie.
BR-UC-GEN-REL-001-007Iedere relatiebeëindiging of start van een ontkoppelverzoek moet via een bevestigingsmodal lopen.
BR-UC-GEN-REL-001-008Vrienduitnodigingen en ouder-/voogduitnodigingen worden vanuit de pagina gestart, maar de aanmaak van de uitnodiging valt onder aparte usecases.
BR-UC-GEN-REL-001-009Een leerling kan geen docentrelatie uitnodigen vanaf de relatiepagina.
BR-UC-GEN-REL-001-010Openklappen en dichtklappen van relatiedetails is UI-state en mag geen relatie- of uitnodigingsdata wijzigen.
BR-UC-GEN-REL-001-011Ouder-/voogdregels moeten minimaal het veld Actief sinds als detailinformatie kunnen tonen.
BR-UC-GEN-REL-001-012Docentrelaties tonen alleen niveaucontext die voor de ingelogde gebruiker en de betreffende docentrelatie relevant is.
BR-UC-GEN-REL-001-013Acties zoals Bericht, Ontkoppel en Ontkoppelverzoek mogen alleen uitvoerbaar zijn wanneer de onderliggende relatie op het moment van uitvoeren nog geldig is.
BR-UC-GEN-REL-001-014De detailsweergave voor verzonden uitnodigingen toont geen technische SMTP-, exception-, provider- of TickerQ-details aan gewone gebruikers.
BR-UC-GEN-REL-001-015Voor externe uitnodigingen mag succesvolle maildelivery alleen worden omschreven als E-mail aangeboden aan de mailserver; ontvangst bij de ontvanger wordt niet gegarandeerd.

Autorisatie en server-side controles

ControleRegel
Pagina openenAlleen ingelogde gebruikers mogen SCH-GEN-08 openen.
Relaties ladenServer-side filter op ingelogde gebruiker als deelnemer aan de relatie.
Uitnodigingen ladenServer-side filter op FromUserId = huidige gebruiker en Status = Pending, plus zichtbaarheid volgens pending-overzichtregels.
Secties tonenServer-side bepalen op basis van actieve gebruiker, beschikbare rolcontexten, actieve relatietypen en feature-instellingen.
Acties tonenFrontend mag acties verbergen of disabled tonen, maar backend valideert opnieuw bij uitvoering.
BerichtactieAlleen wanneer de relatie nog actief is en privéberichten voor deze relatiecontext zijn toegestaan.
OntkoppelactieAlleen wanneer de relatie nog actief is en het relatietype handmatige ontkoppeling of een ontkoppelverzoek toestaat.
UitnodigactiesAlleen wanneer de gebruiker het betreffende relatietype vanuit de huidige rolcontext mag initiëren.

10. Datavalidatie

Veld / objectValidatie / regel
UserRelationships.IsActiveAlleen actieve relaties worden als actuele relatie getoond.
RelationshipType.CodeBepaalt de sectie en betekenis van de relatie, bijvoorbeeld Friendship, GuardianStudent of TeacherStudent.
RelatierichtingDe weergave moet beide zijden van de relatie correct vertalen naar de perspectiefnaam van de huidige gebruiker.
DisplaynaamNaam of representatie van de andere partij wordt dynamisch uit de gebruikerscontext bepaald.
InitiatedAtUtc / AcceptedAtUtcWordt gebruikt voor Actief sinds wanneer beschikbaar en functioneel passend.
Gedeelde oefeningenWordt afgeleid uit het gedeelde-oefeningendomein en alleen getoond wanneer relevant voor de vriendschapscontext.
DocentniveaucontextWordt afgeleid uit docent-leerlingrelatie en niveauautorisaties; alleen relevante niveaus worden getoond.
RelationshipInvitations.StatusAlleen Pending-uitnodigingen worden als openstaand getoond.
RelationshipInvitations.IsVisibleInPendingOverviewBepaalt of een pending uitnodiging in het openstaande overzicht zichtbaar hoort te zijn.
DatumweergaveUTC-bronnen worden in de gebruikersinterface lokaal en leesbaar weergegeven.
SamenvattingsaantallenAantallen worden berekend uit dezelfde dataset als de detailsecties, zodat teller en lijst inhoudelijk overeenkomen.

11. Datamutaties en events

Deze usecase veroorzaakt in de primaire leesflow geen datamutaties.

StapTypeEntiteit / eventMutatie
1-8ReadUserRelationships, RelationshipTypes, RelationshipInvitations, Users, RolesAlleen lezen en samenstellen van de pagina.
7-8UI-stateFrontend stateOpen- of dichtklappen van relatiedetails; geen persistente wijziging.
9DelegatieVervolgusecasesMutaties ontstaan pas wanneer de gebruiker een vervolgactie bevestigt in de bijbehorende usecase.

12. Geen datamutaties

EntiteitReden
UserRelationshipsBekijken van relaties wijzigt geen bestaande relatie.
RelationshipInvitationsBekijken van openstaande uitnodigingen wijzigt de uitnodiging niet.
RelationshipEventsEr wordt geen audit-event aangemaakt voor alleen het bekijken van de relatiepagina.
SystemMessagesInkomende uitnodigingen worden via systeemberichten aangeboden, maar deze pagina maakt geen systeemberichten aan.
PrivateMessageThreadsEen berichtthread ontstaat of opent pas via de berichtenflow.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

De primaire leesflow gebruikt geen popup. Popups worden pas relevant wanneer de gebruiker een vervolgactie start. De usecase legt daarom alleen verwijzingen naar vervolgflows vast.

PopupKeyMoment / contextDoel
POP-GEN-REL-INVITE-FRIENDVervolgactie + Nodig vriend uitStart van UC-GEN-REL-002.
POP-GEN-REL-INVITE-GUARDIANVervolgactie + Nodig ouder/voogd uitStart van UC-GEN-REL-003.
POP-GEN-REL-DISCONNECT-CONFIRMVervolgactie Ontkoppel of OntkoppelverzoekStart of bevestiging binnen UC-GEN-REL-004.

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

DoeldocumentAfleiding
Functioneel OntwerpBeschrijft de relatiepagina als centrale gebruikersflow voor inzicht in relaties, openstaande verstuurde uitnodigingen en beschikbare vervolgacties per relatietype.
Technisch OntwerpRelatiebeheer, uitnodigingen en gedeelde oefeningen beschrijft relatiecontext, server-side filtering en scheiding tussen readflow en muterende commands.
Technisch OntwerpReadmodels, tellers, badges, caching en materialisatie beschrijft tellerberekening en relatiepagina-readmodels.
Software Requirements SpecificationDestilleert requirements over gebruikergebonden relatie-inzage, rolcontextafhankelijke zichtbaarheid, openstaande uitnodigingen, lege staten, disabled states en het ontbreken van mutaties bij alleen bekijken.

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
REQ-UC-GEN-REL-001-001SRS-RDM-001
SRS-RDM-007
SRS-REL-001
AC-RDM-001
AC-RDM-007
AC-REL-001
Een ingelogde gebruiker de eigen relatiepagina kunnen tonen
REQ-UC-GEN-REL-001-002SRS-REL-001
AC-REL-001
Uitsluitend relaties tonen waarbij de ingelogde gebruiker deelnemer is
REQ-UC-GEN-REL-001-003SRS-REL-001
AC-REL-001
Actieve relaties per relevant relatietype kunnen groeperen
REQ-UC-GEN-REL-001-004SRS-RDM-001
SRS-RDM-002
SRS-RDM-007
SRS-REL-001
AC-RDM-001
AC-RDM-002
AC-RDM-007
AC-REL-001
Samenvattingsaantallen tonen die zijn afgeleid uit dezelfde dataset als de zichtbare relatieblokken
REQ-UC-GEN-REL-001-005SRS-REL-001
AC-REL-001
Door de gebruiker verstuurde openstaande uitnodigingen kunnen tonen zolang deze pending en zichtbaar zijn
REQ-UC-GEN-REL-001-006SRS-RDM-001
SRS-RDM-007
SRS-REL-001
SRS-MSG-001
AC-RDM-001
AC-RDM-007
AC-REL-001
AC-MSG-001
Inkomende relatie-uitnodigingen niet als aparte inkomende lijst op de relatiepagina tonen wanneer deze via systeemberichten worden afgehandeld
REQ-UC-GEN-REL-001-007SRS-RDM-001
SRS-RDM-007
SRS-REL-001
AC-RDM-001
AC-RDM-007
AC-REL-001
Per relatieblok een passende lege staat kunnen tonen wanneer er geen relaties of uitnodigingen beschikbaar zijn
REQ-UC-GEN-REL-001-008SRS-AUTH-001
SRS-RDM-001
SRS-RDM-007
SRS-REL-001
AC-AUTH-001
AC-RDM-001
AC-RDM-007
AC-REL-001
Acties op de relatiepagina rolcontextafhankelijk tonen, verbergen of disabled maken
REQ-UC-GEN-REL-001-009SRS-AUTH-001
SRS-RDM-001
SRS-RDM-007
SRS-REL-001
AC-AUTH-001
AC-RDM-001
AC-RDM-007
AC-REL-001
Alle acties die vanuit de relatiepagina worden gestart server-side opnieuw controleren
REQ-UC-GEN-REL-001-010SRS-REL-001
AC-REL-001
Relatiekaartdetails kunnen open- en dichtklappen zonder persistente datamutatie
REQ-UC-GEN-REL-001-011SRS-REL-001
SRS-LRN-009
SRS-SHR-001
AC-REL-001
AC-LRN-009
AC-SHR-001
Voor vrienden minimaal actief-sinds en gedeelde-oefeningeninformatie kunnen tonen wanneer deze informatie beschikbaar is
REQ-UC-GEN-REL-001-012SRS-REL-001
SRS-GUA-001
AC-REL-001
AC-GUA-001
Voor ouder-/voogdrelaties minimaal actief-sinds als detailinformatie kunnen tonen
REQ-UC-GEN-REL-001-013SRS-AUTH-001
SRS-REL-001
SRS-CAT-006
SRS-TCH-002
AC-AUTH-001
AC-REL-001
AC-CAT-006
AC-TCH-002
Voor docentrelaties relevante niveaucontext kunnen tonen zonder niet-geautoriseerde niveaus zichtbaar te maken
REQ-UC-GEN-REL-001-014SRS-REL-003
SRS-REL-006
AC-REL-003
AC-REL-006
Voor iedere ontkoppelactie of ontkoppelverzoekactie een bevestigingsmodal gebruiken voordat de muterende vervolgactie wordt uitgevoerd
REQ-UC-GEN-REL-001-015SRS-RDM-001
SRS-RDM-007
SRS-REL-001
SRS-MSG-001
AC-RDM-001
AC-RDM-007
AC-REL-001
AC-MSG-001
Het bekijken van de relatiepagina mag geen UserRelationships, RelationshipInvitations, RelationshipEvents, SystemMessages of privéberichtdata wijzigen
REQ-UC-GEN-REL-001-016SRS-RDM-001
SRS-RDM-007
SRS-REL-001
AC-RDM-001
AC-RDM-007
AC-REL-001
Vervolgacties vanaf de relatiepagina kunnen koppelen aan de daarvoor bedoelde usecases of commands