Skip to main content

Ouder-/voogdfunctionaliteit

11.1 Doel

Dit hoofdstuk beschrijft de functionele samenhang en grenzen van de ouder-/voogdfunctionaliteit binnen OefenHub.

De ouder-/voogdrol is gericht op ondersteunen, begeleiden, raadplegen en live meekijken bij gekoppelde kinderen.

De ouder-/voogdrol is nadrukkelijk geen rol waarmee een gebruiker namens een kind oefeningen uitvoert of leerlingvoortgang wijzigt.

Een ouder/voogd kan binnen de eigen ouder-/voogdcontext onder meer:

  • gekoppelde kinderen bekijken;
  • compacte kindinformatie raadplegen;
  • resultaten en geschiedenis van gekoppelde kinderen bekijken;
  • resultaatdetails en statistieken openen;
  • resultaat-PDF downloaden waar toegestaan;
  • online gekoppelde kinderen bekijken;
  • live meekijken bij actieve oefenruns;
  • de eigen ouder-/voogdrelatie met een kind beëindigen.

Een ouder/voogd kan niet:

  • een oefening namens het kind starten;
  • een oefening namens het kind hervatten;
  • antwoorden invullen of wijzigen;
  • een run afronden;
  • een resultaat corrigeren;
  • een oefening opnieuw maken namens het kind;
  • een oefening delen namens het kind;
  • leerlingniveau-autorisaties beheren;
  • docentstructuren beheren;
  • oefenconfiguraties wijzigen;
  • kindgegevens buiten de actieve ouder-/voogdrelatie raadplegen.

11.2 Domeinafbakening

De ouder-/voogdfunctionaliteit gebruikt meerdere onderliggende domeinen, maar wordt niet zelf de bron van waarheid voor die domeinen.

OnderdeelBinnen FO-11Bronhoudend elders
Ouder-/voogdcontextBepaalt welke ouder-/voogdfuncties beschikbaar zijn binnen de actieve rolcontext.Rollen, sessie en autorisatie.
Gekoppelde kinderenToont alleen kinderen met actieve GuardianStudent-relatie.Relatiebeheer.
KindselectieTijdelijke UI-context voor vervolgacties.Geen persistente bron; server-side relatiecontrole blijft leidend.
KindinformatieRead-only samenvatting van profiel-, relatie- en oefeninformatie.Account-, relatie-, docentstructuur- en oefenrundata.
ResultatenRead-only presentatie van bestaande afgeronde runs.ExerciseRuns en voortgang/statistiekgegevens.
GeschiedenisRead-only overzicht en filtering van afgeronde kindruns.Oefenrun- en resultaatdomein.
PDF-exportTijdelijke download van historisch resultaat.PDF-export en resultaatpresentatie.
Online-overzichtAfgeleid overzicht van aanwezigheid, actieve run en meekijkbaarheid.Sessies, oefenruns en live-readmodels.
Live meekijkenRead-only volgen van actieve run.Oefenrunvoortgang en live-meekijkdomein.
OntkoppelenSoft-deactivation van de eigen ouder-/voogdrelatie.Relatiebeheer en relatie-events.
SysteemcommunicatieInformeren van het kind bij ontkoppeling of relevante feedback.Berichten- en systeemberichtdomein.

FO-11 beschrijft dus de ouder-/voogdlaag boven bestaande brondata.

Het hoofdstuk dupliceert niet de volledige usecases, schermdocumentatie, databasebeschrijving of live-meekijkuitwerking, maar legt vast hoe deze onderdelen functioneel samenkomen binnen de ouder-/voogdcontext.

11.3 Bronpositie

Voor ouder-/voogdfunctionaliteit gelden de volgende bronlagen.

BronlaagBetekenis voor FO-11
FOBeschrijft samenhang, grenzen, rolcontext, read-only gedrag en domeinregels.
UsecasesBeschrijven detailflows voor frontpage, kinderen, resultaten, geschiedenis, PDF en live meekijken.
SchermdocumentatieBeschrijft zichtbare onderdelen, acties, lege toestanden en schermspecifieke waarden.
Database-informatieBeschrijft relatiegegevens, oefenruns, voortgang, audit en readmodelbronnen.
OntwerpbronnenBeschrijven autorisatie, business rules, popupkeys, statusmodellen, commands en events waar relevant.
MockupsOndersteunen layoutinterpretatie; mockupwaarden zijn voorbeelddata.

De zichtbare ouder-/voogdinterface is nooit autorisatiebewijs.

Iedere detail-, filter-, export-, ontkoppel- en liveactie controleert server-side opnieuw of de actieve ouder-/voogdrelatie en rolcontext nog geldig zijn.

11.4 Ouder-/voogdcontext en navigatie

Wanneer een gebruiker de rol Ouder/voogd heeft, bevat de ouder-/voogdcontext minimaal de routes:

  • Kinderen;
  • Online.

Daarnaast kan de ouder-/voogdfrontpage samenvattingsblokken tonen en doorverwijzen naar achterliggende routes.

Bij ruimtegebrek in de header worden ouder-/voogditems onder de rolgroep Ouder/Voogd geplaatst.

Deze responsieve groepering is alleen presentatiegedrag.

De backend blijft bepalen:

  • of de gebruiker een actieve ouder-/voogdrol heeft;
  • welke kinderen zichtbaar zijn;
  • welke vervolgacties beschikbaar zijn;
  • welke routes daadwerkelijk toegankelijk zijn;
  • welke data binnen die routes gelezen mag worden.

11.5 Rolcombinaties

Een gebruiker mag de rollen Ouder/voogd, Docent en Beheerder combineren.

De rol Leerling is niet combineerbaar met Ouder/voogd.

Voor ouder-/voogdfunctionaliteit gelden bij combinatierollen deze grenzen.

