Skip to main content

UC-OVG-LIVE-007 — Live meekijksessie beëindigen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-LIVE-007
NaamLive meekijksessie beëindigen
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 schermenLive meekijkweergave, Online
Gerelateerde usecasesUC-OVG-LIVE-003, UC-OVG-LIVE-004, UC-OVG-LIVE-008
Primaire entiteitenLiveViewAudit, SignalRConnections, ExerciseRuns
Secundaire entiteiten / eventsLiveViewEnded
Gerelateerde popupsPOP-OVG-LIVE-SESSION-ENDED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een live-meekijksessie van een ouder/voogd wordt beëindigd. Beëindiging kan bewust door terugnavigeren of sluiten, maar ook doordat de leerlingrun eindigt, de gebruiker uitlogt of de verbinding definitief wegvalt.

Bij beëindiging wordt het open LiveViewAudit-record voorzien van een eindmoment. De oefenrun van het kind blijft ongewijzigd.

Uitgangspunten

  • Elke daadwerkelijk gestarte live sessie krijgt een eindmoment.
  • Beëindiging wijzigt de oefening niet.
  • SignalR-subscription wordt opgeruimd.
  • Logout beëindigt actieve meekijksessie.
  • Run-einde beëindigt de liveweergave veilig.

3. Scope

Deze usecase beschrijft:

  • bewust stoppen van live meekijken;
  • beëindigen bij navigatie weg van liveweergave;
  • beëindigen bij logout;
  • beëindigen bij run-afronding of verlaten oefencontext;
  • vullen van LiveViewAudit.EndedAtUtc.

Deze usecase beschrijft niet:

  • resultaat afronden namens kind;
  • antwoorden opslaan;
  • relatie ontkoppelen;
  • geschiedenis verwijderen.

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 | Er is een open LiveViewAudit-record. | | 002 | Meekijker heeft een actieve liveweergave of een recent actieve liveverbinding. | | 003 | SignalR-subscription is actief of eerder gestart. | | 004 | Backend kan eindmoment vastleggen. |

5. Post-condities

| 001 | LiveViewAudit.EndedAtUtc is gevuld. | | 002 | Realtime subscription is beëindigd. | | 003 | De liveweergave is gesloten of naar overzicht teruggekeerd. | | 004 | De oefenrun is niet door de ouder/voogd gewijzigd. |

6. Trigger

De ouder/voogd sluit live meekijken, navigeert weg, logt uit, de leerlingrun eindigt of de verbinding wordt definitief verbroken.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1Ouder/voogd / systeemBeëindigt sessieFrontend of backend detecteert stopStopcontext
2FrontendMeldt stop aan backend waar mogelijkBackend zoekt open auditrecordLiveViewAuditId
3BackendVult eindmoment idempotentSessie is auditbaar beëindigdEndedAtUtc
4Realtime serviceVerwijdert subscriptionGeen updates meer naar meekijkerSignalRConnections
5FrontendSluit liveweergaveGebruiker keert terug of ziet eindmeldingUI
6BackendLaat run ongemoeidOefening kind loopt door of is normaal geëindigdExerciseRuns

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 | Netwerk valt weg vóór stopmelding: backend sluit via disconnect- of timeoutafhandeling. | | 002 | Auditrecord is al beëindigd: stopactie is idempotent en wijzigt niets opnieuw. | | 003 | Run eindigt terwijl ouder nog kijkt: sessie wordt beëindigd met run-eindeafhandeling. | | 004 | Logout: sessie wordt beëindigd binnen logoutverwerking. | | 005 | Backend kan audit niet direct bijwerken: technische fout wordt gelogd en herstel volgt infrastructuurbeleid. |

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.EndedAtUtc moet worden gevuld voor beëindigde sessies. | | 002 | Stoppen van meekijken stopt de run van het kind niet. | | 003 | Beëindigen is idempotent. | | 004 | Realtime subscriptions worden opgeruimd. | | 005 | De beëindigingscontext mag auditbaar zijn, maar verandert geen oefenresultaat. |

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
Open live sessieLiveViewAudit zonder EndedAtUtc.Actief of recent verbonden.
Beëindigde live sessieLiveViewAudit met EndedAtUtc.Niet opnieuw activeren.
BeëindigingscontextGebruiker, logout, disconnect of run-einde.Geen effect op score.
SubscriptionSignalR-verbinding voor updates.Wordt verwijderd.

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 | LiveViewAuditId moet bij de gebruiker of sessiecontext horen. | | 002 | EndedAtUtc mag niet vóór StartedAtUtc liggen. | | 003 | Dubbele beëindiging moet idempotent zijn. | | 004 | SignalR-connection moet worden vrijgegeven. | | 005 | Runstatus mag niet door stopactie worden gewijzigd. |

11. Datamutaties en events

| 001 | LiveViewAudit.EndedAtUtc wordt gevuld wanneer het record nog open is. | | 002 | Technische realtime subscription wordt beëindigd. | | 003 | Functioneel event: LiveViewEnded. |

12. Geen datamutaties

| 001 | ExerciseRuns worden niet gewijzigd door stop van meekijker. | | 002 | ExerciseRunProgress wordt niet gewijzigd. | | 003 | UserRelationships worden niet gewijzigd. | | 004 | Resultaten worden niet aangemaakt of aangepast. |

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-OVG-LIVE-SESSION-ENDEDWordt gebruikt wanneer beëindiging voor de gebruiker zichtbaar wordt doordat de run of sessie is afgelopen.

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 | LiveViewAudit moet start en einde van live meekijken bevatten. | | 002 | Stoppen van live meekijken mag leerlingrun niet beïnvloeden. | | 003 | Logout moet open live sessies beëindigen. |

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.