UC-DOC-LIVE-002 — Live-meekijken beschikbaarheid bepalen
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-002 |
| Naam | Live-meekijken beschikbaarheid bepalen |
| Domein | Docent |
| Subdomein | Online leerlingen en live meekijken |
| Primaire actor | Docent |
| Secundaire actor(en) | Systeem, SignalR-/presencecomponent |
| Rolcontext | Ingelogde docent met actieve docentcontext en relatie/autorisatie tot de geselecteerde leerling |
| Betrokken schermen | Docentpagina Online; actiegebied bij geselecteerde leerling |
| Gerelateerde usecases | UC-DOC-LIVE-001; UC-DOC-LIVE-003; UC-LLN-OEF-004; UC-LLN-OEF-007 |
| Primaire entiteiten | Users, UserRelationships, TeacherStudentLevelAuthorizations, ExerciseRuns, ExerciseRunProgress |
| Secundaire entiteiten / events | OnlinePresence readmodel, SignalR connection state |
| Gerelateerde popups | Geen popup in normale bepaling; blokkades worden als uitgeschakelde actie of componentmelding weergegeven |
| Popupregister | Niet van toepassing voor normale beschikbaarheidsbepaling |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe het systeem bepaalt of de actie Kijk live mee beschikbaar is voor een geselecteerde leerling in het online-overzicht van de docent.
Beschikbaarheid is geen simpele online-check. De leerling moet daadwerkelijk met een oefening bezig zijn én de betreffende oefening moet binnen de docentcontext vallen.
Een docent mag niet live meekijken met een oefening die buiten de eigen niveau-autorisatie of onderwijscontext valt.
De usecase resulteert in een geactiveerde of uitgeschakelde live-meekijkactie. De daadwerkelijke start van de meekijksessie gebeurt pas in UC-DOC-LIVE-003 en wordt bij start opnieuw server-side gevalideerd.
3. Scope
Binnen scope
- bepalen of de geselecteerde leerling online is
- bepalen of de leerling een actieve, niet-afgeronde oefenrun heeft
- controleren of de run binnen de docentcontext en niveau-autorisatie valt
- activeren of uitschakelen van de live-meekijkactie
- tonen van een functionele reden wanneer live meekijken niet beschikbaar is
- voorkomen dat clientstate de beschikbaarheid bepaalt
Buiten scope
- starten van de live-meekijksessie
- schrijven van LiveViewAudit
- tonen van de live-vraagweergave
- verwerken van SignalR-updates tijdens meekijken
- live meekijken door ouder/voogd
- beheerderanalyse van geschiedenis
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De docent bevindt zich op het online-overzicht of een gelijkwaardige docentcontext met leerlingselectie. |
| PRE-002 | De geselecteerde leerling is zichtbaar binnen de docentcontext. |
| PRE-003 | De server kan actuele presence- en oefenruninformatie raadplegen. |
| PRE-004 | De docent heeft een actieve docent-leerlingrelatie met de leerling voor de relevante context. |
| PRE-005 | Niveau-autorisaties zijn server-side beschikbaar om de onderwijscontext te controleren. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | Het systeem heeft bepaald of live meekijken voor de geselecteerde leerling beschikbaar is. |
| POST-002 | De live-meekijkactie is actief wanneer alle voorwaarden gelden. |
| POST-003 | De live-meekijkactie is uitgeschakeld of geblokkeerd wanneer één of meer voorwaarden ontbreken. |
| POST-004 | Er is geen live-meekijksessie gestart en geen LiveViewAudit-record aangemaakt. |
| POST-005 | De beschikbaarheid is gebaseerd op server-side context, niet op clientstate alleen. |
6. Trigger
De docent selecteert een leerling in het online-overzicht of het overzicht wordt herladen waardoor de beschikbaarheid van de actie Kijk live mee opnieuw moet worden bepaald.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Online-overzicht | Selecteert een leerling of bekijkt de actieregel. | Frontend vraagt of live meekijken beschikbaar is. | Leerling moet al zichtbaar zijn in UC-DOC-LIVE-001. |
| 2 | Systeem | Routeguard / backend | Controleert docentcontext. | Verifieert dat de actor een actieve docentrol heeft. | Server-side context is leidend. |
| 3 | Systeem | Relatiecontrole | Controleert actieve docent-leerlingrelatie. | Blokkeert beschikbaarheid wanneer de relatie ontbreekt of inactief is. | Generiek relatiedomein is bronhouder. |
| 4 | Systeem | Autorisatiecontrole | Controleert relevante niveau-autorisatie. | Bepaalt of de docent deze leerling binnen dit niveau mag begeleiden. | Alleen eigen docentcontext telt. |
| 5 | Systeem | Presencecomponent | Controleert of de leerling online is. | Als de leerling niet online is, blijft live meekijken uitgeschakeld. | Presence is runtime-informatie. |
| 6 | Systeem | ExerciseRun service | Zoekt actieve oefenrun van de leerling. | Alleen een lopende, niet-afgeronde leerlingrun kan live worden gevolgd. | IsTestRun=false voor leerlingcontext. |
| 7 | Systeem | Contextcontrole | Controleert niveau, categorie en oefening van de actieve run. | Run moet binnen de docentcontext zichtbaar zijn. | Geen toegang buiten eigen context. |
| 8 | Systeem | Frontend readmodel | Levert beschikbaarheidsstatus en reden op. | Frontend toont actieve of uitgeschakelde actie. | Geen mutatie. |
| 9 | Docent | Online-overzicht | Ziet of de actie beschikbaar is. | Kan bij beschikbaarheid kiezen voor live meekijken. | Start gebeurt in UC-DOC-LIVE-003. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Docentcontext ontbreekt of is verlopen. | Routeguard blokkeert of vraagt nieuwe authenticatie/context. | Routeguardafhandeling, geen popupregister-popup. | Geen. |
| ALT-002 | 3 | Docent-leerlingrelatie is niet actief. | Live-meekijken wordt niet beschikbaar. | Uitgeschakelde actie of componentmelding. | Geen. |
| ALT-003 | 4 | Niveau-autorisatie ontbreekt of is ingetrokken. | Live-meekijken wordt niet beschikbaar voor deze run. | Uitgeschakelde actie of componentmelding. | Geen. |
| ALT-004 | 5 | Leerling is niet online. | Actie blijft uitgeschakeld. | Uitgeschakelde actie of componentmelding. | Geen. |
| ALT-005 | 6 | Leerling is online maar oefent niet. | Actie blijft uitgeschakeld; geschiedenis bekijken kan eventueel wel beschikbaar blijven. | Uitgeschakelde actie of componentmelding. | Geen. |
| ALT-006 | 6 | Alleen een afgeronde of onderbroken run is gevonden. | Live-meekijken wordt niet beschikbaar omdat er geen actuele actieve oefencontext is. | Uitgeschakelde actie of componentmelding. | Geen. |
| ALT-007 | 7 | Actieve run valt buiten docentcontext. | Run wordt niet live beschikbaar gemaakt. | Uitgeschakelde actie of componentmelding. | Geen. |
| ALT-008 | 8 | Beschikbaarheid verandert tijdens het laden. | Bij start van UC-DOC-LIVE-003 wordt opnieuw gevalideerd. | Zo nodig POP-DOC-LIVE-001. | Geen in deze usecase. |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Live meekijken voor een docent is alleen beschikbaar voor leerlingen binnen een actieve docent-leerlingrelatie. |
| BR-002 | Live meekijken is alleen beschikbaar wanneer de leerling daadwerkelijk met een niet-afgeronde oefenrun bezig is. |
| BR-003 | De actieve oefenrun moet binnen de eigen niveau-autorisatie en docentcontext van de docent vallen. |
| BR-004 | Een docent mag niet live meekijken met oefeningen buiten de eigen onderwijscontext. |
| BR-005 | Online zijn zonder actieve oefenrun is onvoldoende om live meekijken beschikbaar te maken. |
| BR-006 | Beschikbaarheid in de UI is informatief; de startactie moet server-side opnieuw valideren. |
| BR-007 | De beschikbaarheidsbepaling maakt geen LiveViewAudit-record en start geen SignalR-meekijkgroep. |
| BR-008 | Beheerders mogen vanuit deze docentflow niet live meekijken. |
| BR-009 | Ouder-/voogdmeekijken gebruikt eigen autorisatieregels en valt buiten deze docentusecase. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| SelectedStudentId | Moet verwijzen naar een leerling die binnen de docentcontext zichtbaar is. |
| TeacherUserId | Komt uit server-side sessiecontext en niet uit clientinvoer. |
| Relationship | Moet actief zijn en het juiste docent-leerlingtype hebben. |
| LevelAuthorization | Moet actief zijn voor de relevante leerling, docent en niveaucontext. |
| ExerciseRun | Moet niet-afgerond, actueel, van de leerling en zichtbaar binnen de docentcontext zijn. |
| Presence | Wordt alleen gebruikt als runtime-indicatie en mag geen autorisatie vervangen. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-9 | Read | Users / relaties / autorisaties / ExerciseRuns | Alleen lezen voor de beschikbaarheidsbepaling. |
| 5 | Runtime read | Presence / SignalR state | Geen persistente mutatie. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| LiveViewAudit | Wordt pas aangemaakt bij daadwerkelijke start van live meekijken. |
| ExerciseRuns | Beschikbaarheid wijzigt de run niet. |
| ExerciseRunProgress | Voortgang wordt alleen gelezen. |
| SystemMessages | Beschikbaarheidsbepaling informeert de leerling niet. |
| UserRelationships | Relaties worden alleen gecontroleerd. |
| TeacherStudentLevelAuthorizations | Autorisaties worden alleen gecontroleerd. |
13. State diagram
Niet van toepassing. Beschikbaarheid is een afgeleide UI-/readmodeltoestand en geen persistent statusobject.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Normale beschikbaarheidsbepaling | De UI toont een actieve of uitgeschakelde actie met componentuitleg. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft dat Kijk live mee alleen beschikbaar is bij online leerling, actieve oefenrun en passende docentcontext. |
| Technisch Ontwerp | Technisch Ontwerp: live meekijken met SignalR, oefenruns en voortgang en readmodels en livebeschikbaarheid beschrijven de technische uitwerking. Werkt server-side beschikbaarheidscontrole uit op relatie, niveau-autorisatie, actieve run en presence. |
| Software Requirements Specification | Borgt dat UI-beschikbaarheid niet voldoende is en dat starten van live meekijken opnieuw server-side wordt gevalideerd. |
| Database-informatie | Gebruikt bestaande relatie-, autorisatie- en rungegevens plus runtime-presence; er ontstaat geen nieuw domeinrecord. |
| Ontwerpbronnen | Autorisatiematrix en business rules beschrijven live-meekijkbeschikbaarheid 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-002-001 | SRS-TCH-001 SRS-LIVE-001 AC-TCH-001 AC-LIVE-001 | Live-meekijken alleen beschikbaar tonen voor docenten met een actieve docentcontext |
REQ-UC-DOC-LIVE-002-002 | SRS-AUTH-004 SRS-REL-001 SRS-LRN-009 SRS-TCH-001 AC-AUTH-004 AC-REL-001 AC-LRN-009 AC-TCH-001 | Controleren of de geselecteerde leerling binnen een actieve docent-leerlingrelatie valt |
REQ-UC-DOC-LIVE-002-003 | SRS-AUTH-001 SRS-CAT-001 SRS-LRN-009 SRS-TCH-002 AC-AUTH-001 AC-CAT-001 AC-LRN-009 AC-TCH-002 | Controleren of de actieve oefenrun binnen de niveau-autorisatie van de docent valt |
REQ-UC-DOC-LIVE-002-004 | SRS-LRN-009 SRS-TCH-001 SRS-LIVE-001 AC-LRN-009 AC-TCH-001 AC-LIVE-001 | Live-meekijken uitschakelen wanneer de leerling niet online is |
REQ-UC-DOC-LIVE-002-005 | SRS-LRN-009 SRS-TCH-001 SRS-LIVE-001 AC-LRN-009 AC-TCH-001 AC-LIVE-001 | Live-meekijken uitschakelen wanneer de leerling geen actieve oefenrun heeft |
REQ-UC-DOC-LIVE-002-006 | SRS-TCH-001 SRS-LIVE-003 SRS-NFR-AUD-001 AC-TCH-001 AC-LIVE-003 AC-NFR-AUD-001 | Geen LiveViewAudit-record aanmaken tijdens de beschikbaarheidsbepaling |
REQ-UC-DOC-LIVE-002-007 | SRS-AUTH-001 SRS-TCH-001 SRS-LIVE-001 AC-AUTH-001 AC-TCH-001 AC-LIVE-001 | Bij start van live meekijken de beschikbaarheidsvoorwaarden opnieuw server-side valideren |
REQ-UC-DOC-LIVE-002-008 | SRS-TCH-001 SRS-LIVE-001 AC-TCH-001 AC-LIVE-001 | Een functionele reden kunnen tonen wanneer live meekijken niet beschikbaar is |