CombinatieRegel
Ouder/voogd + DocentOuder-/voogdroutes geven geen impliciete docentinzage. Docentroutes geven geen impliciete ouder-/voogdinzage.
Ouder/voogd + BeheerderBeheerdercontext geeft niet automatisch ouder-/voogdrelaties of live-meekijkrecht.
Docent + Ouder/voogd met hetzelfde kindDe docentrelatie vervangt de ouder-/voogdrelatie niet en omgekeerd.
Beheerder + Docent + Ouder/voogdFrontpageblokken worden runtime samengesteld, maar iedere vervolgroute gebruikt de eigen domeincontext.

Wanneer dezelfde natuurlijke persoon zowel docent als ouder/voogd is van hetzelfde kind, moeten die relaties functioneel gescheiden blijven.

Een resultaat dat in ouder-/voogdcontext zichtbaar is, mag niet als bewijs gelden dat hetzelfde resultaat in docentcontext zichtbaar is.

Een leerling die in docentcontext zichtbaar is, mag niet automatisch als kind in ouder-/voogdcontext zichtbaar worden.

11.6 Autorisatiebron

De actieve ouder-/voogdrelatie is de primaire autorisatiebron voor ouder-/voogdfunctionaliteit.

Functioneel gaat het om een actieve GuardianStudent-relatie tussen de ingelogde ouder/voogd en het kind.

Deze relatie is vereist voor:

  • ouder-/voogdfrontpageblokken over kinderen;
  • kinderenoverzicht;
  • kindselectie;
  • kindinformatie;
  • resultaat- en geschiedenissamenvattingen;
  • geschiedenisfilters;
  • resultaatdetails;
  • statistieken;
  • PDF-export;
  • online-overzicht;
  • live meekijken;
  • ontkoppelen van het kind vanuit ouder-/voogdcontext.

De actieve relatie is een voortdurende autorisatievoorwaarde.

Dat betekent:

  • het openen van een pagina is niet genoeg voor latere acties;
  • iedere vervolgactie controleert opnieuw de relatie;
  • oude routeparameters geven geen toegang;
  • filters geven geen toegang;
  • browsergeschiedenis geeft geen toegang;
  • een eerder getoonde kindkaart geeft geen blijvend recht;
  • een eerder ingeladen resultaatdetail mag niet blijven lekken na intrekking van de relatie.

11.7 Objecten en readmodels

FO-11 gebruikt bestaande objecten en afgeleide readmodels.

Object / readmodelTypeFunctionele betekenis
UserRelationshipsBrondataActieve of beëindigde ouder-/voogdrelatie.
RelationshipEventsAuditGebeurtenissen rond uitnodigingen, acceptatie, afwijzing en ontkoppeling.
ExerciseRunsBrondataHistorische en lopende oefenruns van het kind.
ExerciseRunProgressBrondata / voortgangVraagvoortgang, antwoorden, timing en livevoortgang.
GuardianChildReadModelReadmodelAfgeleid overzicht van actief gekoppelde kinderen.
GuardianResultSummaryReadModelReadmodelAfgeleide resultatensamenvatting per gekoppeld kind.
GuardianHistoryReadModelReadmodelAfgeleide geschiedenisregels binnen toegestane kinddataset.
GuardianHistoryFilterReadModelReadmodelFilteropties op basis van toegestane kindruns.
GuardianRunDetailReadModelReadmodelRead-only detailweergave van één afgeronde run.
GuardianResultStatisticsReadModelReadmodelAfgeleide of opgeslagen statistieken voor resultaatdetail.
GuardianPdfExportModelTijdelijk exportmodelTijdelijke PDF-bron voor geautoriseerde run.
GuardianOnlineOverviewReadModelReadmodelOnline- en oefenstatus van gekoppelde kinderen.
LiveAvailabilityReadModelReadmodelAfgeleide beschikbaarheid van live meekijken.
LiveViewAuditAuditRegistratie van daadwerkelijk gestarte live-meekijksessies.
SystemMessagesCommunicatieSysteemcommunicatie aan kind of ouder waar functioneel vereist.

Readmodels zijn geen tweede bron van waarheid.

Zij mogen opnieuw worden opgebouwd uit actuele brondata en autorisatiecontext.

11.8 Ouder-/voogdfrontpage

De ouder-/voogdfrontpage is een overzichts- en oriëntatiepagina.

De frontpage toont compacte samenvattingsblokken, maar voert geen detailacties uit waarvoor eerst een kind, resultaat, geschiedenisregel of live sessie gekozen moet worden.

De frontpage kan onder meer tonen:

  • introblok voor ouder-/voogdcontext;
  • compacte samenvatting van gekoppelde kinderen;
  • compacte resultatensamenvatting;
  • verwijzingen naar Kinderen, Geschiedenis of Online waar ondersteund;
  • systeemnotificaties na normale frontpageload.

De frontpage is read-only voor domeindata.

De frontpage maakt geen ouder-/voogdrelatie aan.

De frontpage accepteert geen uitnodiging.

De frontpage start geen live-meekijksessie.

De frontpage opent geen resultaatdetail zonder vervolgroute en objectselectie.

11.9 Gecombineerde docent-/ouderfrontpage

Bij een gebruiker met zowel Docent- als Ouder-/voogdrol kan een gecombineerde frontpage worden getoond.

Daarbij geldt:

  1. er is één gezamenlijk introblok waar functioneel passend;
  2. docentblokken worden vóór ouder-/voogdblokken getoond;
  3. ouder-/voogdblokken blijven beperkt tot ouder-/voogdcontext;
  4. docentblokken blijven beperkt tot docentcontext;
  5. er wordt geen apart persistent frontpageontwerp per rolcombinatie opgeslagen.

Een gecombineerde frontpage mengt geen autorisaties.

