UC-OVG-LIVE-005 — Door vragen bladeren tijdens live meekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-OVG-LIVE-005 |
| Naam | Door vragen bladeren tijdens live meekijken |
| Domein | Ouder/voogd / Online en live meekijken |
| Primaire actor | Ouder/voogd |
| Secundaire actor(en) | Frontend, backend, realtime service |
| Rolcontext | Actieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Live meekijkweergave, Vraaglijst |
| Gerelateerde usecases | UC-OVG-LIVE-004, UC-OVG-LIVE-006, UC-DOC-LIVE-005 |
| Primaire entiteiten | ExerciseRuns, ExerciseRunProgress, LiveViewAudit |
| Secundaire entiteiten / events | Niet van toepassing |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een ouder/voogd tijdens live meekijken door eerdere of toekomstige vragen bladert. Dit verandert alleen de lokale kijkpositie van de meekijker en heeft geen effect op de oefening van het kind.
Bij eerdere vragen mag het gegeven antwoord zichtbaar zijn als de vraag al beantwoord is. Bij toekomstige vragen wordt alleen informatie getoond die de runstructuur en module veilig beschikbaar mogen maken.
Uitgangspunten
- Bladeren is lokaal en read-only.
- De actuele livevraag blijft server-side leidend.
- Eerdere antwoorden zijn alleen zichtbaar wanneer al beantwoord.
- De terug-naar-liveactie wordt actief in browse-modus.
- Bladeren wijzigt geen voortgang.
3. Scope
Deze usecase beschrijft:
- selecteren van vraagnummers in liveweergave;
- tonen van eerdere vraagdetails;
- tonen van toekomstige vragen zonder leerlingantwoord;
- inschakelen van terug-naar-liveactie;
- behouden van realtime updates op de achtergrond.
Deze usecase beschrijft niet:
- vraagvolgorde wijzigen;
- antwoord aanpassen;
- run pauzeren;
- nieuwe vraag genereren.
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 | Vraaglijst is geladen. | | 003 | Meekijker is geautoriseerd. | | 004 | Runstructuur is bekend. |
5. Post-condities
| 001 | De gekozen vraag is read-only getoond. | | 002 | De live sessie blijft actief. | | 003 | De terug-naar-liveactie is actief wanneer niet de actuele vraag wordt getoond. | | 004 | Geen rungegevens zijn gewijzigd. |
6. Trigger
De ouder/voogd klikt op een vraagnummer in de live vraaglijst.
7. Normale processtroom
| Stap | Actor / component | Actie | Resultaat | Data / controle |
|---|---|---|---|---|
| 1 | Ouder/voogd | Klikt vraagnummer | Frontend schakelt naar browse-modus | QuestionIndex |
| 2 | Frontend | Valideert vraagstatus | Eerder, actueel of toekomstig | ProgressReadModel |
| 3 | Frontend | Toont vraaginhoud | Read-only weergave | Question payload |
| 4 | Frontend | Toont antwoord indien beantwoord | Historische voortgang zichtbaar | Progress status |
| 5 | Realtime service | Blijft updates ontvangen | Actuele vraagstatus wordt gemarkeerd | Realtime updates |
| 6 | Frontend | Activeert terug-naar-liveactie | Terugkeer naar actuele vraag mogelijk | UC-OVG-LIVE-006 |
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 | Gekozen vraag bestaat niet: selectie wordt genegeerd of hersteld naar actuele vraag. | | 002 | Run eindigt tijdens browse-modus: live-eindeafhandeling start. | | 003 | Actuele vraag verandert terwijl eerdere vraag getoond wordt: statusindicator wordt bijgewerkt. | | 004 | Toekomstige vraag mag inhoudelijk niet vooraf zichtbaar zijn voor module: frontend toont beperkte veilige informatie. | | 005 | Verbinding valt weg tijdens bladeren: UC-OVG-LIVE-008 wordt gestart. |
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 | Bladeren is alleen een weergavestand van de meekijker. | | 002 | Beantwoorde vragen mogen antwoordinformatie tonen. | | 003 | Toekomstige vragen tonen geen leerlingantwoord. | | 004 | De live sessie blijft read-only. | | 005 | De actuele livevraag blijft herkenbaar in de vraaglijst. |
9.1 Readmodel- en tellerdefinities
| Waarde | Definitie | Uitsluitingen / grenzen |
|---|---|---|
| Vraaglijst | Vragen 1 t/m n uit de run. | Geen mutatie. |
| Actuele vraagmarkering | Vraag volgens server-side voortgang. | Blijft zichtbaar tijdens browse. |
| Browse-modus | Lokale UI-stand van meekijker. | Niet persistent als domeindata. |
| Antwoordweergave | Alleen bij reeds beantwoorde vragen. | Geen bewerkveld. |
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 | QuestionIndex moet binnen runbereik vallen. | | 002 | Run moet bij actieve live sessie horen. | | 003 | Meekijker moet geautoriseerd blijven. | | 004 | Toekomstige vraagweergave moet modulespecifieke beperkingen respecteren. | | 005 | Geen invoerelementen voor antwoord mogen actief zijn. |
11. Datamutaties en events
| 001 | Geen domeinmutaties. | | 002 | Lokale clientstate voor browse-modus wijzigt. |
12. Geen datamutaties
| 001 | ExerciseRuns worden niet gewijzigd. | | 002 | ExerciseRunProgress wordt niet gewijzigd. | | 003 | LiveViewAudit blijft open. | | 004 | SignalR-subscription blijft actief. |
13. State diagram
Niet van toepassing. Browse-modus is lokale UI-state en geen persistent statusobject.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
Niet van toepassing. Deze usecase gebruikt geen popupregister-popup als functionele stap.
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| 001 | De liveweergave moet bladeren door vragen ondersteunen zonder de run te beïnvloeden. | | 002 | De terugkeer naar actuele vraag moet zichtbaar worden zodra de meekijker afwijkt van live-modus. | | 003 | Toekomstige vraagweergave mag de modulegrenzen niet doorbreken. |
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.