UC-DOC-LIVE-003 — Live-meekijksessie starten
Deze usecase hoort bij het subdomein Online leerlingen en live meekijken binnen het domein Docent. Relatievorming, leerlingautorisatiebeheer en oefenvoortgang zelf zijn elders bronhoudend uitgewerkt; deze usecase gebruikt die gegevens alleen voor online- en live-inzage binnen de docentcontext.
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-LIVE-003 |
| Naam | Live-meekijksessie starten |
| Domein | Docent |
| Subdomein | Online leerlingen en live meekijken |
| Primaire actor | Docent |
| Secundaire actor(en) | Systeem, leerling, SignalR-service |
| Rolcontext | Ingelogde docent met actieve docentcontext en geldige autorisatie voor de actieve oefenrun van de leerling |
| Betrokken schermen | Docentpagina Online; live-meekijkweergave |
| Gerelateerde usecases | UC-DOC-LIVE-001; UC-DOC-LIVE-002; UC-DOC-LIVE-004; UC-LLN-OEF-004 |
| Primaire entiteiten | LiveViewAudit, ExerciseRuns, ExerciseRunProgress, Users, UserRelationships, TeacherStudentLevelAuthorizations |
| Secundaire entiteiten / events | SignalR group/session, SystemMessages of in-app notificatie aan leerling, LiveViewSessionStarted |
| Gerelateerde popups | POP-DOC-LIVE-001 wanneer start niet meer beschikbaar is |
| Popupregister | POP-DOC-LIVE-001 |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent vanuit het online-overzicht bewust een live-meekijksessie start bij een leerling die op dat moment met een oefening bezig is.
Het starten van live meekijken is een expliciete actie. Bij start voert het systeem opnieuw alle server-side controles uit die ook voor beschikbaarheid relevant zijn.
Alleen wanneer de docent nog steeds bevoegd is, de leerling nog steeds een actieve run heeft en de run binnen de docentcontext valt, wordt de meekijksessie geopend.
Bij een succesvolle start wordt een LiveViewAudit-record aangemaakt met onder meer de meekijkende docent, rolcontext, leerling, exercise run en startmoment. Daarna wordt de docent gekoppeld aan de real-time voortgangsstroom voor die run.
3. Scope
Binnen scope
- startactie Kijk live mee verwerken
- opnieuw server-side valideren van docentcontext, relatie, autorisatie en actieve run
- aanmaken van
LiveViewAuditbij succesvolle start - aansluiten van de docent op de live voortgangsstroom
- openen van de live-meekijkweergave
- vastleggen of informeren dat live meekijken is gestart, voor zover functioneel vereist
Buiten scope
- inhoudelijk beantwoorden van vragen door de docent
- wijzigen van de oefening door de docent
- door vragen bladeren tijdens de sessie
- beëindigen of herstellen van een verbroken liveverbinding
- ouder-/voogd-meekijkflow
- beheerderinzage
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De docent is ingelogd met actieve docentcontext. |
| PRE-002 | De docent heeft in het online-overzicht een leerling geselecteerd waarvoor live meekijken beschikbaar lijkt. |
| PRE-003 | De leerling heeft een actieve, niet-afgeronde oefenrun. |
| PRE-004 | De oefenrun valt binnen de docentcontext en niveau-autorisatie van de docent. |
| PRE-005 | De SignalR-/realtime-infrastructuur is beschikbaar om voortgangsupdates te leveren. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | Bij succesvolle start is een LiveViewAudit-record aangemaakt met startmoment. |
| POST-002 | De docent ziet de live-meekijkweergave voor de actuele exercise run. |
| POST-003 | De docent is aangesloten op de real-time voortgangsstroom voor de run. |
| POST-004 | De leerlingrun zelf is niet gewijzigd door het starten van meekijken. |
| POST-005 | Bij mislukte start is geen LiveViewAudit-record aangemaakt. |
| POST-006 | De docent kan niet ingrijpen in de oefening van de leerling. |
6. Trigger
De docent klikt op Kijk live mee bij een geselecteerde leerling waarvoor de live-meekijkactie beschikbaar is.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Online-overzicht | Klikt op Kijk live mee. | Frontend stuurt startverzoek naar backend. | Start is expliciete actie. |
| 2 | Systeem | Backend / routeguard | Controleert docentcontext opnieuw. | Blokkeert wanneer sessie, rol of context niet meer geldig is. | Server-side hercontrole verplicht. |
| 3 | Systeem | Relatiecontrole | Controleert actieve docent-leerlingrelatie. | Start gaat alleen door bij geldige relatiecontext. | Relatiedomein is bronhouder. |
| 4 | Systeem | Autorisatiecontrole | Controleert niveau-autorisatie. | Start gaat alleen door binnen eigen docentcontext. | Geen toegang buiten context. |
| 5 | Systeem | ExerciseRun service | Controleert actieve oefenrun. | Run moet nog lopen, niet afgerond zijn en van de leerling zijn. | ExerciseRun is bron van actieve oefencontext. |
| 6 | Systeem | Realtime service | Bereidt SignalR-koppeling voor. | Docent wordt gekoppeld aan de voortgangsstroom van de run. | Meerdere meekijkers mogen naast elkaar bestaan. |
| 7 | Systeem | Database | Maakt LiveViewAudit-record aan. | Legt ViewerUserId, ViewerRoleId, ViewerRoleNameSnapshot, ObservedUserId, ExerciseRunId en StartedAtUtc vast. | Audit is verplicht bij start. |
| 8 | Systeem | Berichten/notificatiecomponent | Registreert of communiceert dat live wordt meegekeken. | Leerling kan tijdens of na de oefening geïnformeerd worden volgens bericht-/notificatieregels. | Geen vrije chat. |
| 9 | Systeem | Frontend | Opent live-meekijkweergave. | Toont actuele vraag, voortgangslijst en alleen-lezen context. | Vervolg in UC-DOC-LIVE-004. |
| 10 | Docent | Live-meekijkweergave | Bekijkt de actuele voortgang. | Kan niet antwoorden of de run wijzigen. | Alleen-lezen. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Sessie of docentcontext is verlopen. | Start wordt geblokkeerd en de gebruiker wordt naar login of toegestane context geleid. | Routeguardafhandeling. | Geen. |
| ALT-002 | 3 | Relatie is niet meer actief. | Start wordt geweigerd. | POP-DOC-LIVE-001. | Geen LiveViewAudit. |
| ALT-003 | 4 | Autorisatie is ingetrokken. | Start wordt geweigerd. | POP-DOC-LIVE-001. | Geen LiveViewAudit. |
| ALT-004 | 5 | Leerling heeft de oefening inmiddels verlaten. | Start wordt geweigerd omdat er geen actieve run meer is. | POP-DOC-LIVE-001. | Geen LiveViewAudit. |
| ALT-005 | 5 | Run is inmiddels afgerond. | Start wordt geweigerd; resultaat/geschiedenis kan eventueel via andere usecase worden geopend. | POP-DOC-LIVE-001. | Geen LiveViewAudit. |
| ALT-006 | 6 | SignalR-koppeling kan niet worden opgezet. | Start wordt niet als live sessie beschouwd of wordt direct beëindigd volgens verbindingsfoutflow. | POP-DOC-LIVE-002 in vervolgbundel. | Geen of direct gesloten LiveViewAudit, afhankelijk van technisch startmoment. |
| ALT-007 | 7 | Aanmaken LiveViewAudit faalt. | Live-meekijksessie wordt niet geopend omdat auditregistratie verplicht is. | POP-DOC-LIVE-001. | Geen bruikbare live sessie. |
| ALT-008 | 8 | Leerling is actief bezig en badge/popup wordt niet direct getoond. | Systeem bewaart de informatie via systeembericht of veilige notificatie volgens communicatieafspraken. | Geen live-popup voor leerling in deze usecase. | Eventueel SystemMessage volgens berichtenregels. |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Een live-meekijksessie start alleen na een expliciete actie van de docent. |
| BR-002 | Alle beschikbaarheidsvoorwaarden moeten bij start opnieuw server-side worden gevalideerd. |
| BR-003 | Bij succesvolle start moet een LiveViewAudit-record worden vastgelegd. |
| BR-004 | De meekijkweergave is alleen-lezen; de docent kan geen antwoorden invullen of voortgang wijzigen. |
| BR-005 | Meerdere bevoegde meekijkers mogen gelijktijdig dezelfde run volgen binnen hun eigen autorisatiegrenzen. |
| BR-006 | Een docent mag alleen live meekijken met oefeningen binnen de eigen docentcontext en niveau-autorisatie. |
| BR-007 | Het starten van live meekijken wijzigt de ExerciseRun of vraagvoortgang niet. |
| BR-008 | Auditregistratie van live meekijken staat los van autorisatie-audit en oefenresultaten. |
| BR-009 | Wanneer de leerling niet direct zichtbaar geïnformeerd wordt, blijft communicatie via bestaande systeembericht-/notificatieregels herleidbaar. |
| BR-010 | Een beheerder gebruikt deze docentflow niet om live mee te kijken. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| ViewerUserId | Komt uit de server-side sessie en moet een actieve docent zijn. |
| ViewerRoleId | Moet horen bij de actieve docentrolcontext. |
| ViewerRoleNameSnapshot | Moet leesbaar worden vastgelegd voor audit, zodat latere rolnaamwijzigingen geen auditverlies geven. |
| ObservedUserId | Moet de geselecteerde leerling zijn binnen de docentcontext. |
| ExerciseRunId | Moet verwijzen naar een actieve, niet-afgeronde run van de leerling binnen de autorisatiecontext. |
| StartedAtUtc | Wordt server-side in UTC gevuld. |
| SignalR group | Mag alleen worden verbonden na succesvolle autorisatiecontrole. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 2-5 | Read | Users / relaties / autorisaties / ExerciseRuns | Hercontrole van startvoorwaarden. |
| 6 | Runtime | SignalR live view connection | Docent wordt gekoppeld aan de live voortgangsstroom van de run. |
| 7 | Create | LiveViewAudit | Nieuw auditrecord met docent, rolcontext, leerling, exercise run en startmoment. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| ExerciseRuns | Starten van meekijken wijzigt de run niet. |
| ExerciseRunProgress | De docent leest voortgang, maar schrijft geen voortgang. |
| TeacherStudentLevelAuthorizations | Autorisaties worden alleen gecontroleerd. |
| UserRelationships | Relaties worden alleen gecontroleerd. |
| SystemMessages | Starten van live meekijken maakt binnen deze docentflow geen systeembericht aan. |
| PrivateMessages | Live meekijken start geen privébericht. |
| Ticket- of meldingsentiteiten | Live meekijken is geen meldingenflow. |
13. State diagram
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| POP-DOC-LIVE-001 | Startvoorwaarden zijn bij hercontrole niet meer geldig | Legt uit dat live meekijken niet kan worden gestart. |
| POP-DOC-LIVE-002 | Realtime verbinding kan niet worden opgezet of valt direct weg | Verwijst naar de verbindingsfoutflow in UC-DOC-LIVE-008. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft dat de docent live meekijken bewust start en alleen-lezen volgt binnen eigen docentcontext. |
| Technisch Ontwerp | Technisch Ontwerp: live meekijken met SignalR, oefenruns en voortgang en readmodels en livebeschikbaarheid beschrijven de technische uitwerking. Werkt startverwerking uit met hercontrole, LiveViewAudit en SignalR-koppeling. |
| Software Requirements Specification | Borgt eisen voor hercontrole, auditregistratie, read-only gedrag en realtime koppeling. |
| Database-informatie | LiveViewAudit is verplicht bij succesvolle start; ExerciseRun en ExerciseRunProgress blijven ongewijzigd. |
| Ontwerpbronnen | Command- en autorisatieregels beschrijven het starten van een live-meekijksessie binnen docentcontext. |
| Popup-register | De usecase verwijst uitsluitend naar PopupKey POP-DOC-LIVE-001 en POP-DOC-LIVE-002. |
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-003-001 | SRS-TCH-001 SRS-LIVE-001 AC-TCH-001 AC-LIVE-001 | Live meekijken alleen starten na een expliciete actie van de docent |
REQ-UC-DOC-LIVE-003-002 | SRS-AUTH-001 SRS-REL-001 SRS-LRN-001 SRS-TCH-001 AC-AUTH-001 AC-REL-001 AC-LRN-001 AC-TCH-001 | Bij start de docentcontext, relatie, autorisatie en actieve run opnieuw server-side valideren |
REQ-UC-DOC-LIVE-003-003 | SRS-TCH-001 SRS-LIVE-003 SRS-NFR-AUD-001 AC-TCH-001 AC-LIVE-003 AC-NFR-AUD-001 | Bij succesvolle start een LiveViewAudit-record aanmaken |
REQ-UC-DOC-LIVE-003-004 | SRS-LRN-003 SRS-TCH-001 SRS-ARCH-003 AC-LRN-003 AC-TCH-001 AC-ARCH-003 | Bij succesvolle start de docent verbinden met de realtime voortgangsstroom van de exercise run |
REQ-UC-DOC-LIVE-003-005 | SRS-LRN-003 SRS-TCH-001 SRS-LIVE-001 AC-LRN-003 AC-TCH-001 AC-LIVE-001 | Voorkomen dat een docent via live meekijken antwoorden of voortgang van de leerling wijzigt |
REQ-UC-DOC-LIVE-003-006 | SRS-AUTH-001 SRS-LRN-009 SRS-TCH-001 SRS-LIVE-001 AC-AUTH-001 AC-LRN-009 AC-TCH-001 AC-LIVE-001 | Live meekijken blokkeren wanneer de run niet langer actief of niet langer zichtbaar is binnen de docentcontext |
REQ-UC-DOC-LIVE-003-007 | SRS-AUTH-001 SRS-LRN-001 SRS-TCH-001 SRS-LIVE-003 SRS-NFR-AUD-001 AC-AUTH-001 AC-LRN-001 AC-TCH-001 AC-LIVE-003 AC-NFR-AUD-001 | Succesvolle live-meekijksessies auditbaar vastleggen met actor, rolcontext, leerling, run en startmoment |
REQ-UC-DOC-LIVE-003-008 | SRS-AUTH-001 SRS-TCH-001 SRS-LIVE-002 AC-AUTH-001 AC-TCH-001 AC-LIVE-002 | Meerdere gelijktijdige bevoegde meekijkers kunnen ondersteunen binnen hun eigen autorisatiegrenzen |
REQ-UC-DOC-LIVE-003-009 | SRS-LRN-001 SRS-TCH-001 SRS-LIVE-001 AC-LRN-001 AC-TCH-001 AC-LIVE-001 | De leerlingrun ongewijzigd laten door het starten van live meekijken |
REQ-UC-DOC-LIVE-003-010 | SRS-SHR-001 SRS-TCH-001 SRS-LIVE-001 SRS-NFR-SEC-001 AC-SHR-001 AC-TCH-001 AC-LIVE-001 AC-NFR-SEC-001 | Een startfout veilig afhandelen zonder gedeeltelijke live-meekijksessie |