Voorbeelden:

  • een docentblok geeft geen toegang tot alle kindresultaten;
  • een ouder-/voogdblok geeft geen toegang tot docentresultaten buiten oudercontext;
  • een beheerderblok geeft geen live-meekijkrecht;
  • zichtbaarheid van beide bloktypes is geen bewijs dat onderliggende detailroutes dezelfde data tonen.

11.10 Kinderenoverzicht

De pagina Kinderen toont de kinderen waarmee de ingelogde gebruiker in de actieve ouder-/voogdcontext een actieve GuardianStudent-relatie heeft.

De pagina is bedoeld voor:

  • overzicht van gekoppelde kinderen;
  • kindselectie;
  • compacte kindinformatie;
  • doorverwijzing naar geschiedenis;
  • ontkoppelen van de eigen ouder-/voogdrelatie.

De pagina is niet bedoeld voor:

  • oefeningen starten;
  • antwoorden bekijken voordat een resultaatdetail geautoriseerd is;
  • docentstructuren beheren;
  • leerlingniveau-autorisaties wijzigen;
  • relaties aanmaken;
  • inkomende relatie-uitnodigingen verwerken;
  • oefenconfiguraties aanpassen.

11.11 Kindkaart

Een kindkaart vertegenwoordigt één actieve ouder-/voogdrelatie met een leerling.

Een kindkaart kan minimaal tonen:

GegevenBetekenis
Naam / weergavenaamAfgeleid uit het gekoppelde leerlingaccount.
Avatar / initialenPresentatiewaarde, geen autorisatiebewijs.
Gekoppeld sindsRelatie- of acceptatiemoment waar beschikbaar.
GeschiedenisactieRoute naar kindgeschiedenis binnen ouder-/voogdcontext.
OntkoppelactieBevestigde beëindiging van de eigen ouder-/voogdrelatie.
DetailweergaveUitklapbare read-only informatie over kindcontext.

Mockupnamen, initialen, niveaus, docenten en aantallen zijn voorbeelddata.

De productiegegevens worden altijd dynamisch afgeleid uit actuele brondata en autorisatie.

11.12 Kindinformatie

Kindinformatie is read-only.

Een uitklapbare of detailgerichte kindweergave kan onder meer tonen:

  • gekoppeld sinds;
  • laatst gezien of recente activiteit;
  • beschikbare niveaus;
  • huidig niveau waar zichtbaar;
  • gekoppelde docenten waar zichtbaar;
  • compacte oefen- of resultatensamenvattingen;
  • verwijzing naar geschiedenis;
  • verwijzing naar online/livecontext waar toegestaan.

Wanneer een kind meerdere docenten of niveaus heeft, wordt dit als dynamische collectie behandeld.

Het systeem mag niet aannemen dat ieder kind precies één docent of precies één niveau heeft.

Wanneer een gegeven niet zichtbaar of niet beschikbaar is, toont de UI een veilige lege of beperkte toestand.

Oude clientdata mag ontbrekende of ingetrokken gegevens niet blijven tonen.

11.13 Sortering en naamweergave

Sortering en naamweergave zijn presentatievoorkeuren.

Zij mogen:

  • bepalen in welke volgorde kinderen zichtbaar zijn;
  • bepalen welke naamrepresentatie getoond wordt wanneer dit ondersteund is;
  • de lokale gebruikerservaring verbeteren.

Zij mogen niet:

  • relaties aanmaken;
  • relaties beëindigen;
  • autorisaties verruimen;
  • kinderen zichtbaar maken buiten de actieve ouder-/voogdrelatie;
  • resultaten of geschiedenisrecords toevoegen of verbergen buiten de autorisatiegrens;
  • docentcontext wijzigen;
  • leerlingdata muteren.

Wanneer een sorteer- of naamvoorkeur ontbreekt, wordt een veilige standaardpresentatie gebruikt.

11.14 Kind selecteren

Kindselectie is tijdelijke UI-context.

De selectie helpt de gebruiker om vervolgacties te starten, zoals geschiedenis openen of online-informatie bekijken.

Kindselectie is geen persistente autorisatiebron.

Bij iedere vervolgactie controleert de server opnieuw:

  • of de gebruiker is ingelogd;
  • of de actieve rolcontext ouder/voogd is;
  • of het gekozen kind bestaat;
  • of er een actieve GuardianStudent-relatie bestaat;
  • of de gevraagde run, geschiedenis, PDF of livecontext bij dit kind hoort;
  • of de gevraagde actie binnen de ouder-/voogdrol is toegestaan.

11.15 Ontkoppelen

Een ouder/voogd kan de eigen ouder-/voogdrelatie met een kind beëindigen.

Ontkoppelen is een bewuste mutatie binnen het relatiedomein.

Ontkoppelen gebeurt niet via hard delete.

Functioneel betekent ontkoppelen:

  • de UserRelationship wordt soft gedeactiveerd;
  • IsActive wordt false;
  • ontkoppelactor en tijdstip worden vastgelegd;
  • waar ondersteund wordt een reden of context vastgelegd;
  • een RelationshipEvent of vergelijkbare auditregel wordt vastgelegd;
  • bestaande oefenruns, resultaten en geschiedenis blijven bestaan;
  • nieuwe ouder-/voogdinzage vervalt direct.

Ontkoppelen verwijdert geen:

  • leerlingaccount;
  • ouderaccount;
  • oefenruns;
  • resultaten;
  • geschiedenis;
  • PDF-brondata;
  • systeemberichten;
  • auditregels;
  • docentrelaties;
  • vriendschappen;
  • docentniveau-autorisaties.

11.16 Bevestiging bij ontkoppelen

Ontkoppelen vereist een expliciete bevestiging.

De bevestiging moet duidelijk maken dat de ouder/voogd na ontkoppeling geen reguliere inzage meer heeft in het kind via ouder-/voogdcontext.

