Skip to main content

UC-OVG-LIVE-002 — Live meekijken-beschikbaarheid bepalen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-LIVE-002
NaamLive meekijken-beschikbaarheid bepalen
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, Liveknopstatus
Gerelateerde usecasesUC-OVG-LIVE-001, UC-OVG-LIVE-003, UC-DOC-LIVE-002
Primaire entiteitenUserRelationships, ExerciseRuns, SiteFeatureToggles
Secundaire entiteiten / eventsLiveAvailabilityReadModel
Gerelateerde popupsPOP-OVG-LIVE-NOT-AVAILABLE, POP-OVG-LIVE-ACCESS-DENIED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe het systeem bepaalt of de actie Kijk live mee beschikbaar is voor een ouder/voogd. Beschikbaarheid vereist een actief gekoppeld kind, een actieve oefenrun en een ingeschakelde live-meekijkfunctionaliteit.

De ouder-/voogdautorisatie is breder dan de docentcontext: een ouder/voogd mag live meekijken bij alle live oefeningen van gekoppelde kinderen, ongeacht welke docent de oefening heeft aangeboden.

Uitgangspunten

  • Beschikbaarheid wordt server-side bepaald.
  • De actie is alleen actief bij een actieve oefenrun.
  • De ouder-/voogdrelatie moet actief zijn.
  • De live-feature moet beschikbaar zijn.
  • Een uitgeschakelde knop geeft geen client-side recht.

3. Scope

Deze usecase beschrijft:

  • bepalen of Kijk live mee actief is;
  • toelichting tonen wanneer live niet beschikbaar is;
  • verschil bepalen tussen online maar niet oefenend en wel oefenend;
  • featuretoggle meenemen;
  • runcontext voorbereiden voor live-start.

Deze usecase beschrijft niet:

  • live sessie zelf starten;
  • live voortgang streamen;
  • docentniveauautorisatie controleren;
  • resultaatgeschiedenis tonen.

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 | Online-overzicht is geladen. | | 002 | Een kindregel is bekend. | | 003 | Realtime oefenstatus kan worden bepaald. | | 004 | De ouder-/voogdcontext is actief. |

5. Post-condities

| 001 | De liveknopstatus is correct bepaald. | | 002 | Geen LiveViewAudit-record is aangemaakt. | | 003 | Geen rungegevens zijn gewijzigd. | | 004 | Een duidelijke niet-beschikbaarstatus is beschikbaar. |

6. Trigger

Het Online-overzicht rendert of ververst de actie Kijk live mee per kind.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1FrontendVraagt beschikbaarheid per kindBackend ontvangt kindcontextChildId
2BackendControleert ouderrelatieKind is wel of niet toegestaanUserRelationships
3BackendControleert featuretoggleLive kan centraal aan of uit staanSiteFeatureToggles
4BackendControleert actieve runBepaalt livebaarheidExerciseRuns
5BackendLevert status en redenFrontend kan knop activeren of uitschakelenLiveAvailabilityReadModel
6FrontendToont knopstatusOuder/voogd ziet actie of toelichtingUI

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 | Kind is online maar niet aan het oefenen: knop uit met toelichting. | | 002 | Live-feature staat uit: knop uit voor alle kinderen. | | 003 | Relatie vervalt tussen overzicht en beschikbaarheidscheck: knop wordt uitgeschakeld. | | 004 | Actieve run is net afgerond: knop wordt uitgeschakeld. | | 005 | Backendstatus is onzeker: knop wordt veilig uitgeschakeld. |

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 | De backend bepaalt beschikbaarheid opnieuw bij start van live meekijken. | | 002 | Een actieve ouder-/voogdrelatie is vereist. | | 003 | Live meekijken is niet afhankelijk van docentniveauautorisatie. | | 004 | Een actieve run is vereist. | | 005 | De knopstatus is afgeleid en niet persistent. |

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
BeschikbaarActieve ouderrelatie + live-feature + actieve run.Wordt opnieuw gecontroleerd bij start.
Niet onlineKind heeft geen relevante actieve sessie.Geen liveknop.
Niet oefenendKind is online zonder actieve run.Liveknop uit.
Feature uitSitebrede livefunctionaliteit uit.Knop uit ongeacht run.

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 | ChildId moet actief gekoppeld zijn aan de ouder/voogd. | | 002 | Feature Live meekijken moet functioneel beschikbaar zijn. | | 003 | Actieve run moet niet afgerond zijn. | | 004 | Run moet bij het gekoppelde kind horen. | | 005 | Knopstatus mag niet uit oude clientstate worden afgeleid. |

11. Datamutaties en events

| 001 | Geen functionele datamutaties. | | 002 | Geen LiveViewAudit-mutatie; die ontstaat pas bij start van live meekijken. |

12. Geen datamutaties

| 001 | Geen runmutatie. | | 002 | Geen relatiemutatie. | | 003 | Geen voortgangsmutatie. | | 004 | Geen systeembericht. |

13. State diagram

Niet van toepassing. Deze usecase bepaalt een afgeleide knopstatus en wijzigt geen persistent statusobject.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-OVG-LIVE-NOT-AVAILABLEWordt gebruikt wanneer live meekijken veilig niet beschikbaar is.
POP-OVG-LIVE-ACCESS-DENIEDWordt gebruikt wanneer actuele autorisatie ontbreekt.

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 | Livebeschikbaarheid moet binnen oudercontext anders worden bepaald dan binnen docentcontext. | | 002 | De liveknop mag pas actief zijn bij actieve run en actuele autorisatie. | | 003 | Featuretoggles kunnen live meekijken centraal uitschakelen. |

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.