Deze map bevat de usecases voor het domein Docent binnen OefenHub. Het domein beschrijft hoe een docent onderwijsinhoud beheert, leerlingen binnen de eigen docentcontext ondersteunt, niveau-autorisaties toepast, resultaten bekijkt, live meekijkt en samenwerkt met andere docenten aan niveaus en oefeningen.
De docentusecases zijn procesgericht. De schermdocumentatie blijft de bron voor exacte UI-opbouw, labels, knoppen, tabbladen, iconen, tekstuele microcopy en responsive gedrag. Deze usecases beschrijven vooral gedrag, autorisatie, server-side controles, beslismomenten, datamutaties, events, audit, readmodels en de samenhang met generieke domeinen zoals relaties, berichten, profiel, account en systeemnotificaties.
Subdomeinen
| Subdomein | Omschrijving |
|---|
| Docent-frontpage en context | Beschrijft de docent-frontpage, docentcontext, samenvattingsblokken en gecombineerde docent/ouder-frontpage. |
| Oefenaanbod, niveaus en categorieën | Beschrijft het openen van oefenaanbod, niveaukeuze, niveaubeheer en categorieën binnen een docentniveau. |
| Oefeningen configureren en testen | Beschrijft het bekijken, aanmaken, configureren, activeren, kopiëren en testen van oefeningen. |
| Samenwerking, collaborators en eigenaarschap | Beschrijft collaboratorbeheer op niveau-laag, collaboratorrechten, eigendomsoverdracht en auditbaarheid. |
| Leerlingen en niveau-autorisaties | Beschrijft leerlingenoverzicht, leerlingdetails en het toekennen of intrekken van niveau-autorisaties. |
| Resultaten en geschiedenis | Beschrijft het bekijken van leerlinggeschiedenis en resultaten binnen de eigen docentcontext. |
| Online en live meekijken | Beschrijft online leerlingen, beschikbaarheid van live meekijken, meekijksessies, SignalR-updates en verbindingafhandeling. |
Usecasebundels
Docent-frontpage en context
Oefenaanbod, niveaus en categorieën
Samenwerking, collaborators en eigenaarschap
Leerlingen en niveau-autorisaties
Resultaten en geschiedenis
Online en live meekijken
Relevante schermdocumentatie en contexten
| Scherm / context | Relevantie |
|---|
| Docent-frontpage | Startpunt voor de docent met overzichts- en oriëntatieblokken. |
| Oefenaanbod | Centrale route voor niveaus, categorieën en concrete oefeningen. |
| Leerlingen | Centrale route voor leerlingenoverzicht en niveau-autorisaties. |
| Online | Centrale route voor online leerlingen en live meekijken. |
| Resultaat- en geschiedenisweergaven | Worden gebruikt binnen de docentcontext, maar blijven autorisatiebegrensd. |
| Profiel / rolcontext | Bepaalt of de gebruiker een actieve docentrol heeft. |
| Generiek — Relaties | Bronhouder voor docent-leerlingrelaties en docent-docentrelaties. |
| Generiek — Berichten en systeemberichten | Bronhouder voor systeemcommunicatie en privéberichten. |
| Ontwerpbronnen — Autorisatiematrix | Centrale bron voor toegestane docentacties per object en context. |
| Ontwerpbronnen — Business rules | Centrale bron voor regels rond docentcontext, niveaus, autorisaties, oefenstatus en live meekijken. |
| Ontwerpbronnen — Popup-register | Centrale bron voor popupkeys, popupteksten, knopacties en inputvelden. |
Domeinafbakening
| Onderwerp | Afbakening |
|---|
| Docentcontext | Wordt server-side bepaald uit actieve rollen, relaties, eigenaarschap, collaboratorstatus en autorisaties. |
| Frontpage | Is een read-only overzichts- en oriëntatiepagina en voert geen diepe beheeracties uit. |
| Oefenaanbod | Omvat niveaus, categorieën en oefeningen binnen de docentcontext. |
| Niveaus | Kunnen door docenten worden aangemaakt en beheerd binnen de toegestane eigenaar- of collaboratorcontext. |
| Categorieën | Zijn centrale objecten. De docent kan koppelen of aanmaken via de docentflow, maar zwaar centraal onderhoud blijft beheerderfunctionaliteit. |
| Oefeningen | Zijn concrete docentconfiguraties op basis van technische modules. |
| Testoefeningen | Zijn bedoeld voor docentcontrole en leveren geen permanente leerlingresultaten op. |
| Leerlingen | Worden alleen getoond binnen de eigen docentcontext. Andere docentrelaties van dezelfde leerling worden niet zichtbaar gemaakt. |
| Niveau-autorisaties | Worden door de docent toegekend of ingetrokken voor eigen leerlingen en eigen niveaus. |
| Resultaten | Zijn alleen zichtbaar voor niveaus die binnen de docentcontext toegestaan zijn. |
| Live meekijken | Is alleen-lezen en alleen toegestaan binnen de eigen docentcontext en actuele autorisatiegrenzen. |
| Collaborators | Mogen aan inhoud binnen een niveau werken, maar krijgen geen toegang tot leerlingen, resultaten, geschiedenis of live meekijken. |
| Eigenaarschap | Kan alleen worden overgedragen naar een bestaande actieve collaborator en vereist een reden. |
| Relatievorming | Uitnodigen, accepteren, afwijzen en ontkoppelen van relaties blijft bronhoudend in generieke relatieusecases. |
| Account en profiel | Login, rolcontext, profielgegevens en toegankelijkheid blijven bronhoudend in generieke account- en profielusecases. |
Docentcontext en rechten
| Context | Betekenis | Belangrijkste begrenzing |
|---|
| Docent als eigenaar | De docent is actuele eigenaar van een niveau. | Mag niveau-inhoud beheren binnen de geldende regels. |
| Docent als collaborator | De docent is actief collaborator op een niveau. | Mag meewerken aan inhoud, maar krijgt geen leerling- of resultaattoegang door collaboratorstatus alleen. |
| Docent-leerlingrelatie | De docent heeft een actieve relatie met een leerling. | Voor leerlingbeheer en niveau-autorisaties is deze context noodzakelijk. |
| Niveau-autorisatie | Een leerling heeft toegang tot een niveau via deze docentcontext. | Bepaalt oefentoegang voor de leerling en resultaatinzage voor de docent. |
| Gecombineerde docent/ouderrol | Dezelfde gebruiker heeft naast docent ook ouder/voogd. | Contexten blijven gescheiden; docentblokken komen vóór ouder-/voogdblokken op gecombineerde frontpage. |
| Geen geldige docentcontext | De gebruiker heeft geen actieve docentrol of geen toegang tot het gevraagde object. | Routeguard of toegang-geweigerdafhandeling blokkeert de actie. |
Bijzondere regels
| Onderwerp | Regel |
|---|
| Server-side autorisatie | Clientstate, routeparameters en oude browsercontext zijn nooit leidend voor docenttoegang. |
| Frontpage | De docent-frontpage toont samenvatting en oriëntatie, maar voert geen contextafhankelijke mutaties uit. |
| Contextacties | Acties waarvoor eerst een leerling, niveau, categorie, oefening of run gekozen moet worden, starten via de achterliggende routes. |
| Niveaueigenaarschap | Een niveau heeft precies één actuele eigenaar. |
| Collaborators | Samenwerking op niveau-laag geeft inhoudelijke bewerkrechten, geen leerlingtoegang of resultaatinzage. |
| Categorie-identiteit | Centrale categorie-eigenschappen zijn gedeeld. Docentflows mogen deze niet vrij blijven wijzigen nadat gedeeld gebruik relevant is. |
| Oefeningstatus | IsActive = false betekent In onderhoud en is niet zichtbaar/startbaar voor leerlingen. |
| Testmodus | Testoefeningen van docenten worden niet permanent als leerlingresultaten opgeslagen. |
| Leerlingzichtbaarheid | Een docent ziet geen informatie over andere docentrelaties van dezelfde leerling. |
| Resultaatinzage | Een docent ziet alleen resultaten binnen de niveaus die door deze docentcontext zijn geautoriseerd. |
| Live meekijken | Live meekijken is alleen-lezen, contextgebonden en auditbaar via live-meekijksessiegegevens. |
| Systeemberichten | Communicatie over autorisatiewijzigingen gebruikt het centrale berichten-/systeemberichtendomein. |
| Popups | Usecases verwijzen alleen naar PopupKey; teksten, knoppen en themes blijven centraal in popup-register en popup-themes. |
| Audit | Inhoudelijke wijzigingen aan niveaus, oefeningen, collaborators, eigenaarschap en autorisaties moeten herleidbaar zijn. |
Samenhang met andere domeinen
| Domein | Samenhang |
|---|
| Generiek / Account | Bepaalt login, sessiecontext, actieve rollen en routeguardbasis. |
| Generiek / Profiel | Beheert profielgegevens, niveaukeuze en voorkeuren. |
| Generiek / Relaties | Beheert docent-leerlingrelaties en docent-docentrelaties. |
| Generiek / Berichten | Verwerkt systeemberichten en privéberichten die vanuit docentflows ontstaan. |
| Generiek / Systeemnotificaties | Worden na normale frontpage- of routeweergave verwerkt en niet door docentusecases zelf aangemaakt. |
| Leerling / Oefenaanbod en toegang | Gebruikt de uitkomst van docentniveau, categorieën, oefeningen en niveau-autorisaties. |
| Leerling / Oefenen en voortgang | Levert exercise runs en voortgang die docentresultaten en live meekijken voeden. |
| Beheerder / Content en ondersteuning | Beheerderflows kunnen centrale categorieën, modules en docentondersteuning beheren, maar dupliceren de docentflow niet. |
De meeste docentusecases gebruiken alleen bestaande of later centraal te beheren popupkeys. Popupinhoud wordt niet in deze intro of in de usecases gedupliceerd.
| Subdomein | Popupgebruik |
|---|
| Docent-frontpage en context | Geen domeinspecifieke popup; routeguard, lege staten en componentgedrag zijn leidend. |
| Oefenaanbod, niveaus en categorieën | Mogelijke bevestigingen en foutmeldingen bij mutaties, gekoppeld aan centrale popupkeys. |
| Oefeningen configureren en testen | Mogelijke bevestigingen bij statuswijziging, configuratievalidatie, testflow en foutafhandeling. |
| Samenwerking, collaborators en eigenaarschap | Bevestigingen en verplichte redenvelden bij ontkoppelen en eigendomsoverdracht. |
| Leerlingen en niveau-autorisaties | Bevestigingen en meldingen bij autorisatie toekennen, intrekken of bulkbeheer. |
| Resultaten en geschiedenis | Meestal geen mutatiepopups; toegang buiten context gebruikt routeguard of toegang-geweigerdafhandeling. |
| Online en live meekijken | Verbindingsverlies en sessie-einde kunnen via popup- of componentafhandeling zichtbaar worden. |
Diagramgebruik binnen docent-usecases
| Diagramtype | Gebruik |
|---|
| Sequence diagram | Voor interacties tussen docent, frontend, backend, database, modulecomponenten, SignalR, PDF-service, berichtenservice en auditregistratie. |
| Decision flow | Voor autorisatiepaden, contextkeuzes, statuswissels, validatie en routeblokkades. |
| Data lifecycle | Voor aanmaken, wijzigen, activeren, deactiveren, kopiëren, testen en opruimen van relevante domeinrecords. |
| State diagram | Alleen bij echte statusobjecten of lifecyclewaarden, zoals oefeningstatus of live-meekijksessie. |
| UI-flowdiagram | Alleen wanneer meerdere schermen of modals anders lastig te volgen zijn. |
| ERD | Niet in usecases; hoort in database-informatie of domeinobjecten. |