De bevestiging mag geen technische identifiers of onnodige privacygevoelige details tonen.

Wanneer de relatie tussen openen van de popup en bevestigen al beëindigd is, verwerkt het systeem de actie idempotent of toont een veilige niet-meer-beschikbaarafhandeling.

11.17 Systeemcommunicatie na ontkoppeling

Na ontkoppeling kan het kind via systeemcommunicatie worden geïnformeerd.

Deze communicatie:

  • is informatief;
  • maakt geen nieuwe relatie aan;
  • heropent de relatie niet;
  • maakt geen privéberichtthread aan;
  • activeert geen nieuwe relatie-uitnodiging;
  • is geen autorisatiebron.

De inhoud en route van systeemcommunicatie blijven onderdeel van het centrale berichten- en systeemberichtdomein.

Het openen van het systeembericht door het kind draait de ontkoppeling niet terug.

11.18 Resultaten en geschiedenis

Ouder-/voogdresultaten gebruiken dezelfde historische oefenrunbron als leerling- en docentresultaten.

De ouder-/voogdcontext voegt alleen toe:

  • relatiegebaseerde autorisatie;
  • kindscope;
  • read-only presentatie;
  • filters binnen toegestane dataset;
  • tijdelijke PDF-export binnen oudercontext.

De ouder-/voogdweergave maakt geen aparte resultaatdata aan.

De ouder-/voogdweergave herschrijft geen bestaande runs.

De ouder-/voogdweergave past geen statistieken aan.

11.19 Reikwijdte van resultaten

Een ouder/voogd mag resultaten en geschiedenis over alle historische niveaus van een actief gekoppeld kind raadplegen.

Deze ouder-/voogdinzage is niet beperkt tot:

  • het huidige actieve niveau van het kind;
  • één docentcontext;
  • één actuele docentrelatie;
  • alleen huidige niveauautorisaties.

Daar staat tegenover dat een actieve ouder-/voogdrelatie vereist blijft.

Wanneer de ouder-/voogdrelatie eindigt, vervalt reguliere ouder-/voogdinzage voor nieuwe raadpleeg-, filter-, detail-, export- en liveacties.

Historische runs blijven bestaan, maar zijn niet meer zichtbaar via de beëindigde ouder-/voogdcontext.

11.20 Resultatensamenvatting

Een resultatensamenvatting is een afgeleid readmodel over afgeronde, niet-test runs van één actief gekoppeld kind.

Een samenvatting kan onder meer tonen:

  • totaal aantal afgeronde runs;
  • recent afgeronde oefeningen;
  • totalen goed/fout/Geen idee;
  • verdeling per niveau of categorie waar ondersteund;
  • tijdsperiode waar ondersteund;
  • laatste oefenactiviteit;
  • verwijzing naar volledige geschiedenis.

De teldefinitie moet per samenvattingswaarde eenduidig zijn.

Niet-afgeronde runs tellen niet als historisch resultaat.

Docenttestruns tellen niet als kindresultaat.

Runs buiten de geautoriseerde kindscope tellen niet mee.

11.21 Kindgeschiedenis

Kindgeschiedenis toont afgeronde runs van een actief gekoppeld kind.

De geschiedenis is read-only.

Een geschiedenisregel kan minimaal bevatten:

GegevenBetekenis
AfrondmomentHistorisch moment waarop de run is afgerond.
NiveauHistorische niveaucontext van de run.
CategorieHistorische categoriecontext van de run.
OefeningHistorische oefeningcontext van de run.
Aantal vragenUniform veld uit de run.
Goed / fout / Geen ideeUniforme totalen uit de run.
ResultaatdetailRoute naar read-only detail binnen oudercontext.
PDFTijdelijke export waar toegestaan.

Alleen afgeronde, niet-test runs worden als normale geschiedenisregel getoond.

Niet-afgeronde runs kunnen in online/livecontext relevant zijn, maar niet als historisch resultaat.

11.22 Geschiedenisfilters

Geschiedenisfilters zijn afgeleide readmodelwaarden.

Ondersteunde filters kunnen onder meer zijn:

  • periode;
  • niveau;
  • categorie;
  • oefening;
  • type run waar later expliciet ondersteund.

Filters worden opgebouwd uit de toegestane kinddataset.

Een filterwaarde mag geen toegang afdwingen tot runs buiten die dataset.

Na filterwijziging wordt paginering opnieuw berekend.

Een lege filteruitkomst is een geldige toestand.

11.23 Resultaatdetail

Een resultaatdetail toont één afgeronde run van een actief gekoppeld kind.

Voor toegang moet de server minimaal controleren:

  • ouder/voogd is ingelogd;
  • ouder-/voogdrolcontext is actief;
  • kind bestaat;
  • actieve GuardianStudent-relatie bestaat;
  • run bestaat;
  • run hoort bij het kind;
  • run is afgerond;
  • run is geen docenttestrun;
  • de gevraagde detailactie is toegestaan in ouder-/voogdcontext.

Een run-ID uit een route is nooit voldoende.

Wanneer toegang ontbreekt, wordt geen gedeeltelijke runinhoud getoond.

11.24 Resultaatdetails en statistieken

Resultaatdetail en statistieken gebruiken de historische runcontext.

De weergave kan onder meer bevatten:

  • samenvatting van gebruiker/kind, categorie, oefening en afrondmoment;
  • aantal vragen;
  • goed, fout en Geen idee;
  • vraagdetails;
  • gegeven antwoord;
  • juiste antwoord;
  • resultaatstatus;
  • gemiddelde tijd;
  • mediaan;
  • onder- en bovengrens;
  • uitschieters;
  • totale doorlooptijd;
  • duplicaat- of gedeelde-oefeningcontext waar relevant.

Voor reguliere weergave zijn de opgeslagen uniforme runvelden leidend.

