Skip to main content

UC-OVG-LIVE-003 — Live meekijksessie starten

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-LIVE-003
NaamLive meekijksessie starten
DomeinOuder/voogd / Online en live meekijken
Primaire actorOuder/voogd
Secundaire actor(en)Frontend, backend, database, realtime service
RolcontextActieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenOnline, Live meekijkweergave
Gerelateerde usecasesUC-OVG-LIVE-002, UC-OVG-LIVE-004, UC-DOC-LIVE-003
Primaire entiteitenUserRelationships, ExerciseRuns, LiveViewAudit, SignalRConnections
Secundaire entiteiten / eventsLiveViewStarted, GuardianLiveSessionReadModel
Gerelateerde popupsPOP-OVG-LIVE-ACCESS-DENIED, POP-OVG-LIVE-START-ERROR, POP-OVG-LIVE-SESSION-ENDED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een ouder/voogd bewust een live-meekijksessie start bij een gekoppeld kind dat op dat moment met een oefening bezig is.

Bij start wordt de autorisatie opnieuw server-side gecontroleerd en wordt een LiveViewAudit-record aangemaakt met ouder-/voogdrolcontext en snapshotnaam. De sessie is volledig read-only.

Uitgangspunten

  • Start vereist een bewuste actie.
  • Start vereist een actieve ouderrelatie en actieve run.
  • LiveViewAudit legt het startmoment vast.
  • SignalR is transport, niet de bron van waarheid.
  • De meekijker kan de oefening niet beïnvloeden.

3. Scope

Deze usecase beschrijft:

  • starten van een live-meekijksessie;
  • aanmaken van LiveViewAudit-startrecord;
  • openen van liveweergave;
  • starten van realtime subscription;
  • tonen van actuele vraagcontext.

Deze usecase beschrijft niet:

  • voortgang wijzigen;
  • antwoord geven namens kind;
  • resultaat corrigeren;
  • nieuwe oefening starten.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Docent / Online en live meekijkenDe technische liveweergave kan gelijkend zijn, maar docentautorisatie blijft beperkt tot eigen docentcontext en niveauautorisaties.
Leerling / Oefenen en voortgangDe leerlingrun en voortgang worden door de leerlingflow geschreven; ouder/voogd kijkt alleen read-only mee.
Generiek / RelatiesDe actieve ouder-/voogdrelatie bepaalt de toegang; relatievorming en uitnodigingen blijven buiten deze live-usecases.
Technische realtime-laagSignalR transporteert updates; de server-side opgeslagen voortgang blijft bron van waarheid.

4. Pre-condities

| 001 | Liveknop is beschikbaar volgens actuele server-side controle. | | 002 | Kind heeft een actieve oefenrun. | | 003 | Ouderrelatie is actief. | | 004 | Live-feature is ingeschakeld. |

5. Post-condities

| 001 | Liveweergave is geopend. | | 002 | LiveViewAudit.StartedAtUtc is vastgelegd. | | 003 | Realtime subscription is actief of fout is veilig afgehandeld. | | 004 | Geen oefenrun is gewijzigd. |

6. Trigger

De ouder/voogd klikt op Kijk live mee bij een actief oefenend kind.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1Ouder/voogdKlikt Kijk live meeFrontend vraagt live-startChildId / RunId
2BackendHerhaalt relatie-, feature- en runcontroleStart is toegestaan of veilig geweigerdUserRelationships, SiteFeatureToggles, ExerciseRuns
3DatabaseMaakt LiveViewAudit-recordStart is auditbaarLiveViewAudit
4BackendLaadt actuele voortgangStartviewmodel wordt opgebouwdExerciseRunProgress
5Realtime serviceStart subscriptionUpdates kunnen worden ontvangenSignalRConnections
6FrontendToont liveweergaveOuder/voogd kijkt read-only meeGuardianLiveSessionReadModel

7.1 Scherm- en routegedrag

  • De Online-pagina gebruikt ouder-/voogdcontext als actieve rol-ingang.
  • De liveweergave is volledig read-only en bevat geen antwoord- of interventieacties.
  • Actuele status wordt na relevante gebeurtenissen opnieuw afgeleid uit server-side voortgang.
  • Bij gecombineerde rollen bepaalt de gekozen contexttab welke dataset en filters zichtbaar zijn.

8. Alternatieve en exceptionele processtromen

