UC-OVG-LIVE-006 — Terugkeren naar actuele live vraag
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-OVG-LIVE-006 |
| Naam | Terugkeren naar actuele live vraag |
| Domein | Ouder/voogd / Online en live meekijken |
| Primaire actor | Ouder/voogd |
| Secundaire actor(en) | Frontend, backend, database, realtime service |
| Rolcontext | Actieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Live meekijkweergave |
| Gerelateerde usecases | UC-OVG-LIVE-005, UC-OVG-LIVE-004, UC-DOC-LIVE-006 |
| Primaire entiteiten | ExerciseRuns, ExerciseRunProgress, LiveViewAudit |
| Secundaire entiteiten / events | Niet van toepassing |
| Gerelateerde popups | POP-OVG-LIVE-SESSION-ENDED, POP-OVG-LIVE-ACCESS-DENIED |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een ouder/voogd vanuit browse-modus terugkeert naar de actuele livevraag van het kind.
De actie wijzigt alleen de lokale weergavestand van de meekijker. De actuele vraag wordt opnieuw bepaald uit server-side opgeslagen voortgang of uit de laatst betrouwbare realtime update.
Uitgangspunten
- Terugkeren is lokale UI-state.
- Actuele vraag komt uit server-side voortgang.
- Er vindt geen runmutatie plaats.
- De actie is alleen actief buiten live-modus.
- Bij beëindigde run volgt afsluitafhandeling.
3. Scope
Deze usecase beschrijft:
- activeren van terugkeeractie;
- bepalen van actuele vraag;
- weergave terugzetten naar live-modus;
- verder ontvangen van realtime updates;
- afhandelen wanneer run net is beëindigd.
Deze usecase beschrijft niet:
- voortgang corrigeren;
- vraagselectie van kind wijzigen;
- live sessie opnieuw starten;
- run hervatten.
3.1 Afbakening met aangrenzende domeinen
| Onderdeel | Afbakening |
|---|---|
| Docent / Online en live meekijken | De technische liveweergave kan gelijkend zijn, maar docentautorisatie blijft beperkt tot eigen docentcontext en niveauautorisaties. |
| Leerling / Oefenen en voortgang | De leerlingrun en voortgang worden door de leerlingflow geschreven; ouder/voogd kijkt alleen read-only mee. |
| Generiek / Relaties | De actieve ouder-/voogdrelatie bepaalt de toegang; relatievorming en uitnodigingen blijven buiten deze live-usecases. |
| Technische realtime-laag | SignalR transporteert updates; de server-side opgeslagen voortgang blijft bron van waarheid. |
4. Pre-condities
| 001 | Live sessie is actief. | | 002 | Meekijker bevindt zich in browse-modus. | | 003 | Actuele voortgang is beschikbaar of kan opnieuw worden opgehaald. | | 004 | Realtimeverbinding is actief of kan resync uitvoeren. |
5. Post-condities
| 001 | De actuele livevraag is getoond of sessie-einde is afgehandeld. | | 002 | Browse-modus is beëindigd. | | 003 | Geen domeindata is gewijzigd. | | 004 | LiveViewAudit blijft open tenzij run of sessie eindigt. |
6. Trigger
De ouder/voogd klikt op Kijk live mee of een vergelijkbare terug-naar-liveactie tijdens browse-modus.
7. Normale processtroom
| Stap | Actor / component | Actie | Resultaat | Data / controle |
|---|---|---|---|---|
| 1 | Ouder/voogd | Klikt terug naar live | Frontend verlaat browse-modus | Local state |
| 2 | Frontend | Bepaalt actuele vraag | Gebruikt laatste update of resync | ProgressReadModel |
| 3 | Backend | Levert actuele status indien nodig | Frontend krijgt betrouwbare voortgang | ExerciseRunProgress |
| 4 | Frontend | Toont actuele vraag | Meekijker is terug in live-modus | LiveViewModel |
| 5 | Realtime service | Vervolgt updates | Liveweergave blijft actueel | Connection |
| 6 | Frontend | Schakelt terugactie uit | Actie is niet actief in live-modus | UI state |
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 | Actuele vraag is intussen veranderd: nieuwste betrouwbare status wordt getoond. | | 002 | Run is beëindigd: sessie-afgelopenmelding wordt getoond. | | 003 | Realtimeverbinding ontbreekt: resync of verbindingsfoutafhandeling wordt gestart. | | 004 | Meekijker klikt terwijl al live: er vindt geen functionele wijziging plaats. | | 005 | Relatie is vervallen: liveweergave wordt gestopt. |
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 | Terugkeren naar live is geen domeinmutatie. | | 002 | Actuele vraag wordt niet uit oude browse-selectie bepaald. | | 003 | De terugactie is alleen actief wanneer de meekijker niet op actuele vraag kijkt. | | 004 | Bij twijfel vraagt frontend actuele status opnieuw op. | | 005 | Beëindigde runs worden niet als live hervat. |
9.1 Readmodel- en tellerdefinities
| Waarde | Definitie | Uitsluitingen / grenzen |
|---|---|---|
| Live-modus | Weergave volgt actuele vraag. | Geen terugactie actief. |
| Browse-modus | Weergave volgt gekozen vraag. | Terugactie actief. |
| Resync | Ophalen actuele voortgang bij twijfel. | Geen mutatie. |
| Run beëindigd | Geen livevraag meer. | Sessie-eindeafhandeling. |
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 | LiveViewAudit moet nog open zijn. | | 002 | Run moet nog actief zijn voor live-modus. | | 003 | Meekijker moet geautoriseerd blijven. | | 004 | Actuele voortgang moet bij dezelfde run horen. | | 005 | Lokale vraagselectie mag geen runstatus wijzigen. |
11. Datamutaties en events
| 001 | Geen domeinmutaties. | | 002 | Lokale UI-state wijzigt van browse naar live. |
12. Geen datamutaties
| 001 | ExerciseRuns blijven ongewijzigd. | | 002 | ExerciseRunProgress blijft ongewijzigd. | | 003 | LiveViewAudit wordt niet aangepast tenzij sessie eindigt. | | 004 | Relaties blijven ongewijzigd. |
13. State diagram
Niet van toepassing. Terugkeren naar live is lokale UI-state en geen persistent statusobject.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Gebruik |
|---|---|
| POP-OVG-LIVE-SESSION-ENDED | Wordt gebruikt wanneer de run niet meer live beschikbaar is. |
| POP-OVG-LIVE-ACCESS-DENIED | Wordt gebruikt wanneer actuele ouder-/voogdautorisatie 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 | Terugkeer naar live moet beschikbaar zijn na bladeren. | | 002 | De actuele livevraag moet server-side betrouwbaar bepaalbaar zijn. | | 003 | De actie mag geen runmutatie veroorzaken. |
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.