Herberekening uit modulepayload is alleen herstel- of controlelogica en geen normale ouder-/voogdweergave.

11.25 PDF-export binnen oudercontext

PDF-export binnen ouder-/voogdcontext gebruikt dezelfde historische resultaatbron als resultaatdetail.

PDF-export:

  • is read-only;
  • levert een tijdelijke downloadresponse;
  • maakt geen verplicht permanent documentrecord aan;
  • wijzigt geen run;
  • wijzigt geen antwoord;
  • wijzigt geen score;
  • wijzigt geen statistiek;
  • wijzigt geen relatie;
  • wijzigt geen gebruikersinstelling;
  • wijzigt geen mailbox-readstate.

PDF-export is alleen toegestaan wanneer de ouder/voogd op het moment van export nog een actieve ouder-/voogdrelatie met het kind heeft.

Een eerder geopend resultaatdetail geeft geen blijvend exportrecht na ontkoppeling.

11.26 Geen oefenacties vanuit oudercontext

Vanuit ouder-/voogdresultaten, geschiedenis of resultaatdetail zijn de volgende acties niet beschikbaar:

  • Start nieuwe;
  • Verder gaan;
  • antwoord invullen;
  • Geen idee gebruiken;
  • Bekijk resultaat als afrondactie;
  • Maak deze oefening opnieuw;
  • Deel deze oefening;
  • oefening verwijderen;
  • resultaat corrigeren;
  • run heropenen;
  • configuratie aanpassen.

Wanneer dezelfde gebruiker ook docent is, mogen deze acties niet via ouder-/voogdcontext alsnog beschikbaar worden.

11.27 Online-overzicht

De route Online toont gekoppelde kinderen die online of recent actief zijn binnen OefenHub.

Het online-overzicht is een afgeleid readmodel over:

  • actieve ouder-/voogdrelaties;
  • sessie- of aanwezigheidssignalen;
  • actieve oefenruncontext;
  • oefenstatus;
  • livebeschikbaarheid;
  • relevante kind- en niveaucontext waar zichtbaar.

Het openen van het online-overzicht start geen live-meekijksessie.

Het openen van het online-overzicht maakt geen LiveViewAudit aan.

Het online-overzicht wijzigt geen run, voortgang, relatie of status.

11.28 Online kindstatus

Een kind in het online-overzicht kan verschillende functionele toestanden hebben.

ToestandBetekenisLiveactie
Niet onlineGeen recente sessie of aanwezigheid.Geen liveactie.
Online maar niet aan het oefenenKind is aanwezig, maar heeft geen actieve oefenrun.Liveactie uitgeschakeld.
Actieve oefenrunKind is bezig met een niet-afgeronde run in oefencontext.Liveactie kan beschikbaar zijn na hercontrole.
Run net afgerond of onderbrokenOverzichtdata is verouderd.Backend blokkeert start en laat status verversen.
Relatie ingetrokkenKind was eerder zichtbaar, maar autorisatie ontbreekt.Geen data tonen; veilige toegangafhandeling.

De liveknopstatus in de UI is ondersteunend.

Een klik op Kijk live mee controleert opnieuw server-side of live meekijken nog toegestaan is.

11.29 Live meekijken binnen oudercontext

Live meekijken door een ouder/voogd is read-only.

De ouder/voogd kan:

  • actuele vraag volgen;
  • actuele voortgang zien;
  • eerder beantwoorde vragen bekijken waar toegestaan;
  • lokaal door vragen bladeren;
  • terugkeren naar de actuele livevraag;
  • de meekijksessie beëindigen.

De ouder/voogd kan niet:

  • antwoorden invullen;
  • antwoorden wijzigen;
  • score aanpassen;
  • vraagstatus wijzigen;
  • run onderbreken;
  • run afronden;
  • nieuwe vragen genereren;
  • oefenconfiguratie wijzigen.

11.30 Livebeschikbaarheid

Live meekijken is beschikbaar wanneer minimaal geldt:

  • ouder/voogd is ingelogd;
  • ouder-/voogdrolcontext is actief;
  • actieve GuardianStudent-relatie bestaat;
  • live-meekijkenfeature is beschikbaar;
  • kind heeft een actieve oefenrun;
  • run is niet afgerond;
  • run hoort bij het gekoppelde kind;
  • server-side voortgang is beschikbaar;
  • toegang is niet door actuele relatie-, account- of securityregels geblokkeerd.

Een ouder/voogd mag live meekijken bij actieve oefeningen van gekoppelde kinderen, ongeacht welke docent de oefening heeft aangeboden.

Dit verruimt geen docentcontext en geeft geen docentbeheerrrechten.

11.31 LiveViewAudit

Daadwerkelijk gestarte live-meekijksessies worden auditbaar vastgelegd.

Minimaal vast te leggen zijn:

  • viewer;
  • rolcontext;
  • kind;
  • exercise run;
  • startmoment;
  • eindmoment;
  • beëindigingsreden waar functioneel nodig;
  • snapshotnaam of context waar vereist voor historische reconstructie.

Het bepalen van livebeschikbaarheid maakt geen auditrecord aan.

Het openen van het online-overzicht maakt geen auditrecord aan.

Een daadwerkelijke live-start maakt wel een auditrecord aan.

Einde door disconnect, logout, run-einde of reconnect-falen vult het eindmoment idempotent.

11.32 Browse-modus en live-modus

Tijdens live meekijken kan de UI twee functionele weergavemodi ondersteunen.

ModusBetekenis
Live-modusDe meekijker volgt de actuele livevraag volgens server-side voortgang.
Browse-modusDe meekijker bekijkt lokaal een andere vraag dan de actuele livevraag.

Browse-modus is lokale UI-toestand.

Browse-modus wijzigt de run niet.

Browse-modus wijzigt geen voortgang.

Browse-modus wijzigt geen score.

