Ouder/voogd — Online en live meekijken
Dit subdomein beschrijft hoe een ouder/voogd online gekoppelde kinderen ziet en live meekijkt met een actieve oefenrun. De meekijkfunctie is volledig read-only. De ouder/voogd kan de actuele voortgang volgen, door vragen bladeren en terugkeren naar de actuele livevraag, maar kan geen antwoord, score, voortgang, oefenstatus of resultaat wijzigen.
De server-side opgeslagen voortgang van de oefenrun blijft de bron van waarheid. SignalR of gelijkwaardige realtimecommunicatie is uitsluitend transport voor updates. Het starten en beëindigen van een live-meekijksessie wordt auditbaar vastgelegd via LiveViewAudit.
Usecases
| Usecase | Naam | Omschrijving |
|---|
| UC-OVG-LIVE-001 | Online kinderenoverzicht bekijken | Toont gekoppelde kinderen met online- en oefenstatus. |
| UC-OVG-LIVE-002 | Live meekijken-beschikbaarheid bepalen | Bepaalt server-side of Kijk live mee beschikbaar is. |
| UC-OVG-LIVE-003 | Live meekijksessie starten | Start een read-only live-meekijksessie en maakt LiveViewAudit aan. |
| UC-OVG-LIVE-004 | Live voortgang van kind volgen | Toont voortgangsupdates uit de opgeslagen oefenvoortgang. |
| UC-OVG-LIVE-005 | Door vragen bladeren tijdens live meekijken | Laat de ouder/voogd lokaal door vragen bladeren zonder de run te beïnvloeden. |
| UC-OVG-LIVE-006 | Terugkeren naar actuele live vraag | Zet de weergave terug naar de actuele livevraag. |
| UC-OVG-LIVE-007 | Live meekijksessie beëindigen | Beëindigt een live-meekijksessie auditbaar en idempotent. |
| UC-OVG-LIVE-008 | Live verbinding verbroken afhandelen | Handelt verbindingsverlies, herverbindingspogingen en veilige beëindiging af. |
Relevante schermdocumentatie
| Scherm | Relevantie |
|---|
| Ouder/voogd — Online | Hoofdingang voor online kinderen en live meekijken. |
| Ouder/voogd — Live meekijkweergave | Read-only weergave van actuele vraag, voortgang en vraaglijst. |
| Ouder/voogd — Kinderen | Context voor gekoppelde kinderen; relatievorming en kinddetails vallen buiten dit subdomein. |
| Generiek — Systeemnotificaties / Popups | Alleen relevant voor veilige feedback bij niet-beschikbaarheid, sessie-einde of verbindingsverlies. |
Domeinafbakening
| Onderdeel | Afbakening |
|---|
| Leerling / Oefenen en voortgang | De leerlingflow schrijft antwoorden, voortgang, runstatus en resultaten. Ouder/voogd kijkt alleen mee. |
| Docent / Online en live meekijken | De technische liveweergave kan gedeelde componenten gebruiken, maar docentautorisatie blijft beperkt tot docentcontext en niveauautorisaties. |
| Ouder/voogd / Kinderen en koppelingen | Beheert overzicht, kindinformatie en ontkoppelen. Live meekijken gebruikt alleen de bestaande actieve ouder-/voogdrelatie. |
| Generiek / Relaties | Relatie-uitnodigingen, acceptatie en relatie-lifecycle blijven bronhoudend in het generieke relatiedomein. |
| Beheerder / Features en systeemnotificaties | De sitebrede featuretoggle voor live meekijken wordt daar beheerd; ouder/voogd-usecases lezen alleen de actuele beschikbaarheid. |
Uitgangspunten
| Onderwerp | Regel |
|---|
| Autorisatie | Een actieve ouder-/voogdrelatie is vereist voor online inzage en live meekijken. |
| Context | De ouder-/voogdcontext wordt server-side bepaald en mag niet uit clientstate worden afgeleid. |
| Scope van zichtbaarheid | Een ouder/voogd mag live meekijken bij alle actieve oefeningen van gekoppelde kinderen, ongeacht welke docent de oefening heeft aangeboden. |
| Read-only | De ouder/voogd kan geen antwoord, score, voortgang, runstatus, oefenconfiguratie of resultaat wijzigen. |
| Bron van waarheid | ExerciseRuns en ExerciseRunProgress blijven leidend voor actuele voortgang en resultaten. |
| Realtime | SignalR transporteert updates; SignalR is geen opslaglaag en geen autorisatiebron. |
| Audit | Daadwerkelijk gestarte live sessies worden vastgelegd via LiveViewAudit met rolcontext en snapshotnaam. |
| Featuretoggle | Wanneer live meekijken sitebreed is uitgeschakeld, worden liveacties niet beschikbaar gemaakt. |
Readmodel- en tellerdefinities
| Waarde | Definitie |
|---|
| Online kind | Actief gekoppeld kind met een recente sessie of realtime aanwezigheid volgens het online-readmodel. |
| Actieve oefenrun | Niet-afgeronde run waarbij het kind zich actueel in de oefencontext bevindt. |
| Live beschikbaar | Actieve ouder-/voogdrelatie, actieve live-feature en actieve oefenrun bij het gekoppelde kind. |
| Open live sessie | LiveViewAudit-record met StartedAtUtc en zonder EndedAtUtc. |
| Beëindigde live sessie | LiveViewAudit-record waarbij EndedAtUtc is gevuld. |
| Browse-modus | Lokale UI-stand waarin de meekijker een andere vraag bekijkt dan de actuele livevraag. |
| Live-modus | UI-stand waarin de meekijker de actuele vraag volgt volgens server-side voortgang. |
Bijzondere regels
- Het openen van het online-overzicht start geen live-meekijksessie.
- Het bepalen van livebeschikbaarheid maakt geen
LiveViewAudit aan.
- Een ouder/voogd zonder online kinderen ziet een geldige lege toestand.
- Een gekoppeld kind dat online is maar niet oefent, krijgt geen actieve liveknop.
- Een live-start herhaalt altijd de autorisatie en vertrouwt niet op een eerder getoonde knopstatus.
- Gelijktijdige bevoegde meekijkers zijn toegestaan.
- Verbindingsverlies, terugnavigeren, logout en run-einde beëindigen de meekijksessie zonder de oefenrun te wijzigen.
- Het beëindigen van live meekijken is idempotent: een reeds beëindigde sessie wordt niet opnieuw beëindigd.
- Popupteksten, knopteksten, inputlabels en themakeuzes worden niet in usecases gedupliceerd; usecases verwijzen alleen naar
PopupKey.
Diagramgebruik
| Diagramtype | Toepassing binnen dit subdomein |
|---|
| State diagram | Alleen inhoudelijk gebruikt bij de lifecycle van een daadwerkelijke live-meekijksessie of verbinding. Read-only overzichts- en beschikbaarheidsflows wijzigen geen persistent statusobject. |
| Decision flow | Gebruikt voor autorisatie, beschikbaarheid, live-start, browsegedrag, sessie-einde en reconnect-beslissingen. |
| Data lifecycle diagram | Gebruikt om te tonen welke bestaande brondata wordt gelezen en waar echte mutaties plaatsvinden, zoals LiveViewAudit. |
| Sequence diagrammen | Gebruikt voor interacties tussen ouder/voogd, frontend, backend, database en realtime service. |