| 001 | Run eindigt net voor start: liveweergave opent niet en sessie-afgelopenafhandeling wordt getoond. | | 002 | Relatie vervalt: start wordt geweigerd. | | 003 | SignalR-start faalt nadat audit is aangemaakt: auditrecord wordt idempotent beëindigd. | | 004 | Meerdere ouders starten tegelijk: gelijktijdige sessies zijn toegestaan binnen eigen autorisatie. | | 005 | Kind hervat een bestaande run: dit geldt functioneel als live wanneer de run actief is. |

8.1 Afhandeling van verouderde of ongeldige clientstate

  • De backend herhaalt autorisatie bij iedere raadpleeg-, filter-, export- of liveactie.
  • Oude routeparameters, browserselecties en clientcache worden genegeerd wanneer de actuele server-side context geen toegang geeft.
  • De frontend mag het scherm herstellen door het actuele readmodel opnieuw op te vragen.

9. Business rules

| 001 | LiveViewAudit is verplicht bij daadwerkelijke start. | | 002 | Per live sessie worden viewer, rolcontext, kind, run, start en later einde vastgelegd. | | 003 | Ouder/voogd mag alle live oefeningen van gekoppelde kinderen volgen. | | 004 | Meekijken is read-only. | | 005 | Startcontrole mag niet op oude knopstatus vertrouwen. |

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
Live sessieOpen LiveViewAudit-record met oudercontext.Eindmoment wordt later gevuld.
Actuele vraagAfgeleid uit server-side opgeslagen voortgang.Niet uit browserstate van kind.
Realtime verbindingSignalR subscription voor voortgangsupdates.Transportlaag, geen brondata.
Rolcontext snapshotViewerRoleNameSnapshot = Ouder/voogd.Leesbaar bij latere audit.

9.2 Autorisatie- en privacygrenzen

  • De zichtbare dataset wordt altijd server-side beperkt tot actieve ouder-/voogdrelaties.
  • Een gebruiker met gecombineerde rollen krijgt binnen deze route geen impliciete docent- of beheerderinzage.
  • Resultaat- en livegegevens van niet-gekoppelde kinderen worden nooit gedeeltelijk getoond.

10. Datavalidatie

| 001 | Live-feature moet actief zijn. | | 002 | Actieve ouderrelatie moet bestaan. | | 003 | Run moet bij het kind horen en actief zijn. | | 004 | ViewerRoleId en ViewerRoleNameSnapshot moeten worden vastgelegd. | | 005 | SignalR-subscription mag alleen na autorisatie worden gestart. |

11. Datamutaties en events

| 001 | LiveViewAudit-record wordt aangemaakt met startmoment, viewer, rolcontext, kind en run. | | 002 | Realtime subscription wordt technisch geopend. | | 003 | Bij startfout na auditcreatie wordt hetzelfde LiveViewAudit-record beëindigd; er ontstaat geen tweede sessie. | | 004 | Functioneel event: LiveViewStarted. |

12. Geen datamutaties

| 001 | ExerciseRuns worden niet gewijzigd. | | 002 | Antwoorden worden niet gewijzigd. | | 003 | Scores worden niet gewijzigd. | | 004 | Relaties worden niet gewijzigd. |

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-OVG-LIVE-ACCESS-DENIEDWordt gebruikt wanneer actuele ouder-/voogdautorisatie ontbreekt.
POP-OVG-LIVE-START-ERRORWordt gebruikt wanneer de live-start technisch of functioneel niet kan worden afgerond.
POP-OVG-LIVE-SESSION-ENDEDWordt gebruikt wanneer de run vlak vóór of tijdens live-start is beëindigd.

Popupteksten, knopteksten, inputlabels en themakeuzes worden niet in deze usecase gedupliceerd. Het popupregister en de popupthemes blijven bronhoudend.

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

| 001 | Live sessies moeten auditbaar zijn via LiveViewAudit. | | 002 | Ouder/voogdstart is read-only en gebruikt eigen rolcontext. | | 003 | SignalR verzorgt updates, maar databasevoortgang blijft leidend. |

18.1 Impact voor database-informatie en ontwerpbronnen

| 001 | Autorisatiematrix moet ouder-/voogdraadpleging onderscheiden van docentraadpleging. | | 002 | Usecase-scherm-matrix moet de betrokken ouder-/voogdschermen koppelen aan deze usecase. | | 003 | Usecase-requirement-matrix moet de requirements uit hoofdstuk 19 opnemen. | | 004 | LiveViewAudit en realtime-afhandeling moeten ouder-/voogdrolcontext expliciet ondersteunen. |

19. SRS-trace

Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.

Er zijn voor deze usecase geen aparte requirement-afleidingen vastgelegd. De procesbeschrijving blijft broncontext voor de SRS-traceability.