Terugkeren naar actuele livevraag wijzigt alleen de meekijkweergave.

11.33 Verbindingsverlies en beëindiging

Bij verbindingsverlies probeert de applicatie waar ondersteund te reconnecten.

Wanneer herstel niet lukt:

  • wordt de liveweergave veilig beëindigd;
  • wordt de ouder/voogd geïnformeerd via veilige feedback;
  • wordt de run van het kind niet gewijzigd;
  • wordt het auditrecord idempotent afgerond waar nodig;
  • kan de gebruiker terugkeren naar het online-overzicht.

Wanneer de leerling de oefening afrondt, onderbreekt of verlaat, eindigt of verandert de livecontext veilig.

De ouder/voogd krijgt geen mogelijkheid om de run actief voort te zetten.

11.34 Featuretoggles en beschikbaarheid

Sitebrede featuretoggles kunnen bepalen of bepaalde functies beschikbaar zijn.

Voor ouder-/voogdfunctionaliteit zijn met name relevant:

  • live meekijken toegestaan;
  • PDF-export waar als feature beheerd;
  • meldingen beschikbaar waar interactie nodig is;
  • systeemnotificaties waar relevant.

Een featuretoggle wijzigt geen onderliggende domeindata.

Voorbeelden:

  • live meekijken uitschakelen verwijdert geen bestaande LiveViewAudit;
  • PDF-export uitschakelen verwijdert geen resultaten;
  • berichten uitschakelen verwijdert geen bestaande systeemberichten;
  • relatiegegevens blijven bestaan ongeacht zichtbare routebeschikbaarheid.

11.35 Systeemnotificaties en popups

Systeemnotificaties zijn frontpage-overlays en geen mailbox-systeemberichten.

Popupfeedback is actiegerichte feedback via popupkeys en popupregister.

Voor ouder-/voogdflows geldt:

  • systeemnotificaties worden pas na normale frontpage- of contextload beoordeeld;
  • systeemnotificaties blokkeren niet het bepalen van ouder-/voogdcontext;
  • popupteksten worden niet in FO-11 gedupliceerd;
  • usecases en schermdocumentatie verwijzen waar nodig naar popupkeys;
  • autorisatiefouten lekken geen kindnaam, runinhoud, antwoorddata, tokens of payloads.

11.36 Systeemcommunicatie

Ouder-/voogdfunctionaliteit kan systeemcommunicatie veroorzaken in beperkte gevallen.

Voorbeelden:

  • ontkoppeling van een kind;
  • relevante fout- of statuscommunicatie waar functioneel uitgewerkt;
  • eventuele relatiegerelateerde communicatie via het relatiedomein.

Systeemcommunicatie binnen FO-11:

  • is geen privéberichtthread;
  • is geen live-meekijkaudit;
  • is geen vervanging voor relatiegegevens;
  • geeft geen toegang op zichzelf;
  • verwerkt geen onderliggende domeinactie automatisch bij openen.

11.37 Tellers en readmodels

Tellers en samenvattingswaarden binnen ouder-/voogdcontext zijn afgeleid.

Per teller moet minimaal duidelijk zijn:

AspectVraag
ObjectscopeTelt de waarde kinderen, runs, resultaten, online sessies of livebeschikbaarheid?
RelatiecontextIs een actieve GuardianStudent-relatie vereist?
StatusfilterTellen alleen afgeronde runs, actieve relaties of actieve sessies mee?
TestdataWorden docenttestruns uitgesloten?
TijdvensterGeldt een periode of telt alles?
Historische contextWorden oude niveaus en categorieën meegenomen?
Distinct-logicaTelt een kind, relatie, run of resultaatregel uniek?
AutorisatieWordt alleen geteld wat de ouder/voogd mag zien?

Mockupwaarden zijn voorbeelddata.

Een teller mag geen toegang verruimen.

Een badge of teller is geen autorisatiebewijs.

11.38 Audit, history en securitylogging

Ouder-/voogdfunctionaliteit gebruikt audit en history waar daadwerkelijk mutaties of privacygevoelige raadpleegacties plaatsvinden.

Minimaal relevant zijn:

GebeurtenisVastlegging
Ontkoppelen kindRelatieaudit en relationship event.
OntkoppelcommunicatieSysteembericht en relevante berichtstatus.
Live-meekijksessie startenLiveViewAudit.
Live-meekijksessie beëindigenLiveViewAudit.EndedAtUtc of vergelijkbaar.
Toegang geweigerd bij gevoelige actieSecuritylog waar passend zonder gevoelige inhoud.
PDF-exportfoutTechnische logging zonder resultaatinhoud te lekken.

Read-only raadpleging hoeft niet altijd als volledige auditregel te worden opgeslagen, tenzij privacy-, security- of domeinregels dat vereisen.

Logging mag geen antwoordpayloads, tokens, identity-providergegevens of onnodige persoonsgegevens bevatten.

11.39 Privacygrenzen

Ouder-/voogdfunctionaliteit toont gevoelige leerlinginformatie.

Daarom gelden de volgende privacyregels:

  • toon alleen kinderen met actieve ouder-/voogdrelatie;
  • toon geen gedeeltelijke kindinformatie wanneer relatiecontrole faalt;
  • toon geen runinhoud wanneer runautorisatie ontbreekt;
  • toon geen technische identifiers als gebruikersinformatie;
  • toon geen antwoordpayloads in foutmeldingen;
  • toon geen kindnaam in foutfeedback wanneer de relatie ontbreekt;
  • gebruik veilige generieke meldingen bij autorisatiefouten;
  • voorkom dat filters of suggesties namen van niet-gekoppelde kinderen lekken.

11.40 Autorisatie- en veiligheidsregels

Voor FO-11 gelden minimaal de volgende regels.

