UC-DOC-LIVE-004 — Live voortgang van leerling volgen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-LIVE-004 |
| Naam | Live voortgang van leerling volgen |
| Domein | Docent |
| Subdomein | Online leerlingen en live meekijken |
| Primaire actor | Docent |
| Secundaire actor(en) | Leerling, OefenHub-systeem, realtime-kanaal |
| Rolcontext | Docentcontext met actieve docent-leerlingrelatie en geldige niveauautorisatie |
| Betrokken schermen | SCH-DOC-07-01 — Meekijken — Live meekijkweergave, live-meekijkweergave |
| Gerelateerde usecases | UC-DOC-LIVE-001, UC-DOC-LIVE-002, UC-DOC-LIVE-003, UC-DOC-LIVE-007, UC-LLN-OEF-004, UC-LLN-OEF-007, UC-LLN-OEF-008 |
| Primaire entiteiten | LiveViewAudit, ExerciseRuns, ExerciseRunProgress, UserRelationships, StudentLevelAuthorizations |
| Secundaire entiteiten / events | SignalR-verbinding, realtime voortgangsevent, sessie-einde-event, verbindingsfout |
| Gerelateerde popups | Niet van toepassing voor normale route; technische verbindingsmelding bij foutafhandeling |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent tijdens een actieve live-meekijksessie de actuele voortgang van een leerling volgt. De docent ziet de actuele vraagpositie, de status van beantwoorde vragen en relevante voortgangsinformatie, maar kan de oefening niet beïnvloeden.
De usecase beschrijft uitsluitend het docentgedrag binnen een reeds toegestane live-meekijkcontext. Het starten van de oefening door de leerling, het beantwoorden van vragen en het opslaan van voortgang blijven bronhoudend in de leerling-oefenusecases. De docentweergave is alleen-lezen en mag nooit leiden tot antwoordmutaties of correcties in de lopende run.
3. Scope
Binnen scope:
- Ontvangen van realtime voortgangsupdates.
- Bijwerken van de live-meekijkweergave.
- Tonen van vraagpositie en resultaatindicaties binnen autorisatiegrenzen.
- Behouden van alleen-lezen gedrag.
- Veilige afhandeling wanneer de run eindigt of niet meer toegankelijk is.
Buiten scope:
- Starten van de live-meekijksessie.
- Beantwoorden van vragen door de leerling.
- Wijzigen van antwoorden, scores of correcties.
- Geschiedenisweergave van afgeronde runs.
- Relatie- of autorisatiebeheer.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De docent is succesvol ingelogd en handelt binnen een actieve docentcontext. |
| PRE-002 | Er bestaat een actieve docent-leerlingrelatie tussen de docent en de leerling. |
| PRE-003 | De leerling heeft een actieve of recent live beschikbare exercise run die binnen de docentcontext valt. |
| PRE-004 | De docent heeft via niveauautorisatie recht op inzage in de oefencontext van de leerling. |
| PRE-005 | De live-meekijkfeature is sitebreed beschikbaar. |
| PRE-006 | De leerlingrun levert server-side voortgangsinformatie die via het realtime-kanaal kan worden getoond. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De docent heeft de live-meekijkweergave volgens de toegestane context gebruikt. |
| POST-002 | De leerlingrun is inhoudelijk niet gewijzigd door de docent. |
| POST-003 | Eventuele live-meekijk-audit blijft herleidbaar via LiveViewAudit waar de flow dat vereist. |
| POST-004 | Niet-geautoriseerde voortgang of resultaten zijn niet zichtbaar gemaakt. |
| POST-005 | De applicatiecontext blijft consistent bij realtime updates, sessie-einde of verbindingsproblemen. |
6. Trigger
De usecase start wanneer de docent binnen een bestaande live-meekijkweergave een live handeling uitvoert of wanneer het systeem een relevante realtime wijziging ontvangt.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Live-meekijkweergave | Blijft op de liveweergave van de geselecteerde leerling. | Systeem behoudt het realtime-abonnement voor de actieve run. | LiveViewAudit bestaat voor de sessie. |
| 2 | Systeem | Routeguard / backend | Controleert dat docent, leerling, niveau en oefening nog binnen de toegestane context vallen. | Bij geldige context blijft live meekijken actief. | BR-001, BR-002 |
| 3 | Leerling | Oefenscherm | Bevestigt een antwoord of markeert een vraag volgens de leerling-oefenflow. | Voortgang wordt server-side opgeslagen door de leerlingflow. | Bron: leerling-oefenusecases. |
| 4 | Systeem | Realtime-kanaal | Publiceert een voortgangsupdate voor geautoriseerde meekijkers. | Docent ontvangt alleen de toegestane samenvatting en vraagcontext. | SignalR / server-side voortgang. |
| 5 | Systeem | Live-meekijkweergave | Werkt actuele vraag, voortgang, resultaatindicatie en vraagnavigatie bij. | Weergave blijft alleen-lezen. | Geen antwoordmutatie. |
| 6 | Docent | Live-meekijkweergave | Bekijkt de actuele voortgang. | Docent kan niet ingrijpen in de oefening. | BR-003 |
| 7 | Systeem | Live-meekijkweergave | Toont vervolgupdates zolang de run actief en geautoriseerd is. | De laatste veilige liveweergave blijft zichtbaar tot nieuwe update of sessie-einde. | BR-004 |
| 8 | Systeem | LiveViewAudit | Behoudt de lopende auditregistratie van de meekijksessie. | Er wordt geen extra auditregel per antwoordupdate vereist. | Audit op sessieniveau. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Docentcontext is niet meer geldig. | Systeem beëindigt de liveweergave of blokkeert verdere updates. | Generieke toegangafhandeling. | Eventueel LiveViewAudit.EndedAtUtc vullen. |
| ALT-002 | 3 | Leerling verlaat de oefening. | Systeem verwerkt dit via de leerling-onderbreekflow en toont live niet langer als actief. | Sessie-einde-indicatie. | LiveViewAudit.EndedAtUtc indien sessie eindigt. |
| ALT-003 | 4 | Realtime update komt vertraagd of dubbel binnen. | Systeem verwerkt updates idempotent op basis van run, vraagnummer en voortgangspositie. | Geen popup. | Geen dubbele domeinmutatie. |
| ALT-004 | 4 | Update hoort bij een andere run of ander niveau. | Systeem negeert de update voor deze docentweergave. | Geen popup. | Geen mutatie. |
| ALT-005 | 5 | Docent bekijkt op dat moment een eerdere vraag. | Systeem werkt live-indicator en vraagnavigatie bij zonder de gekozen browsepositie te overschrijven. | Geen popup. | Geen mutatie. |
| ALT-006 | 7 | Run wordt afgerond. | Systeem toont dat de live oefening is afgerond en beëindigt de livecontext. | Sessie-einde-indicatie. | LiveViewAudit.EndedAtUtc vullen. |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Live voortgang tonen is alleen toegestaan binnen een actieve docentcontext met geldige docent-leerlingrelatie. |
| BR-002 | Een docent mag alleen live voortgang zien van oefeningen binnen niveaus die door die docent aan de leerling zijn geautoriseerd. |
| BR-003 | De live-meekijkweergave is altijd alleen-lezen. |
| BR-004 | Realtime data is afgeleide presentatiedata en wordt niet als aparte liveweergavetabel opgeslagen. |
| BR-005 | De leerling-oefenflow blijft bronhouder voor antwoordverwerking, voortgang en afronding. |
| BR-006 | Een beheerdercontext mag niet worden gebruikt om live voortgang van leerlingen te volgen. |
| BR-007 | Meerdere gelijktijdige meekijkers zijn toegestaan zolang ieder afzonderlijk geautoriseerd is. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| DocentUserId | Moet overeenkomen met de ingelogde gebruiker en actieve docentcontext. |
| ObservedUserId | Moet een leerling zijn met actieve relatie tot de docent. |
| ExerciseRunId | Moet een actieve run zijn die binnen de toegestane niveaucontext valt. |
| LevelId | Moet binnen de autorisatieset van de docent voor deze leerling vallen. |
| RealtimeEvent | Moet horen bij de verwachte run, vraagpositie en server-side voortgangsversie. |
| QuestionNumber | Moet binnen 1..TotalQuestionCount vallen. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-8 | Read | ExerciseRuns / ExerciseRunProgress | Voortgang wordt gelezen zoals door de leerling-oefenflow server-side is opgeslagen. |
| 3-5 | Realtime transport | SignalR live view stream | Update wordt aan geautoriseerde meekijkers doorgegeven; geen persistente domeinmutatie. |
| 5 | Presentatie | Live viewmodel | Frontendweergave wordt bijgewerkt zonder antwoord-, score- of runmutatie. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| ExerciseRuns | De docent wijzigt geen runinhoud, afronding of resultaat. |
| ExerciseRunProgress | De docentweergave leest voortgang, maar corrigeert geen antwoorden en markeert geen vragen. |
| UserRelationships | Relaties worden niet aangemaakt, gewijzigd of beëindigd binnen live meekijken. |
| StudentLevelAuthorizations | Autorisaties worden uitsluitend gelezen; beheer hoort in docent-autorisatieusecases. |
| SystemMessages | Live meekijken maakt geen systeemberichten aan. |
| PrivateMessageThreads | Live meekijken start geen privébericht en voegt geen thread-event toe. |
| Tickets | Verbindings- of livefouten worden niet automatisch als melding geregistreerd. |
13. State diagram
De usecase raakt geen persistent statusobject met eigen statusmodel. De live-meekijktoestand is een afgeleide sessie- en realtimecontext. Waar LiveViewAudit.EndedAtUtc wordt gevuld, betreft dit auditafronding en geen zelfstandige functionele statusmachine.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Normale live update | Geen popup; de liveweergave werkt inline bij. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft de live-meekijkinteractie binnen een geautoriseerde docentcontext en bevestigt het alleen-lezen karakter van de docentweergave. |
| Technisch Ontwerp | Technisch Ontwerp: live meekijken met SignalR, oefenruns en voortgang en readmodels en livebeschikbaarheid beschrijven de technische uitwerking. Werkt realtime-verwerking, SignalR-abonnementen, routeguardcontrole, LiveViewAudit-grenzen en foutafhandeling technisch uit. |
| Software Requirements Specification | Borgt autorisatie, alleen-lezen gedrag, realtime updates, veilige foutafhandeling en het ontbreken van onbedoelde runmutaties. |
| Database-informatie | Gebruikt LiveViewAudit, ExerciseRuns en voortgangsopslag als bestaande bronnen; er ontstaat geen aparte live-weergavetabel. |
| Ontwerpbronnen | Autorisatiematrix en business rules beschrijven de live-meekijkgrenzen binnen docentcontext. |
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.
| Usecase-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-DOC-LIVE-004-001 | SRS-LRN-003 SRS-TCH-001 SRS-LIVE-001 AC-LRN-003 AC-TCH-001 AC-LIVE-001 | Live voortgang alleen tonen aan docenten met een geldige docentcontext voor de betreffende leerling en run |
REQ-UC-DOC-LIVE-004-002 | SRS-AUTH-001 SRS-CAT-001 SRS-LRN-009 SRS-TCH-002 SRS-LIVE-001 AC-AUTH-001 AC-CAT-001 AC-LRN-009 AC-TCH-002 AC-LIVE-001 | Bij iedere liveweergave server-side borgen dat niveau en oefening binnen de toegestane docentcontext vallen |
REQ-UC-DOC-LIVE-004-003 | SRS-TCH-001 AC-TCH-001 | De docentweergave alleen-lezen houden |
REQ-UC-DOC-LIVE-004-004 | SRS-LRN-003 SRS-TCH-001 SRS-LIVE-001 AC-LRN-003 AC-TCH-001 AC-LIVE-001 | Door live voortgang tonen geen antwoorden, scores of runstatussen wijzigen |
REQ-UC-DOC-LIVE-004-005 | SRS-TCH-001 SRS-ARCH-003 AC-TCH-001 AC-ARCH-003 | Realtime voortgangsupdates verwerken zonder dubbele domeinmutaties |
REQ-UC-DOC-LIVE-004-006 | SRS-AUTH-001 SRS-TCH-001 SRS-LIVE-001 AC-AUTH-001 AC-TCH-001 AC-LIVE-001 | Live voortgang beëindigen of blokkeren wanneer de docentcontext ongeldig wordt |
REQ-UC-DOC-LIVE-004-007 | SRS-AUTH-001 SRS-LRN-009 SRS-TCH-001 SRS-LIVE-002 AC-AUTH-001 AC-LRN-009 AC-TCH-001 AC-LIVE-002 | Meerdere geautoriseerde meekijkers bij dezelfde run kunnen ondersteunen |
REQ-UC-DOC-LIVE-004-008 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | Voortgangsdata die buiten de geautoriseerde context valt negeren voor de docentweergave |
REQ-UC-DOC-LIVE-004-009 | SRS-LRN-003 SRS-TCH-001 SRS-GUA-001 AC-LRN-003 AC-TCH-001 AC-GUA-001 | De leerling-oefenflow bronhouder laten blijven voor antwoordverwerking en voortgangsopslag |
REQ-UC-DOC-LIVE-004-010 | SRS-TCH-001 SRS-LIVE-001 SRS-NFR-SEC-001 SRS-NFR-AVL-001 AC-TCH-001 AC-LIVE-001 AC-NFR-SEC-001 AC-NFR-AVL-001 | Veilige foutafhandeling bieden wanneer live voortgang niet meer beschikbaar is |