8. Relaties
8.1 Schermafbeelding

8.2 Scherm meta data
| Veld | Waarde |
|---|---|
| Scherm-ID | SCH-GEN-08-01 |
| Schermnaam | Relaties |
| Doelgroep / onderdeel | Generiek |
| Bronbestand | oefenhub_generiek_06_relaties_v1_8.html |
| Mockupversie | V1.8 |
| Screenshotbestand | oefenhub_generiek_06_relaties_v1_8.png |
| Processtap / context | Ingelogde gebruiker opent vanuit het profielmenu de relatiepagina om eigen relaties en verstuurde relatie-uitnodigingen te bekijken en toegestane relatieacties uit te voeren. |
| Documentatiestatus | Uitgewerkt op basis van HTML-mockup, PNG-screenshot, Functioneel Ontwerp, Technisch Ontwerp, Software Requirements Specification, database-informatie en aanvullende functionele correcties. |
| Opmerkingen | Header en footer vallen buiten het bereik van dit schermdocument. De zichtbare relatiepersonen, aantallen, initialen, datums en uitnodigingsregels zijn dynamische voorbeeldwaarden. Ouders/voogden moeten net als vrienden en docenten openklapbaar zijn om minimaal Actief sinds te tonen, ook wanneer de mockup dit visueel nog niet volledig toont. |
| Route / URL-patroon | Functionele route binnen profielcontext, bijvoorbeeld /profiel/relaties. De breadcrumb binnen de scherminhoud is Home > Profiel > Relaties. |
| Autorisatie / vereiste rol-context | Ingelogde gebruiker. De zichtbare secties en acties worden server-side bepaald op basis van de actieve gebruiker, diens rolcontext, relatietypen, feature-instellingen en bestaande relaties of uitnodigingen. |
| Primair domeinobject / hoofdentiteit | UserRelationships, RelationshipInvitations, RelationshipTypes, RelationshipEvents, Users en Roles. |
| Gerelateerde schermen / navigatie | 02_berichten_overzicht, 03_nieuw_privebericht, 10_profiel. Inkomende relatie-uitnodigingen worden via systeemberichten aangeboden en niet als apart inkomend overzicht op deze pagina verzameld. |
| Data-karakter | Gebruikergebonden overzichts- en mutatiepagina voor relaties; lijstregels, samenvattingsaantallen, uitnodigingsstatussen, datumwaarden, relatieacties en modaluitkomsten zijn dynamisch. |
8.3 Functionele beschrijving
Het scherm Relaties is de centrale profielpagina voor het bekijken en beheren van relaties tussen de ingelogde gebruiker en andere OefenHub-gebruikers. De pagina bundelt meerdere relatietypen in één overzicht, maar ieder relatietype behoudt eigen business rules, autorisatie en gevolgen.
De pagina bestaat uit:
- een breadcrumb Home > Profiel > Relaties;
- een introductieblok met uitleg over vrienden, ouders/voogden, docenten en openstaande uitnodigingen;
- een samenvattingsblok In één oogopslag;
- een sectie Vrienden;
- een sectie Ouders / voogden;
- een sectie Docenten;
- een sectie Openstaande uitnodigingen;
- een sectie Goed om te weten;
- modal/popupflows voor uitnodigen, intrekken, ontkoppelen en ontkoppelverzoeken.
Header, profielmenu, navigatiebalk en footer worden niet in dit schermdocument gespecificeerd.
8.3.1 Interpretatie van mockupwaarden
Alle zichtbare namen, initialen, aantallen, datums, niveaunamen, uitnodigingstypen en gedeelde-oefeningentotalen in de mockup zijn voorbeelddata. Voorbeelden zoals 3 actieve vrienden, 2 ouders/voogden, 2 docenten, 2 openstaande uitnodigingen, Luca van Rijn, Marieke Jansen, Groep 7 en Verzonden op 20 mrt 2026 worden dynamisch bepaald voor de ingelogde gebruiker.
De HTML-mockup toont de secties en hun beoogde gedrag. De aanvullende correcties in dit document zijn leidend waar de mockup onvolledig is: ouders/voogden zijn openklapbaar voor Actief sinds, de uitnodigknoppen openen een modal/popup, en iedere ontkoppelactie of ontkoppelverzoekactie opent eerst een bevestigingsmodal met de vraag Weet je het zeker?.
8.3.2 Relatietypen en zichtbaarheid
De pagina toont uitsluitend relaties en uitnodigingen die bij de ingelogde gebruiker horen. Een gebruiker mag via deze pagina geen relaties van andere gebruikers bekijken, ook niet wanneer er een familie-, docent- of vriendschapscontext bestaat.
De volgende functionele relatietypen zijn relevant:
- Vriendschap: leerling-leerlingrelatie voor delen van oefeningen en privéberichten.
- Ouder/voogd: relatie tussen leerling en ouder/voogd voor begeleiding, geschiedenis en live meekijken.
- Docent: relatie tussen leerling en docent voor niveauautorisaties, oefentoegang en docentcontext.
- Docent-docent en beheerder-beheerder bestaan in het relationele domein, maar zijn voor deze leerlinggerichte mockup niet als aparte secties zichtbaar.
De pagina mag per gebruiker en actieve rolcontext minder of andere secties tonen dan in de mockup. Voor een leerling zijn vrienden, ouders/voogden, docenten en verstuurde uitnodigingen relevant. Voor een gecombineerde gebruiker blijven relatietypen gescheiden per rolcontext; acties op één relatie mogen geen andere relatie tussen dezelfde natuurlijke personen wijzigen.
8.3.3 Introductie en samenvatting
Het introductieblok legt uit waarvoor de relatiepagina bedoeld is. Het blok In één oogopslag toont gebruikergebonden totalen voor actieve vrienden, ouders/voogden, docenten en openstaande door de gebruiker verstuurde uitnodigingen.
Deze aantallen zijn samenvattend en mogen niet uit de mockup worden overgenomen. Alleen actieve relaties tellen mee bij actieve relatieaantallen. Bij openstaande uitnodigingen tellen alleen uitnodigingen mee die door de huidige gebruiker zijn verstuurd, nog openstaand zijn en zichtbaar horen te blijven in het openstaande uitnodigingenoverzicht.
8.3.4 Vrienden
De sectie Vrienden toont actieve vriendschapsrelaties van de ingelogde leerling. Elke regel toont minimaal een displaynaam, initialen of avatarrepresentatie, de acties Bericht en Ontkoppel, en een openklapactie voor detailinformatie.
In uitgeklapte toestand toont een vriendregel minimaal:
- Actief sinds: het moment waarop de relatie actief werd;
- Gedeelde oefeningen: het aantal gedeelde oefeningen binnen deze vriendschapscontext, voor zover dit functioneel voor de gebruiker beschikbaar is.
De actie Bericht start of opent een privéberichtcontext met deze relatie, mits privéberichten sitebreed beschikbaar zijn en de relatie nog actief is. De actie Ontkoppel opent altijd eerst een modal/popup met de vraag Weet je het zeker?. Pas na bevestiging wordt de vriendschap beëindigd. De andere gebruiker ontvangt hierover een systeembericht.
8.3.5 Ouders / voogden
De sectie Ouders / voogden toont actieve ouder-/voogdrelaties van de ingelogde leerling. Iedere regel moet openklapbaar zijn, ook wanneer de mockup dit nog niet visueel toont. In uitgeklapte toestand wordt minimaal Actief sinds getoond.
Voor een leerling is het beëindigen van een ouder-/voogdrelatie geen directe ontkoppeling. De actie wordt daarom gebruikersgericht als Ontkoppelverzoek gepresenteerd. Ook deze actie opent altijd eerst een modal/popup met de vraag Weet je het zeker?. Na bevestiging ontstaat een verzoek of relatiegebeurtenis richting de ouder/voogd; de relatie wordt pas beëindigd wanneer de bevoegde partij of de daarvoor geldende flow dit toestaat.
De actie Bericht is alleen beschikbaar wanneer privéberichten sitebreed beschikbaar zijn en de relatiecontext het sturen van privéberichten toestaat.
8.3.6 Docenten
De sectie Docenten toont actieve docentrelaties van de ingelogde leerling. De sectiekop toont dat alleen een docent de leerling kan uitnodigen voor een docentrelatie. Een leerling kan dus geen nieuwe docentrelatie starten vanuit deze pagina.
Docentregels zijn openklapbaar. In uitgeklapte toestand toont de regel minimaal de niveaucontext die deze docent aan de leerling heeft gekoppeld, bijvoorbeeld Niveau(s): Groep 7, Rekenen-plus. De zichtbare niveaunamen zijn dynamisch en mogen alleen de niveaus tonen die binnen de relatie en docentcontext voor deze gebruiker relevant zijn.
De actie Ontkoppelverzoek opent altijd eerst een modal/popup met de vraag Weet je het zeker?. Een leerling verbreekt een docentrelatie niet direct via deze pagina; de actie start een verzoek- of notificatieflow. Bij daadwerkelijke beëindiging van een docentrelatie vervallen de niveauautorisaties en daarmee de oefentoegang en resultaatinzage die uit die docentrelatie voortkwamen.
8.3.7 Openstaande uitnodigingen
De sectie Openstaande uitnodigingen toont uitsluitend door de huidige gebruiker verstuurde uitnodigingen die nog niet zijn geaccepteerd, afgewezen, verlopen of ingetrokken. Inkomende uitnodigingen worden via het berichtensysteem aangeboden en niet als aparte inkomende lijst op deze pagina getoond.
Per openstaande uitnodiging worden minimaal getoond:
- displaynaam of e-mailadres van de beoogde ontvanger;
- het type uitnodiging, bijvoorbeeld vriendschapsuitnodiging of ouder/voogd-uitnodiging;
- verzenddatum;
- duidelijke actie Bekijk details.
De actie Bekijk details opent een detailsmodal voor het verzonden verzoek en moet als duidelijke hyperlink herkenbaar zijn: normaal zonder underline, met font-weight 600 en underline/kleuraccent op hover. De detailsmodal gebruikt een compacte titel in de vorm Relatietype · ontvangerstype, bijvoorbeeld Vriendschapsuitnodiging · extern e-mailadres. Ontvanger en status staan alleen compact onder de titel; er worden geen grote infoblokken gebruikt. De tijdlijn krijgt de nadruk, toont datum/tijd, scheidingsteken en gebeurtenis op één regel en kan meerdere items in één oogopslag tonen. Voor externe e-mailadressen bevat de tijdlijn veilige maildeliveryinformatie. Gebruik bij succesvolle SMTP-submit de formulering E-mail aangeboden aan de mailserver; zeg niet dat de mail zeker is ontvangen. De detailsmodal moet als echte modal openen met backdrop/scroll-lock, zodat de pagina achter de modal niet meescrolt.
De acties Herinner en Intrekken staan functioneel onderaan deze detailsmodal wanneer het verzoek nog openstaat. Herinner is alleen uitvoerbaar wanneer de uitnodiging nog pending is en de beheerbare cooldown RelationshipInvitationReminderCooldownHours is verstreken. Zolang de cooldown loopt, blijft de knop disabled met tooltip/uitleg wanneer opnieuw herinneren kan. Voor bestaande OefenHub-gebruikers levert herinneren een nieuw systeembericht of notificatie-event op. Voor een nog niet geregistreerde ontvanger levert herinneren een nieuwe externe uitnodigingsmail en dus een nieuwe MailSendAttempts-registratie met Purpose = Reminder op, zolang de uitnodiging nog geldig is.
De actie Intrekken is destructief, wordt rood/destructief vormgegeven en opent altijd eerst een bevestigingsmodal voordat de uitnodiging niet meer accepteerbaar wordt gemaakt. Intrekken wordt auditbaar vastgelegd in RelationshipEvents, zet de uitnodiging op ingetrokken en de uitnodiging mag daarna niet meer als openstaande uitnodiging verschijnen.
8.3.8 Uitnodigen van vriend of ouder/voogd
De knoppen + Nodig vriend uit en + Nodig ouder/voogd uit openen een modal/popup waarin de gebruiker een e-mailadres invoert. De gekozen knop bepaalt het relatietype:
- + Nodig vriend uit maakt een vriendschapsuitnodiging aan;
- + Nodig ouder/voogd uit maakt een ouder-/voogd-uitnodiging aan.
Het systeem valideert server-side minimaal:
- het e-mailadres heeft een geldig formaat;
- de gebruiker mag dit relatietype vanuit de huidige rolcontext initiëren;
- er bestaat nog geen actieve relatie met exact dezelfde relatietype- en rolcontextcombinatie;
- er bestaat nog geen openstaande identieke uitnodiging;
- de feature of relatievorm is beschikbaar voor de gebruiker.
Wanneer het e-mailadres hoort bij een bestaande OefenHub-gebruiker, wordt een RelationshipInvitations-record aangemaakt met ToUserId gevuld en status Pending. De ontvanger krijgt de uitnodiging via het berichtensysteem of een gelijkwaardige notificatie en moet de uitnodiging accepteren voordat de relatie actief wordt.
Wanneer het e-mailadres nog niet bekend is in OefenHub, toont de modal een duidelijke melding dat het e-mailadres niet in OefenHub is gevonden en dat de gebruiker het adres moet controleren. Als het e-mailadres ongewijzigd blijft, wordt de actie Nodig uit voor OefenHub beschikbaar. Daarbij wordt een informatieve tekst getoond dat de naam van de uitnodigende gebruiker wordt gedeeld in de e-mail aan de uit te nodigen persoon, omdat de uitnodiging namens die gebruiker wordt verstuurd.
Na bevestiging van Nodig uit voor OefenHub wordt een openstaande relatie-uitnodiging vastgelegd op basis van ToEmail, zonder ToUserId. De uitnodiging blijft gedurende 7 dagen bruikbaar voor registratiekoppeling. Wanneer iemand zich binnen die termijn registreert met hetzelfde e-mailadres, koppelt het systeem de openstaande uitnodiging aan het nieuw aangemaakte account en biedt de relatie-uitnodiging direct ter acceptatie aan. De relatie zelf wordt pas actief na acceptatie door de ontvanger.
8.3.9 Ontkoppelen en bevestigingsmodal
Iedere actie waarmee een relatie wordt beëindigd of een ontkoppelverzoek wordt gestart, opent eerst een modal/popup met de vraag Weet je het zeker?. Dit geldt voor:
- Ontkoppel bij vrienden;
- Ontkoppelverzoek bij ouders/voogden;
- Ontkoppelverzoek bij docenten;
- vergelijkbare ontkoppelacties die voor andere rolcontexten op dezelfde pagina beschikbaar worden gemaakt.
De modal toont kort de gevolgen van de actie. Bij directe ontkoppeling wordt duidelijk gemaakt dat de relatie en bijbehorende rechten vervallen na bevestiging. Bij ontkoppelverzoeken wordt duidelijk gemaakt dat er eerst een verzoek naar de andere partij of bevoegde partij gaat.
8.3.10 Leegstaten, foutstaten en disabled states
Wanneer een sectie geen items bevat, toont de pagina een korte lege staat die uitlegt wat de gebruiker kan doen. Voor vrienden en ouders/voogden mag de uitnodigknop zichtbaar blijven wanneer de gebruiker dit relatietype mag starten. Voor docenten toont de lege staat dat alleen docenten de leerling kunnen uitnodigen.
Acties worden disabled of verborgen wanneer de gebruiker ze niet mag uitvoeren. Frontend-zichtbaarheid is daarbij geen beveiliging; alle acties worden server-side opnieuw gecontroleerd. Voorbeelden:
- + Nodig vriend uit is niet beschikbaar wanneer vriendschappen voor de leerling niet zijn toegestaan;
- Bericht is niet beschikbaar wanneer privéberichten sitebreed uitstaan of de relatie geen geldig communicatiekanaal vormt;
- Ontkoppel of Ontkoppelverzoek is niet uitvoerbaar wanneer de relatie niet actief is;
- Herinner is niet uitvoerbaar wanneer de uitnodiging verlopen, ingetrokken, geaccepteerd of afgewezen is;
- Herinner is tijdelijk disabled wanneer de cooldown sinds de initiële uitnodiging of laatste herinnering nog loopt; de tooltip/uitleg vermeldt wanneer opnieuw herinneren kan;
- Intrekken is niet uitvoerbaar wanneer de uitnodiging niet meer openstaand is.
8.4 UI-elementen en velddefinities
| Element-ID | Type | GUI-verwijzing | Omschrijving | Zichtbaar label | Opmerking | Technische naam |
|---|---|---|---|---|---|---|
| SCH-GEN-08-01-S01 | S | Hoofdinhoud | Hoofdcontainer voor de relatiepagina. | Relaties | Header en footer vallen buiten scope. | RelationshipsPageShell |
| SCH-GEN-08-01-A01 | A | Breadcrumb | Navigatiepad binnen profielcontext. | Home > Profiel > Relaties | Read-only navigatiecontext. | RelationshipsBreadcrumb |
| SCH-GEN-08-01-S02 | S | Introblok | Uitleg over de relatiepagina en de betekenis van de relatiecategorieën. | Relaties | Bevat titel, toelichting en drie informatieve subblokken. | RelationshipsIntroSection |
| SCH-GEN-08-01-F01 | F | Introblok — titel | Titel van de pagina. | Relaties | Read-only schermtitel. | RelationshipsPageTitle |
| SCH-GEN-08-01-F02 | F | Introblok — toelichting | Toelichting op vrienden, ouders/voogden, docenten en uitnodigingen. | Bekijk hier met wie je binnen OefenHub verbonden bent. | Tekst beschrijft functie, niet de actuele dataset. | RelationshipsIntroText |
| SCH-GEN-08-01-S03 | S | Introblok — meta | Informatieve blokken over vrienden, ouders/voogden en docenten. | Vrienden / Ouders/voogden / Docenten | Geen telling; alleen uitleg. | RelationshipCategoryInfoCards |
| SCH-GEN-08-01-S04 | S | Rechterblok | Samenvatting met aantallen per relatietype en uitnodigingen. | In één oogopslag | Responsief inklapbaar in de mockup. | RelationshipsSummaryCard |
| SCH-GEN-08-01-F03 | F | Samenvatting | Aantal actieve vriendschapsrelaties. | Actieve vrienden | Dynamisch en gebruikergebonden. | ActiveFriendCount |
| SCH-GEN-08-01-F04 | F | Samenvatting | Aantal actieve ouder-/voogdrelaties. | Ouders/voogden | Dynamisch en gebruikergebonden. | ActiveGuardianCount |
| SCH-GEN-08-01-F05 | F | Samenvatting | Aantal actieve docentrelaties. | Docenten | Dynamisch en gebruikergebonden. | ActiveTeacherCount |
| SCH-GEN-08-01-F06 | F | Samenvatting | Aantal openstaande door gebruiker verstuurde uitnodigingen. | Openstaande uitnodigingen | Telt geen inkomende uitnodigingen. | PendingSentInvitationCount |
| SCH-GEN-08-01-S05 | S | Sectie Vrienden | Lijst met actieve vrienden. | Vrienden | Leerling-leerlingrelaties. | FriendsSection |
| SCH-GEN-08-01-B01 | B | Sectie Vrienden | Opent uitnodigmodal voor vriendschapsuitnodiging. | + Nodig vriend uit | Alleen beschikbaar wanneer vriendschappen voor gebruiker zijn toegestaan. | InviteFriendButton |
| SCH-GEN-08-01-T01 | T | Vriendenlijst | Herhalende regel voor één actieve vriend. | <vriend> | Regel is openklapbaar. | FriendRelationshipItem |
| SCH-GEN-08-01-F07 | F | Vriendregel | Naam van de vriend. | <naam vriend> | Dynamische displaynaam. | FriendDisplayName |
| SCH-GEN-08-01-A02 | A | Vriendregel | Opent of start privébericht met vriend. | Bericht | Alleen bij actieve relatie en toegestane privéberichten. | MessageFriendAction |
| SCH-GEN-08-01-A03 | A | Vriendregel | Opent bevestigingsmodal voor directe ontkoppeling. | Ontkoppel | Vraagt altijd eerst bevestiging. | UnlinkFriendAction |
| SCH-GEN-08-01-A04 | A | Vriendregel | Klapt detailinformatie van een vriend open of dicht. | Toon meer / Toon minder | Toont onder meer actief-sinds en gedeelde oefeningen. | ToggleFriendDetailsAction |
| SCH-GEN-08-01-F08 | F | Vrienddetail | Datum waarop de vriendschap actief werd. | Actief sinds | UTC-bron lokaal tonen. | FriendActiveSinceDisplay |
| SCH-GEN-08-01-F09 | F | Vrienddetail | Aantal gedeelde oefeningen binnen vriendschapscontext. | Gedeelde oefeningen | Dynamisch afgeleid uit gedeelde-oefeningendomein. | SharedExerciseCountWithFriend |
| SCH-GEN-08-01-S06 | S | Sectie Ouders / voogden | Lijst met actieve ouder-/voogdrelaties. | Ouders / voogden | Regels moeten openklapbaar zijn voor actief-sinds. | GuardiansSection |
| SCH-GEN-08-01-B02 | B | Sectie Ouders / voogden | Opent uitnodigmodal voor ouder-/voogd-uitnodiging. | + Nodig ouder/voogd uit | Beschikbaar wanneer gebruiker deze relatievorm mag initiëren. | InviteGuardianButton |
| SCH-GEN-08-01-T02 | T | Ouder-/voogdlijst | Herhalende regel voor één ouder/voogd. | <ouder/voogd> | Moet openklapbaar zijn, ook wanneer mockup dit niet toont. | GuardianRelationshipItem |
| SCH-GEN-08-01-F10 | F | Ouder-/voogdregel | Naam van ouder/voogd. | <naam ouder/voogd> | Dynamische displaynaam. | GuardianDisplayName |
| SCH-GEN-08-01-A05 | A | Ouder-/voogdregel | Opent of start privébericht met ouder/voogd. | Bericht | Alleen bij actieve relatie en toegestane privéberichten. | MessageGuardianAction |
| SCH-GEN-08-01-A06 | A | Ouder-/voogdregel | Opent bevestigingsmodal voor ontkoppelverzoek. | Ontkoppelverzoek | Leerling voert geen directe ontkoppeling uit. | RequestGuardianUnlinkAction |
| SCH-GEN-08-01-A07 | A | Ouder-/voogdregel | Klapt detailinformatie van ouder/voogd open of dicht. | Toon meer / Toon minder | Toont minimaal actief-sinds. | ToggleGuardianDetailsAction |
| SCH-GEN-08-01-F11 | F | Ouder-/voogddetail | Datum waarop de relatie actief werd. | Actief sinds | Aanvulling op de mockup; verplicht detailveld. | GuardianActiveSinceDisplay |
| SCH-GEN-08-01-S07 | S | Sectie Docenten | Lijst met actieve docentrelaties. | Docenten | Leerling kan geen docent uitnodigen. | TeachersSection |
| SCH-GEN-08-01-M01 | M | Sectie Docenten | Informeert dat alleen docenten kunnen uitnodigen. | Alleen docent kan uitnodigen | Tooltip in mockup. | TeacherInviteRestrictedMessage |
| SCH-GEN-08-01-T03 | T | Docentenlijst | Herhalende regel voor één actieve docentrelatie. | <docent> | Regel is openklapbaar. | TeacherRelationshipItem |
| SCH-GEN-08-01-F12 | F | Docentregel | Naam van de docent. | <naam docent> | Dynamische displaynaam. | TeacherDisplayName |
| SCH-GEN-08-01-A08 | A | Docentregel | Opent of start privébericht met docent. | Bericht | Alleen bij geldige relatie en toegestane privéberichten. | MessageTeacherAction |
| SCH-GEN-08-01-A09 | A | Docentregel | Opent bevestigingsmodal voor ontkoppelverzoek. | Ontkoppelverzoek | Beëindiging trekt niveauautorisaties in zodra deze wordt uitgevoerd. | RequestTeacherUnlinkAction |
| SCH-GEN-08-01-A10 | A | Docentregel | Klapt docentdetails open of dicht. | Toon meer / Toon minder | Toont niveaucontext. | ToggleTeacherDetailsAction |
| SCH-GEN-08-01-F13 | F | Docentdetail | Niveaus die via deze docentrelatie relevant zijn. | Niveau(s) | Alleen eigen docentcontext tonen. | TeacherAuthorizedLevelsDisplay |
| SCH-GEN-08-01-S08 | S | Sectie Openstaande uitnodigingen | Overzicht van door gebruiker verstuurde openstaande uitnodigingen. | Openstaande uitnodigingen | Inkomende uitnodigingen staan in berichten. | PendingInvitationsSection |
| SCH-GEN-08-01-F14 | F | Sectiekop Openstaande uitnodigingen | Teller voor openstaande uitnodigingen. | <aantal> in afwachting | Dynamisch op basis van verstuurde pending uitnodigingen. | PendingInvitationBadge |
| SCH-GEN-08-01-T04 | T | Uitnodigingenlijst | Herhalende regel voor één openstaande uitnodiging. | <uitnodiging> | Bevat type en verzenddatum. | PendingInvitationItem |
| SCH-GEN-08-01-F15 | F | Uitnodigingregel | Naam of e-mailadres van ontvanger. | <naam of e-mailadres> | Bij externe uitnodiging kan alleen e-mailadres beschikbaar zijn. | InvitationTargetDisplay |
| SCH-GEN-08-01-F16 | F | Uitnodigingregel | Uitnodigingstype en verzenddatum. | <type> · Verzonden op <datum> | Dynamische waarden. | InvitationMetaDisplay |
| SCH-GEN-08-01-A11 | A | Uitnodigingregel | Verstuur herinnering voor openstaande uitnodiging. | Herinner | Alleen bij openstaande uitnodiging. | RemindInvitationAction |
| SCH-GEN-08-01-A12 | A | Uitnodigingregel | Opent bevestigingsmodal voor intrekken. | Intrekken | Na bevestiging niet meer accepteerbaar. | WithdrawInvitationAction |
| SCH-GEN-08-01-S09 | S | Goed om te weten | Informatieve regels over relaties, docentuitnodigingen en ontkoppelen. | Goed om te weten | Alleen informatief. | RelationshipInfoSection |
| SCH-GEN-08-01-MOD01 | MOD | Uitnodigmodal | Modal voor het invoeren van e-mailadres en verzenden van een relatie-uitnodiging. | Nodig uit | Wordt geopend vanuit vriend- of ouder/voogdknop. | RelationshipInvitationModal |
| SCH-GEN-08-01-F17 | F | Uitnodigmodal | E-mailadres van de uit te nodigen persoon. | E-mailadres | User input. | InvitationEmailInput |
| SCH-GEN-08-01-M02 | M | Uitnodigmodal | Melding wanneer e-mailadres niet bekend is in OefenHub. | Controleer het e-mailadres | Geeft toegang tot externe OefenHub-uitnodiging wanneer adres ongewijzigd blijft. | UnknownEmailInvitationMessage |
| SCH-GEN-08-01-B03 | B | Uitnodigmodal | Verstuur relatie-uitnodiging naar bestaande gebruiker. | Verstuur uitnodiging | Alleen actief bij geldig e-mailadres en toegestane relatieflow. | SendRelationshipInvitationButton |
| SCH-GEN-08-01-B04 | B | Uitnodigmodal | Verstuur OefenHub-uitnodiging naar nog niet geregistreerd e-mailadres. | Nodig uit voor OefenHub | Informeert dat naam van uitnodiger wordt gedeeld in e-mail. | InviteExternalUserButton |
| SCH-GEN-08-01-B05 | B | Uitnodigmodal | Sluit de modal zonder uitnodiging te versturen. | Annuleren | Wijzigt geen data. | CancelInvitationModalButton |
| SCH-GEN-08-01-MOD02 | MOD | Ontkoppelmodal | Bevestigingsmodal voor ontkoppelen of ontkoppelverzoek. | Weet je het zeker? | Altijd tonen vóór relatiebeëindiging of verzoek. | RelationshipUnlinkConfirmModal |
| SCH-GEN-08-01-B06 | B | Ontkoppelmodal | Bevestigt ontkoppelen of ontkoppelverzoek. | Ja, doorgaan | Exacte tekst mag per relatietype verduidelijkt worden. | ConfirmRelationshipUnlinkButton |
| SCH-GEN-08-01-B07 | B | Ontkoppelmodal | Annuleert ontkoppelen of ontkoppelverzoek. | Annuleren | Wijzigt geen data. | CancelRelationshipUnlinkButton |
| SCH-GEN-08-01-MOD03 | MOD | Intrekmodal | Bevestigingsmodal voor intrekken van openstaande uitnodiging. | Weet je het zeker? | Uitnodiging wordt na bevestiging niet meer accepteerbaar. | WithdrawInvitationConfirmModal |
8.5 Waardelagen
| Element-ID | GUI-verwijzing | Zichtbaar label | Technische naam | Databron | Waardebron | Datatype | Bewerkbaar | Validatie / regel |
|---|---|---|---|---|---|---|---|---|
| SCH-GEN-08-01-S01 | Hoofdinhoud | Relaties | RelationshipsPageShell | Users, actuele sessie, rolcontext | Runtime context | Composite | Nee | Alleen toegankelijk voor ingelogde gebruikers. |
| SCH-GEN-08-01-A01 | Breadcrumb | Home > Profiel > Relaties | RelationshipsBreadcrumb | Routeconfiguratie | Afgeleid uit route | Navigation label | Nee | Headernavigatie valt buiten scope. |
| SCH-GEN-08-01-F01 | Introblok — titel | Relaties | RelationshipsPageTitle | Codegedreven schermlabel of contentblok indien beheerbaar gemaakt | Weergavetekst | String | Nee | Geen gebruikersdata. |
| SCH-GEN-08-01-F02 | Introblok — toelichting | Bekijk hier met wie je binnen OefenHub verbonden bent. | RelationshipsIntroText | Codegedreven schermtekst of contentblok indien beheerbaar gemaakt | Weergavetekst | String | Nee | Tekst mag rechten niet ruimer voorstellen dan de autorisatieregels. |
| SCH-GEN-08-01-F03 | Samenvatting | Actieve vrienden | ActiveFriendCount | UserRelationships, RelationshipTypes.Code = Friendship | Berekend aantal actieve relaties voor huidige gebruiker | Integer | Nee | Alleen IsActive = true en huidige gebruiker als relatiepartij tellen. |
| SCH-GEN-08-01-F04 | Samenvatting | Ouders/voogden | ActiveGuardianCount | UserRelationships, RelationshipTypes.Code = GuardianStudent | Berekend aantal actieve relaties voor huidige gebruiker | Integer | Nee | Alleen actieve ouder-/voogdrelaties van huidige gebruiker tellen. |
| SCH-GEN-08-01-F05 | Samenvatting | Docenten | ActiveTeacherCount | UserRelationships, RelationshipTypes.Code = TeacherStudent | Berekend aantal actieve relaties voor huidige gebruiker | Integer | Nee | Alleen actieve docentrelaties van huidige gebruiker tellen. |
| SCH-GEN-08-01-F06 | Samenvatting | Openstaande uitnodigingen | PendingSentInvitationCount | RelationshipInvitations, RelationshipEvents | Berekend aantal openstaande verstuurde uitnodigingen | Integer | Nee | Alleen uitnodigingen met huidige gebruiker als FromUserId, openstaande status en zichtbaarheid in openstaand overzicht. |
| SCH-GEN-08-01-B01 | Vrienden | + Nodig vriend uit | InviteFriendButton | RelationshipTypes, rolcontext, feature-instellingen | Actiebeschikbaarheid | Action | Ja | Alleen tonen/activeren als de gebruiker vriendschappen mag initiëren en vriendschappen beschikbaar zijn. |
| SCH-GEN-08-01-T01 | Vriendenlijst | <vriend> | FriendRelationshipItem | UserRelationships, Users, Roles, RelationshipTypes | Database | Collection | Nee | Alleen actieve vriendschappen van huidige gebruiker. |
| SCH-GEN-08-01-F07 | Vriendregel | <naam vriend> | FriendDisplayName | Users | Databasewaarde | String | Nee | Naam veilig encoden; geen e-mail tonen tenzij functioneel bedoeld. |
| SCH-GEN-08-01-A02 | Vriendregel | Bericht | MessageFriendAction | UserRelationships, privéberichtfeature, berichtendomein | User action | Action | Ja | Alleen bij actieve relatie en toegestane privéberichten; server-side relatie opnieuw controleren. |
| SCH-GEN-08-01-A03 | Vriendregel | Ontkoppel | UnlinkFriendAction | UserRelationships, RelationshipEvents, SystemMessages | User action na bevestiging | Action | Ja | Eerst bevestigingsmodal tonen; na bevestiging relatie deactiveren en andere partij informeren. |
| SCH-GEN-08-01-F08 | Vrienddetail | Actief sinds | FriendActiveSinceDisplay | UserRelationships.AcceptedAtUtc of UserRelationships.InitiatedAtUtc volgens relatieflow | Afgeleid/lokaal geformatteerd | Date display | Nee | UTC-bron lokaal tonen. |
| SCH-GEN-08-01-F09 | Vrienddetail | Gedeelde oefeningen | SharedExerciseCountWithFriend | Gedeelde-oefeningendomein, relatiecontext | Berekend | Integer | Nee | Alleen gegevens tonen die binnen deze vriendschapsrelatie en gebruikercontext horen. |
| SCH-GEN-08-01-B02 | Ouders/voogden | + Nodig ouder/voogd uit | InviteGuardianButton | RelationshipTypes, rolcontext | Actiebeschikbaarheid | Action | Ja | Alleen beschikbaar wanneer huidige gebruiker deze relatievorm mag initiëren. |
| SCH-GEN-08-01-T02 | Ouder-/voogdlijst | <ouder/voogd> | GuardianRelationshipItem | UserRelationships, Users, Roles, RelationshipTypes | Database | Collection | Nee | Alleen actieve ouder-/voogdrelaties van huidige gebruiker. |
| SCH-GEN-08-01-F10 | Ouder-/voogdregel | <naam ouder/voogd> | GuardianDisplayName | Users | Databasewaarde | String | Nee | Naam veilig encoden. |
| SCH-GEN-08-01-A05 | Ouder-/voogdregel | Bericht | MessageGuardianAction | UserRelationships, privéberichtfeature, berichtendomein | User action | Action | Ja | Server-side relatie en berichtrechten controleren. |
| SCH-GEN-08-01-A06 | Ouder-/voogdregel | Ontkoppelverzoek | RequestGuardianUnlinkAction | UserRelationships, RelationshipEvents, SystemMessages | User action na bevestiging | Action | Ja | Eerst bevestigingsmodal tonen; leerling start verzoek, geen directe ontkoppeling. |
| SCH-GEN-08-01-F11 | Ouder-/voogddetail | Actief sinds | GuardianActiveSinceDisplay | UserRelationships.AcceptedAtUtc of UserRelationships.InitiatedAtUtc volgens relatieflow | Afgeleid/lokaal geformatteerd | Date display | Nee | Verplicht detailveld in opengeklapte ouder-/voogdregel. |
| SCH-GEN-08-01-M01 | Docentsectie | Alleen docent kan uitnodigen | TeacherInviteRestrictedMessage | Relatiebusinessrule | Afgeleide UI-melding | String | Nee | Leerling mag geen docentrelatie initiëren. |
| SCH-GEN-08-01-T03 | Docentenlijst | <docent> | TeacherRelationshipItem | UserRelationships, Users, TeacherStudentLevelAccess, rollen | Database en afgeleide niveaucontext | Collection | Nee | Alleen actieve docentrelaties van huidige leerling. |
| SCH-GEN-08-01-F12 | Docentregel | <naam docent> | TeacherDisplayName | Users | Databasewaarde | String | Nee | Geen gegevens van andere docentrelaties buiten deze relatie tonen. |
| SCH-GEN-08-01-A08 | Docentregel | Bericht | MessageTeacherAction | UserRelationships, privéberichtfeature, berichtendomein | User action | Action | Ja | Server-side relatie en berichtrechten controleren. |
| SCH-GEN-08-01-A09 | Docentregel | Ontkoppelverzoek | RequestTeacherUnlinkAction | UserRelationships, RelationshipEvents, SystemMessages, TeacherStudentLevelAccess | User action na bevestiging | Action | Ja | Eerst bevestigingsmodal tonen; beëindiging trekt bij daadwerkelijke verwerking niveauautorisaties in. |
| SCH-GEN-08-01-F13 | Docentdetail | Niveau(s) | TeacherAuthorizedLevelsDisplay | TeacherStudentLevelAccess, niveaudomein | Afgeleid uit docent-leerlingcontext | String/list | Nee | Alleen niveaus tonen die door deze docentrelatie relevant zijn. |
| SCH-GEN-08-01-T04 | Uitnodigingenlijst | <uitnodiging> | PendingInvitationItem | RelationshipInvitations, RelationshipTypes, Users | Database | Collection | Nee | Alleen door huidige gebruiker verstuurde openstaande uitnodigingen tonen. |
| SCH-GEN-08-01-F15 | Uitnodigingregel | <naam of e-mailadres> | InvitationTargetDisplay | RelationshipInvitations.ToUserId, RelationshipInvitations.ToEmail, Users | Databasewaarde / afgeleid display | String | Nee | Bij onbekende gebruiker e-mailadres alleen tonen voor eigen verstuurde uitnodiging. |
| SCH-GEN-08-01-F16 | Uitnodigingregel | <type> · Verzonden op <datum> | InvitationMetaDisplay | RelationshipInvitations.RelationshipTypeId, CreatedAtUtc | Databasewaarde / lokaal geformatteerd | String/date display | Nee | UTC-bron lokaal tonen. |
| SCH-GEN-08-01-A11 | Uitnodigingregel | Herinner | RemindInvitationAction | RelationshipInvitations, SystemMessages, externe e-mailservice indien ToUserId leeg is | User action | Action | Ja | Alleen bij nog openstaande uitnodiging; misbruikbeperking en status server-side controleren. |
| SCH-GEN-08-01-A12 | Uitnodigingregel | Intrekken | WithdrawInvitationAction | RelationshipInvitations, RelationshipEvents, SystemMessages | User action na bevestiging | Action | Ja | Eerst bevestigingsmodal tonen; uitnodiging daarna niet meer accepteerbaar maken. |
| SCH-GEN-08-01-F17 | Uitnodigmodal | E-mailadres | InvitationEmailInput | Gebruikersinput | User input | Email string | Ja | Verplicht; geldig e-mailadres; normaliseren voor vergelijking; geen onveilige logging van e-mailadres. |
| SCH-GEN-08-01-M02 | Uitnodigmodal | Controleer het e-mailadres | UnknownEmailInvitationMessage | Users.ExternalId/e-mailkoppeling via accountdomein, RelationshipInvitations.ToEmail | Afgeleide fout-/infostaat | Message | Nee | Tonen wanneer geen OefenHub-account bij e-mailadres is gevonden. |
| SCH-GEN-08-01-B03 | Uitnodigmodal | Verstuur uitnodiging | SendRelationshipInvitationButton | RelationshipInvitations, RelationshipEvents, SystemMessages | User action | Action | Ja | Alleen voor bestaande gebruiker of geldig gekozen relatietype; dubbele actieve relatie of dubbele openstaande uitnodiging blokkeren. |
| SCH-GEN-08-01-B04 | Uitnodigmodal | Nodig uit voor OefenHub | InviteExternalUserButton | RelationshipInvitations.ToEmail, externe e-mailservice, registratieflow | User action | Action | Ja | Alleen actief nadat onbekend e-mailadres is bevestigd; naam van uitnodiger wordt in e-mail gedeeld; uitnodiging 7 dagen koppelbaar aan registratie. |
| SCH-GEN-08-01-MOD02 | Ontkoppelmodal | Weet je het zeker? | RelationshipUnlinkConfirmModal | Geselecteerde relatie en relatietype | Runtime state | Modal | Ja | Altijd tonen vóór directe ontkoppeling of ontkoppelverzoek. |
| SCH-GEN-08-01-MOD03 | Intrekmodal | Weet je het zeker? | WithdrawInvitationConfirmModal | Geselecteerde uitnodiging | Runtime state | Modal | Ja | Altijd tonen vóór intrekken van uitnodiging. |
8.6 Schermtrace naar SRS en acceptatiecriteria
De onderstaande tabel legt per schermrequirement de koppeling naar het centrale schermrequirements-trace-register, SRS-requirements en acceptatiecriteria vast. De normatieve requirementtekst staat in de SRS; dit schermdocument beschrijft alleen de lokale schermcontext.
Deze tabel bevat alleen schermtraceability. De normatieve requirementtekst en acceptatiecriteria staan centraal in de SRS.
| Schermrequirement | Dekt | Schermcontext |
|---|---|---|
REQ-SCH-GEN-08-01-01 | SRS-AUTH-001 SRS-REL-001 AC-AUTH-001 AC-REL-001 | De relatiepagina tonen voor ingelogde gebruikers binnen de profielcontext |
REQ-SCH-GEN-08-01-02 | SRS-REL-001 AC-REL-001 | Header en footer geen als functionele onderdelen van dit schermdocument worden beschouwd |
REQ-SCH-GEN-08-01-03 | SRS-AUTH-001 SRS-REL-001 AC-AUTH-001 AC-REL-001 | Uitsluitend relaties tonen waarin de ingelogde gebruiker zelf partij is |
REQ-SCH-GEN-08-01-04 | SRS-REL-001 AC-REL-001 | Relaties onderscheiden per relatietype en rol-context-combinatie, zodat meerdere inhoudelijk verschillende relaties tussen dezelfde natuurlijke personen mogelijk blijven |
REQ-SCH-GEN-08-01-05 | SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-REL-001 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-REL-001 | Een samenvatting tonen met dynamische aantallen voor actieve vrienden, ouders/voogden, docenten en openstaande door de gebruiker verstuurde uitnodigingen |
REQ-SCH-GEN-08-01-06 | SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-REL-001 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-REL-001 | Samenvattingsaantallen mogen uitsluitend worden opgebouwd uit actuele gebruikergebonden relatie- en uitnodigingsdata en mogen mockupwaarden niet hardcoded gebruiken |
REQ-SCH-GEN-08-01-07 | SRS-REL-003 AC-REL-003 | De sectie Vrienden actieve vriendschapsrelaties tonen met minimaal naam, berichtactie, ontkoppelactie en openklapbare detailinformatie |
REQ-SCH-GEN-08-01-08 | SRS-REL-001 AC-REL-001 | Een vriendregel in uitgeklapte toestand minimaal Actief sinds en Gedeelde oefeningen tonen |
REQ-SCH-GEN-08-01-09 | SRS-AUTH-001 SRS-REL-001 AC-AUTH-001 AC-REL-001 | De actie Bericht mag alleen uitvoerbaar zijn wanneer de relatie actief is, privéberichten beschikbaar zijn en de server-side autorisatie bevestigt dat de gebruiker deze relatie mag berichten |
REQ-SCH-GEN-08-01-10 | SRS-REL-003 AC-REL-003 | De actie Ontkoppel altijd eerst een bevestigingsmodal/popup openen met de vraag Weet je het zeker? |
REQ-SCH-GEN-08-01-11 | SRS-NFR-AUD-001 SRS-REL-003 AC-NFR-AUD-001 AC-REL-003 | Na bevestigde directe ontkoppeling het systeem de relatie deactiveren, de actie auditbaar vastleggen en de andere partij informeren via een systeembericht of gelijkwaardige notificatie |
REQ-SCH-GEN-08-01-12 | SRS-REL-001 AC-REL-001 | De sectie Ouders / voogden actieve ouder-/voogdrelaties tonen en iedere ouder-/voogdregel openklapbaar zijn |
REQ-SCH-GEN-08-01-13 | SRS-REL-001 AC-REL-001 | Een ouder-/voogdregel in uitgeklapte toestand minimaal Actief sinds tonen |
REQ-SCH-GEN-08-01-14 | SRS-REL-003 AC-REL-003 | Een leerling mag een ouder-/voogdrelatie niet direct verbreken vanuit deze pagina; de actie als ontkoppelverzoek worden verwerkt volgens de relatiebusinessrules |
REQ-SCH-GEN-08-01-15 | SRS-REL-003 AC-REL-003 | De actie Ontkoppelverzoek altijd eerst een bevestigingsmodal/popup openen met de vraag Weet je het zeker? |
REQ-SCH-GEN-08-01-16 | SRS-REL-001 AC-REL-001 | De sectie Docenten actieve docentrelaties tonen en duidelijk maken dat alleen docenten een docentrelatie met de leerling kunnen initiëren |
REQ-SCH-GEN-08-01-17 | SRS-REL-001 AC-REL-001 | Een leerling mag vanuit deze pagina geen docent uitnodigen |
REQ-SCH-GEN-08-01-18 | SRS-REL-001 AC-REL-001 | Een docentregel openklapbaar zijn en in uitgeklapte toestand de relevante niveaucontext van die docentrelatie tonen |
REQ-SCH-GEN-08-01-19 | SRS-REL-003 AC-REL-003 | Een leerling mag een docentrelatie niet direct verbreken vanuit deze pagina; de actie als ontkoppelverzoek worden verwerkt volgens de relatiebusinessrules |
REQ-SCH-GEN-08-01-20 | SRS-AUTH-001 SRS-REL-003 AC-AUTH-001 AC-REL-003 | Bij daadwerkelijke beëindiging van een docentrelatie de uit die relatie voortkomende niveauautorisaties worden ingetrokken |
REQ-SCH-GEN-08-01-21 | SRS-REL-001 AC-REL-001 | De sectie Openstaande uitnodigingen uitsluitend door de huidige gebruiker verstuurde openstaande uitnodigingen tonen |
REQ-SCH-GEN-08-01-22 | SRS-REL-001 AC-REL-001 | Inkomende relatie-uitnodigingen via het berichtensysteem worden aangeboden en geen als inkomende lijst op deze pagina worden verzameld |
REQ-SCH-GEN-08-01-23 | SRS-REL-001 AC-REL-001 | Per openstaande uitnodiging het systeem minimaal ontvangerweergave, relatietype, verzenddatum en de acties Herinner en Intrekken tonen |
REQ-SCH-GEN-08-01-24 | SRS-REL-001 SRS-REL-012 AC-REL-001 AC-REL-012 | De actie Herinner mag alleen uitvoerbaar zijn voor uitnodigingen die nog openstaand zijn en waarvan de reminder-cooldown is verstreken |
REQ-SCH-GEN-08-01-25 | SRS-REL-001 SRS-REL-002 AC-REL-001 AC-REL-002 | De actie Intrekken altijd eerst een bevestigingsmodal/popup openen en de uitnodiging na bevestiging niet meer accepteerbaar maken |
REQ-SCH-GEN-08-01-26 | SRS-REL-001 AC-REL-001 | De knoppen + Nodig vriend uit en + Nodig ouder/voogd uit een modal/popup openen waarin de gebruiker een e-mailadres invoert |
REQ-SCH-GEN-08-01-27 | SRS-REL-001 AC-REL-001 | Het relatietype van een uitnodiging afleiden uit de knop waarmee de modal is geopend |
REQ-SCH-GEN-08-01-28 | SRS-AUTH-001 SRS-REL-001 AC-AUTH-001 AC-REL-001 | E-mailinvoer server-side valideren op formaat, toegestane relatieflow, bestaande actieve relatie en bestaande openstaande identieke uitnodiging |
REQ-SCH-GEN-08-01-29 | SRS-REL-001 AC-REL-001 | Wanneer het e-mailadres bij een bestaande OefenHub-gebruiker hoort, het systeem een openstaande relatie-uitnodiging aanmaken met een gevulde doelgebruiker en de ontvanger informeren |
REQ-SCH-GEN-08-01-30 | SRS-REL-001 AC-REL-001 | Wanneer het e-mailadres niet bij een bestaande OefenHub-gebruiker hoort, het systeem de gebruiker vragen het e-mailadres te controleren |
REQ-SCH-GEN-08-01-31 | SRS-REL-001 AC-REL-001 | Wanneer een onbekend e-mailadres ongewijzigd wordt bevestigd, de actie Nodig uit voor OefenHub beschikbaar zijn |
REQ-SCH-GEN-08-01-32 | SRS-REL-001 AC-REL-001 | Bij Nodig uit voor OefenHub het systeem vooraf tonen dat de naam van de uitnodigende gebruiker in de e-mail aan de uit te nodigen persoon wordt gedeeld |
REQ-SCH-GEN-08-01-33 | SRS-REL-001 AC-REL-001 | Een externe OefenHub-uitnodiging als relatie-uitnodiging worden vastgelegd op e-mailadres, zonder doelgebruiker zolang de ontvanger nog niet geregistreerd is |
REQ-SCH-GEN-08-01-34 | SRS-REL-001 SRS-REL-002 AC-REL-001 AC-REL-002 | Wanneer iemand zich binnen 7 dagen registreert met het e-mailadres van een openstaande externe relatie-uitnodiging, het systeem de uitnodiging koppelen aan het nieuwe account en ter acceptatie aanbieden |
REQ-SCH-GEN-08-01-35 | SRS-REL-001 SRS-REL-002 AC-REL-001 AC-REL-002 | Een relatie mag pas actief worden nadat de ontvangende partij de relatie-uitnodiging heeft geaccepteerd |
REQ-SCH-GEN-08-01-36 | SRS-AUTH-001 SRS-REL-001 AC-AUTH-001 AC-REL-001 | Kruislings uitnodigen, dubbele openstaande uitnodigingen en uitnodigen terwijl al een identieke actieve relatie bestaat server-side blokkeren met een duidelijke gebruikersmelding |
REQ-SCH-GEN-08-01-37 | SRS-NFR-AUD-001 SRS-REL-003 AC-NFR-AUD-001 AC-REL-003 | Relatie-uitnodigingen, herinneringen, intrekkingen, acceptaties, afwijzingen, verlopen uitnodigingen en ontkoppelacties auditbaar vastleggen in het relatiedomein |
REQ-SCH-GEN-08-01-38 | SRS-AUTH-004 SRS-REL-001 AC-AUTH-004 AC-REL-001 | Het systeem mag technische identifiers zoals GUID’s, relatie-id’s of uitnodiging-id’s niet zichtbaar tonen in de relatiepagina |
REQ-SCH-GEN-08-01-39 | SRS-REL-001 AC-REL-001 | Lege staten tonen voor relatietypen of uitnodigingslijsten zonder records |
REQ-SCH-GEN-08-01-40 | SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-REL-001 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-REL-001 | Zichtbare relatiegegevens, datumwaarden, aantallen, initialen, namen en statussen dynamisch worden opgebouwd uit de actuele gebruikercontext en relatiedata |
8.7 Technische koppeling
Voor technische uitwerking zijn vooral relevant:
- 05 Autorisatie, policies en server-side contextcontrole voor server-side begrenzing van zichtbare relaties, uitnodigingen en ontkoppelacties.
- 12 Relatiebeheer, uitnodigingen en gedeelde oefeningen voor relatiegegevens, uitnodigingen, ontkoppelen, vriendschappen en ouder-/voogdrelaties.
- 13 Berichten, systeemberichten, notificaties en privéberichten voor notificaties en berichten rond uitnodigingen of relatieverzoeken.
- 17 Readmodels, tellers, badges, caching en materialisatie voor afgeleide relatieoverzichten en eventuele statusindicatoren.
- 25 Privacy, retentie, anonimisering en gegevensbescherming voor minimale zichtbaarheid van persoonsgegevens binnen relatiecontexten.
8.x Uitnodiging-aware onboarding
De reguliere relatiepagina blijft de plek voor afgeronde onboarding en later ontvangen/verzonden relatiecontexten. Voor nieuwe gebruikers met geclaimde externe uitnodigingen geldt eerst een verplichte onboardingweergave voordat de normale relatiepagina beschikbaar wordt.
Belangrijke UI-regels:
- rolkeuze toont informatief hoeveel uitnodigingen klaarstaan en welke typen dit zijn;
- uitnodigingen die niet passen bij de gekozen rol worden server-side afgesloten en niet als normale openstaande uitnodigingen getoond;
- compatibele uitnodigingen worden daarna op een verplichte onboardingpagina getoond met accepteren/weigeren;
- pas na verwerking van alle verplichte onboardinguitnodigingen wordt normale navigatie en de reguliere relatiepagina beschikbaar.