RegelBetekenis
Server-side contextOuder-/voogdcontext wordt server-side bepaald.
Voortdurende relatiecontroleIedere kind-, resultaat-, export- en liveactie controleert de actieve relatie opnieuw.
Geen clientvertrouwenRouteparameters, filters, bookmarks en browsergeschiedenis verruimen toegang niet.
Read-only resultaatinzageOuder/voogd wijzigt geen run, antwoord, score of statistiek.
Geen oefenuitvoeringOuder/voogd start of hervat geen oefening namens kind.
Geen docentbypassDocentrol geeft geen ouderrechten binnen ouderroutes.
Geen beheerbypassBeheerderrol geeft geen automatische ouder-/voogdinzage.
Geen gedeeltelijke dataBij ontbrekende toegang wordt geen gedeeltelijke resultaat- of kinddata getoond.
Actuele hercontroleEerder getoonde knoppen worden opnieuw gevalideerd bij actie.

11.41 Historische context na wijzigingen

Historische oefenruns blijven bestaan wanneer onderliggende context later wijzigt.

Voorbeelden:

  • docent trekt niveauautorisatie in;
  • categorie wordt gemigreerd;
  • oefening wordt in onderhoud gezet;
  • module wordt gedeactiveerd;
  • kind wijzigt actief niveau;
  • ouder-/voogdrelatie wordt beëindigd;
  • account wordt geanonimiseerd volgens accountregels.

Deze wijzigingen herschrijven bestaande runs niet automatisch.

Wel bepaalt de actuele autorisatie of een ouder/voogd de historische run nog mag raadplegen.

Bij beëindigde ouder-/voogdrelatie vervalt reguliere ouder-/voogdinzage, terwijl de run historisch blijft bestaan voor bevoegde andere contexten.

11.42 Lege toestanden

Lege toestanden zijn normaal wanneer de gebruiker wel toegang heeft tot de route, maar er geen relevante data is.

Voorbeelden:

  • ouder/voogd heeft geen gekoppelde kinderen;
  • geselecteerd kind heeft geen afgeronde runs;
  • filters leveren geen resultaten op;
  • geen online kinderen;
  • kind is online maar niet bezig met een oefening;
  • live meekijken is sitebreed uitgeschakeld;
  • kind heeft geen zichtbare beschikbare niveaus;
  • er zijn geen recente activiteiten;
  • er is geen relevante systeemnotificatie;
  • er is geen PDF-exportactie beschikbaar door feature- of contextregels.

Een lege toestand:

  • is geen autorisatiefout;
  • maakt geen relatie aan;
  • start geen herstelactie zonder gebruiker;
  • toont geen verborgen technische details;
  • kan verwijzen naar een passende vervolgstap waar functioneel toegestaan.

11.43 Fouttoestanden

Fouttoestanden ontstaan wanneer een actie niet veilig of niet consistent kan worden uitgevoerd.

Voorbeelden:

  • ouder-/voogdrolcontext ontbreekt;
  • actieve relatie ontbreekt;
  • kind bestaat niet;
  • kind hoort niet bij ouder/voogd;
  • run bestaat niet;
  • run hoort niet bij het geselecteerde kind;
  • run is niet afgerond terwijl resultaatdetail wordt gevraagd;
  • run is een docenttestrun;
  • PDF-export faalt;
  • livefeature is uitgeschakeld;
  • actieve run is net afgerond;
  • SignalR-verbinding valt weg;
  • ontkoppeling is intussen al verwerkt;
  • accountstatus blokkeert toegang;
  • routeparameter is gemanipuleerd;
  • filterwaarde valt buiten toegestane dataset.

Bij fouttoestanden geldt:

  • toon geen stacktrace;
  • toon geen tokens;
  • toon geen interne identifiers;
  • toon geen antwoordpayloads;
  • toon geen gedeeltelijke resultaatdata;
  • toon geen kindnaam wanneer autorisatie ontbreekt;
  • laat de run van het kind ongemoeid;
  • log technisch waar nodig zonder gevoelige inhoud.

11.44 Relatie tot FO-04 Frontpages en overzichtsschermen

FO-04 beschrijft frontpages als overzichts- en oriëntatiepagina’s.

FO-11 gebruikt dat principe voor de ouder-/voogdfrontpage.

De ouder-/voogdfrontpage:

  • is read-only;
  • toont samenvattingen;
  • verwijst naar achterliggende routes;
  • voert geen detailmutaties uit;
  • gebruikt geen frontpage als autorisatiebron;
  • wordt bij combinatierollen runtime samengesteld.

11.45 Relatie tot FO-06 Relatiebeheer

FO-06 blijft bronhoudend voor relaties, uitnodigingen, acceptatie, afwijzing, relatie-events en ontkoppelregels.

FO-11 gebruikt alleen de actieve ouder-/voogdrelatie als autorisatiebron.

Het aanmaken of accepteren van een ouder-/voogdrelatie hoort niet in FO-11.

Het beëindigen van de relatie vanuit oudercontext raakt FO-11, maar wordt relationeel vastgelegd volgens FO-06.

11.46 Relatie tot FO-08 Leerling: oefenen, voortgang en resultaten

FO-08 blijft bronhoudend voor leerlingruns, vraagbeantwoording, Geen idee, voortgang, onderbreken, afronden en resultaatvorming.

FO-11 leest alleen bestaande run- en resultaatdata.

Een ouder/voogd kan de leerlingflow niet overnemen.

11.47 Relatie tot FO-13 Berichten, communicatie en notificaties

FO-13 blijft bronhoudend voor mailbox-systeemberichten, privéberichtthreads, readstates, badges, systeemnotificaties en realtime communicatie.

FO-11 kan systeemcommunicatie veroorzaken bij ontkoppeling, maar maakt geen eigen berichtendomein.

Ontkoppeling aan het kind communiceren is geen privéberichtthread.

11.48 Relatie tot FO-15 Live meekijken

