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.
| Onderdeel | Binnen FO-11 | Bronhoudend elders |
|---|---|---|
| Ouder-/voogdcontext | Bepaalt welke ouder-/voogdfuncties beschikbaar zijn binnen de actieve rolcontext. | Rollen, sessie en autorisatie. |
| Gekoppelde kinderen | Toont alleen kinderen met actieve GuardianStudent-relatie. | Relatiebeheer. |
| Kindselectie | Tijdelijke UI-context voor vervolgacties. | Geen persistente bron; server-side relatiecontrole blijft leidend. |
| Kindinformatie | Read-only samenvatting van profiel-, relatie- en oefeninformatie. | Account-, relatie-, docentstructuur- en oefenrundata. |
| Resultaten | Read-only presentatie van bestaande afgeronde runs. | ExerciseRuns en voortgang/statistiekgegevens. |
| Geschiedenis | Read-only overzicht en filtering van afgeronde kindruns. | Oefenrun- en resultaatdomein. |
| PDF-export | Tijdelijke download van historisch resultaat. | PDF-export en resultaatpresentatie. |
| Online-overzicht | Afgeleid overzicht van aanwezigheid, actieve run en meekijkbaarheid. | Sessies, oefenruns en live-readmodels. |
| Live meekijken | Read-only volgen van actieve run. | Oefenrunvoortgang en live-meekijkdomein. |
| Ontkoppelen | Soft-deactivation van de eigen ouder-/voogdrelatie. | Relatiebeheer en relatie-events. |
| Systeemcommunicatie | Informeren 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.
| Bronlaag | Betekenis voor FO-11 |
|---|---|
| FO | Beschrijft samenhang, grenzen, rolcontext, read-only gedrag en domeinregels. |
| Usecases | Beschrijven detailflows voor frontpage, kinderen, resultaten, geschiedenis, PDF en live meekijken. |
| Schermdocumentatie | Beschrijft zichtbare onderdelen, acties, lege toestanden en schermspecifieke waarden. |
| Database-informatie | Beschrijft relatiegegevens, oefenruns, voortgang, audit en readmodelbronnen. |
| Ontwerpbronnen | Beschrijven autorisatie, business rules, popupkeys, statusmodellen, commands en events waar relevant. |
| Mockups | Ondersteunen 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.
| Combinatie | Regel |
|---|---|
| Ouder/voogd + Docent | Ouder-/voogdroutes geven geen impliciete docentinzage. Docentroutes geven geen impliciete ouder-/voogdinzage. |
| Ouder/voogd + Beheerder | Beheerdercontext geeft niet automatisch ouder-/voogdrelaties of live-meekijkrecht. |
| Docent + Ouder/voogd met hetzelfde kind | De docentrelatie vervangt de ouder-/voogdrelatie niet en omgekeerd. |
| Beheerder + Docent + Ouder/voogd | Frontpageblokken 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 / readmodel | Type | Functionele betekenis |
|---|---|---|
UserRelationships | Brondata | Actieve of beëindigde ouder-/voogdrelatie. |
RelationshipEvents | Audit | Gebeurtenissen rond uitnodigingen, acceptatie, afwijzing en ontkoppeling. |
ExerciseRuns | Brondata | Historische en lopende oefenruns van het kind. |
ExerciseRunProgress | Brondata / voortgang | Vraagvoortgang, antwoorden, timing en livevoortgang. |
GuardianChildReadModel | Readmodel | Afgeleid overzicht van actief gekoppelde kinderen. |
GuardianResultSummaryReadModel | Readmodel | Afgeleide resultatensamenvatting per gekoppeld kind. |
GuardianHistoryReadModel | Readmodel | Afgeleide geschiedenisregels binnen toegestane kinddataset. |
GuardianHistoryFilterReadModel | Readmodel | Filteropties op basis van toegestane kindruns. |
GuardianRunDetailReadModel | Readmodel | Read-only detailweergave van één afgeronde run. |
GuardianResultStatisticsReadModel | Readmodel | Afgeleide of opgeslagen statistieken voor resultaatdetail. |
GuardianPdfExportModel | Tijdelijk exportmodel | Tijdelijke PDF-bron voor geautoriseerde run. |
GuardianOnlineOverviewReadModel | Readmodel | Online- en oefenstatus van gekoppelde kinderen. |
LiveAvailabilityReadModel | Readmodel | Afgeleide beschikbaarheid van live meekijken. |
LiveViewAudit | Audit | Registratie van daadwerkelijk gestarte live-meekijksessies. |
SystemMessages | Communicatie | Systeemcommunicatie 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,GeschiedenisofOnlinewaar 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:
- er is één gezamenlijk introblok waar functioneel passend;
- docentblokken worden vóór ouder-/voogdblokken getoond;
- ouder-/voogdblokken blijven beperkt tot ouder-/voogdcontext;
- docentblokken blijven beperkt tot docentcontext;
- 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:
| Gegeven | Betekenis |
|---|---|
| Naam / weergavenaam | Afgeleid uit het gekoppelde leerlingaccount. |
| Avatar / initialen | Presentatiewaarde, geen autorisatiebewijs. |
| Gekoppeld sinds | Relatie- of acceptatiemoment waar beschikbaar. |
| Geschiedenisactie | Route naar kindgeschiedenis binnen ouder-/voogdcontext. |
| Ontkoppelactie | Bevestigde beëindiging van de eigen ouder-/voogdrelatie. |
| Detailweergave | Uitklapbare 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
UserRelationshipwordt soft gedeactiveerd; IsActivewordtfalse;- ontkoppelactor en tijdstip worden vastgelegd;
- waar ondersteund wordt een reden of context vastgelegd;
- een
RelationshipEventof 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:
| Gegeven | Betekenis |
|---|---|
| Afrondmoment | Historisch moment waarop de run is afgerond. |
| Niveau | Historische niveaucontext van de run. |
| Categorie | Historische categoriecontext van de run. |
| Oefening | Historische oefeningcontext van de run. |
| Aantal vragen | Uniform veld uit de run. |
| Goed / fout / Geen idee | Uniforme totalen uit de run. |
| Resultaatdetail | Route naar read-only detail binnen oudercontext. |
| Tijdelijke 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 ideegebruiken;Bekijk resultaatals 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.
| Toestand | Betekenis | Liveactie |
|---|---|---|
| Niet online | Geen recente sessie of aanwezigheid. | Geen liveactie. |
| Online maar niet aan het oefenen | Kind is aanwezig, maar heeft geen actieve oefenrun. | Liveactie uitgeschakeld. |
| Actieve oefenrun | Kind is bezig met een niet-afgeronde run in oefencontext. | Liveactie kan beschikbaar zijn na hercontrole. |
| Run net afgerond of onderbroken | Overzichtdata is verouderd. | Backend blokkeert start en laat status verversen. |
| Relatie ingetrokken | Kind 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.
| Modus | Betekenis |
|---|---|
| Live-modus | De meekijker volgt de actuele livevraag volgens server-side voortgang. |
| Browse-modus | De 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:
| Aspect | Vraag |
|---|---|
| Objectscope | Telt de waarde kinderen, runs, resultaten, online sessies of livebeschikbaarheid? |
| Relatiecontext | Is een actieve GuardianStudent-relatie vereist? |
| Statusfilter | Tellen alleen afgeronde runs, actieve relaties of actieve sessies mee? |
| Testdata | Worden docenttestruns uitgesloten? |
| Tijdvenster | Geldt een periode of telt alles? |
| Historische context | Worden oude niveaus en categorieën meegenomen? |
| Distinct-logica | Telt een kind, relatie, run of resultaatregel uniek? |
| Autorisatie | Wordt 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:
| Gebeurtenis | Vastlegging |
|---|---|
| Ontkoppelen kind | Relatieaudit en relationship event. |
| Ontkoppelcommunicatie | Systeembericht en relevante berichtstatus. |
| Live-meekijksessie starten | LiveViewAudit. |
| Live-meekijksessie beëindigen | LiveViewAudit.EndedAtUtc of vergelijkbaar. |
| Toegang geweigerd bij gevoelige actie | Securitylog waar passend zonder gevoelige inhoud. |
| PDF-exportfout | Technische 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.
| Regel | Betekenis |
|---|---|
| Server-side context | Ouder-/voogdcontext wordt server-side bepaald. |
| Voortdurende relatiecontrole | Iedere kind-, resultaat-, export- en liveactie controleert de actieve relatie opnieuw. |
| Geen clientvertrouwen | Routeparameters, filters, bookmarks en browsergeschiedenis verruimen toegang niet. |
| Read-only resultaatinzage | Ouder/voogd wijzigt geen run, antwoord, score of statistiek. |
| Geen oefenuitvoering | Ouder/voogd start of hervat geen oefening namens kind. |
| Geen docentbypass | Docentrol geeft geen ouderrechten binnen ouderroutes. |
| Geen beheerbypass | Beheerderrol geeft geen automatische ouder-/voogdinzage. |
| Geen gedeeltelijke data | Bij ontbrekende toegang wordt geen gedeeltelijke resultaat- of kinddata getoond. |
| Actuele hercontrole | Eerder 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
| Bron | Link |
|---|---|
| Technisch Ontwerp — rolflows | Rollenflows technisch |
| Technisch Ontwerp — readmodels en tellers | Readmodels, tellers, badges, caching en materialisatie |
| Technisch Ontwerp — live meekijken | Realtime live meekijken met SignalR |
| Technisch Ontwerp — oefenruns en resultaten | Oefenruns, voortgang, resultaten, statistieken en PDF-brondata |
| Usecases — ouder/voogd frontpage en context | Ouder/voogd — frontpage en context |
| UC-OVG-FP-001 — Ouder-/voogd-frontpage bekijken | Ouder-/voogd-frontpage bekijken |
| UC-OVG-FP-002 — Ouder-/voogdcontext bepalen | Ouder-/voogdcontext bepalen |
| UC-OVG-FP-003 — Kinderenoverzichtsamenvatting tonen | Kinderenoverzichtsamenvatting tonen |
| UC-OVG-FP-004 — Resultatenoverzichtsamenvatting tonen | Resultatenoverzichtsamenvatting tonen |
| UC-OVG-FP-005 — Gecombineerde docent-ouder-frontpage tonen | Gecombineerde docent-ouder-frontpage tonen |
| Usecases — kinderen en koppelingen | Kinderen en koppelingen |
| UC-OVG-KIND-001 — Kinderenoverzicht bekijken | Kinderenoverzicht bekijken |
| UC-OVG-KIND-002 — Kinderen sorteren en naamweergave toepassen | Kinderen sorteren en naamweergave toepassen |
| UC-OVG-KIND-003 — Kind selecteren | Kind selecteren |
| UC-OVG-KIND-004 — Kindinformatie bekijken | Kindinformatie bekijken |
| UC-OVG-KIND-005 — Kind ontkoppelen | Kind ontkoppelen |
| UC-OVG-KIND-006 — Ontkoppeling aan kind communiceren | Ontkoppeling aan kind communiceren |
| Usecases — ouder/voogd resultaten en geschiedenis | Resultaten en geschiedenis |
| UC-OVG-RES-001 — Resultatensamenvatting van kind bekijken | Resultatensamenvatting van kind bekijken |
| UC-OVG-RES-002 — Kindgeschiedenis openen | Kindgeschiedenis openen |
| UC-OVG-RES-003 — Geschiedenis filteren op niveau, categorie en oefening | Geschiedenis filteren op niveau, categorie en oefening |
| UC-OVG-RES-004 — Afgeronde oefenrun van kind bekijken | Afgeronde oefenrun van kind bekijken |
| UC-OVG-RES-005 — Resultaatdetails en statistieken bekijken | Resultaatdetails en statistieken bekijken |
| UC-OVG-RES-006 — Resultaat als PDF downloaden binnen oudercontext | Resultaat als PDF downloaden binnen oudercontext |
| UC-OVG-RES-007 — Geen toegang zonder actieve ouder-/voogdrelatie | Geen toegang zonder actieve ouder-/voogdrelatie |
| Usecases — ouder/voogd online en live meekijken | Online en live meekijken |
| UC-OVG-LIVE-001 — Online kinderenoverzicht bekijken | Online kinderenoverzicht bekijken |
| UC-OVG-LIVE-002 — Live meekijken-beschikbaarheid bepalen | Live meekijken-beschikbaarheid bepalen |
| UC-OVG-LIVE-003 — Live meekijksessie starten | Live meekijksessie starten |
| UC-OVG-LIVE-004 — Live voortgang van kind volgen | Live voortgang van kind volgen |
| UC-OVG-LIVE-005 — Door vragen bladeren tijdens live meekijken | Door vragen bladeren tijdens live meekijken |
| UC-OVG-LIVE-006 — Terugkeren naar actuele live vraag | Terugkeren naar actuele live vraag |
| UC-OVG-LIVE-007 — Live meekijksessie beëindigen | Live meekijksessie beëindigen |
| UC-OVG-LIVE-008 — Live verbinding verbroken afhandelen | Live verbinding verbroken afhandelen |
| Schermdocumentatie — ouder/voogd frontpage | Ouder/voogd frontpage |
| Schermdocumentatie — ouder/voogd ook docent | Ouder/voogd ook docent |
| Schermdocumentatie — kinderen | Kinderen |
| Schermdocumentatie — online | Online |
| Database-informatie — relatiebeheer | Relatiebeheer |
| Database-informatie — oefenruns, delen en voortgang | Oefenruns, delen en voortgang |
| Database-informatie — audit, historie en technische uitgangspunten | Audit, historie en technische uitgangspunten |
| FO — rollen, context en autorisatie | Rollen, context en autorisatie |
| FO — frontpages en overzichtsschermen | Frontpages en overzichtsschermen |
| FO — relatiebeheer | Relatiebeheer |
| FO — leerling: oefenen, voortgang en resultaten | Leerling: oefenen, voortgang en resultaten |
| FO — docentfunctionaliteit | Docentfunctionaliteit |
| FO — berichten, communicatie en notificaties | Berichten, communicatie en notificaties |
| FO — live meekijken | Live meekijken |
| FO — PDF-export en resultaatpresentatie | PDF-export en resultaatpresentatie |
| Ontwerpbron — autorisatiematrix | Autorisatiematrix |
| Ontwerpbron — business rules | Business rules |
| Ontwerpbron — popup-register | Popup-register |