FO-15 beschrijft live meekijken als generiek read-only domein voor bevoegde docenten en ouders/voogden.

FO-11 beschrijft de ouder-/voogdgrens daarvan.

Voor ouder/voogd is de actieve GuardianStudent-relatie de autorisatiegrens.

De server-side opgeslagen voortgang blijft de bron van waarheid.

11.49 Relatie tot FO-18 PDF-export en resultaatpresentatie

FO-18 beschrijft resultaatweergave en PDF-export over de historische runcontext.

FO-11 past daarop ouder-/voogdautorisatie toe.

PDF-export binnen oudercontext gebruikt dezelfde historische resultaatdata als resultaatdetail, maar mag alleen wanneer de actieve ouder-/voogdrelatie op het moment van export nog geldig is.

11.50 Gerelateerde bronverwijzingen

BronLink
Technisch Ontwerp — rolflowsRollenflows technisch
Technisch Ontwerp — readmodels en tellersReadmodels, tellers, badges, caching en materialisatie
Technisch Ontwerp — live meekijkenRealtime live meekijken met SignalR
Technisch Ontwerp — oefenruns en resultatenOefenruns, voortgang, resultaten, statistieken en PDF-brondata
Usecases — ouder/voogd frontpage en contextOuder/voogd — frontpage en context
UC-OVG-FP-001 — Ouder-/voogd-frontpage bekijkenOuder-/voogd-frontpage bekijken
UC-OVG-FP-002 — Ouder-/voogdcontext bepalenOuder-/voogdcontext bepalen
UC-OVG-FP-003 — Kinderenoverzichtsamenvatting tonenKinderenoverzichtsamenvatting tonen
UC-OVG-FP-004 — Resultatenoverzichtsamenvatting tonenResultatenoverzichtsamenvatting tonen
UC-OVG-FP-005 — Gecombineerde docent-ouder-frontpage tonenGecombineerde docent-ouder-frontpage tonen
Usecases — kinderen en koppelingenKinderen en koppelingen
UC-OVG-KIND-001 — Kinderenoverzicht bekijkenKinderenoverzicht bekijken
UC-OVG-KIND-002 — Kinderen sorteren en naamweergave toepassenKinderen sorteren en naamweergave toepassen
UC-OVG-KIND-003 — Kind selecterenKind selecteren
UC-OVG-KIND-004 — Kindinformatie bekijkenKindinformatie bekijken
UC-OVG-KIND-005 — Kind ontkoppelenKind ontkoppelen
UC-OVG-KIND-006 — Ontkoppeling aan kind communicerenOntkoppeling aan kind communiceren
Usecases — ouder/voogd resultaten en geschiedenisResultaten en geschiedenis
UC-OVG-RES-001 — Resultatensamenvatting van kind bekijkenResultatensamenvatting van kind bekijken
UC-OVG-RES-002 — Kindgeschiedenis openenKindgeschiedenis openen
UC-OVG-RES-003 — Geschiedenis filteren op niveau, categorie en oefeningGeschiedenis filteren op niveau, categorie en oefening
UC-OVG-RES-004 — Afgeronde oefenrun van kind bekijkenAfgeronde oefenrun van kind bekijken
UC-OVG-RES-005 — Resultaatdetails en statistieken bekijkenResultaatdetails en statistieken bekijken
UC-OVG-RES-006 — Resultaat als PDF downloaden binnen oudercontextResultaat als PDF downloaden binnen oudercontext
UC-OVG-RES-007 — Geen toegang zonder actieve ouder-/voogdrelatieGeen toegang zonder actieve ouder-/voogdrelatie
Usecases — ouder/voogd online en live meekijkenOnline en live meekijken
UC-OVG-LIVE-001 — Online kinderenoverzicht bekijkenOnline kinderenoverzicht bekijken
UC-OVG-LIVE-002 — Live meekijken-beschikbaarheid bepalenLive meekijken-beschikbaarheid bepalen
UC-OVG-LIVE-003 — Live meekijksessie startenLive meekijksessie starten
UC-OVG-LIVE-004 — Live voortgang van kind volgenLive voortgang van kind volgen
UC-OVG-LIVE-005 — Door vragen bladeren tijdens live meekijkenDoor vragen bladeren tijdens live meekijken
UC-OVG-LIVE-006 — Terugkeren naar actuele live vraagTerugkeren naar actuele live vraag
UC-OVG-LIVE-007 — Live meekijksessie beëindigenLive meekijksessie beëindigen
UC-OVG-LIVE-008 — Live verbinding verbroken afhandelenLive verbinding verbroken afhandelen
Schermdocumentatie — ouder/voogd frontpageOuder/voogd frontpage
Schermdocumentatie — ouder/voogd ook docentOuder/voogd ook docent
Schermdocumentatie — kinderenKinderen
Schermdocumentatie — onlineOnline
Database-informatie — relatiebeheerRelatiebeheer
Database-informatie — oefenruns, delen en voortgangOefenruns, delen en voortgang
Database-informatie — audit, historie en technische uitgangspuntenAudit, historie en technische uitgangspunten
FO — rollen, context en autorisatieRollen, context en autorisatie
FO — frontpages en overzichtsschermenFrontpages en overzichtsschermen
FO — relatiebeheerRelatiebeheer
FO — leerling: oefenen, voortgang en resultatenLeerling: oefenen, voortgang en resultaten
FO — docentfunctionaliteitDocentfunctionaliteit
FO — berichten, communicatie en notificatiesBerichten, communicatie en notificaties
FO — live meekijkenLive meekijken
FO — PDF-export en resultaatpresentatiePDF-export en resultaatpresentatie
Ontwerpbron — autorisatiematrixAutorisatiematrix
Ontwerpbron — business rulesBusiness rules
Ontwerpbron — popup-registerPopup-register