Docentfunctionaliteit
10.1 Doel
Docentfunctionaliteit ondersteunt het werken vanuit een actieve docentcontext binnen OefenHub.
Een docent gebruikt deze context om:
- onderwijsinhoud te beheren;
- niveaus aan te maken en te onderhouden;
- centrale categorieën aan niveaus te koppelen;
- concrete oefeningen te configureren;
- oefeningen te testen voordat leerlingen ze gebruiken;
- leerlingen binnen de eigen docentrelatie te raadplegen;
- niveauautorisaties aan leerlingen toe te kennen of in te trekken;
- resultaten en geschiedenis binnen de eigen docentcontext te bekijken;
- online leerlingen en actieve oefenruns te volgen;
- live mee te kijken met toegestane actieve oefenruns;
- samen te werken met andere docenten op niveau-laag;
- eigenaarschap van een niveau over te dragen.
De docentcontext is altijd server-side bepaald. Zichtbare navigatie, routeparameters, clientstate, browsergeschiedenis, filters of oude frontendselecties mogen nooit bepalen welke leerlingen, niveaus, oefeningen, resultaten of live-sessies voor een docent toegankelijk zijn.
Dit hoofdstuk beschrijft de functionele samenhang van het docentdomein. Detailflows blijven bronhoudend in de docentusecases. Schermspecifieke velden, componenten, acties, lege toestanden en waardelagen blijven bronhoudend in de schermdocumentatie.
10.2 Domeinafbakening
| Onderdeel | Binnen docentfunctionaliteit | Buiten dit hoofdstuk |
|---|---|---|
| Docentcontext | Bepalen welke docentwerkruimte, routes en datasets toegankelijk zijn. | Authenticatie, provisioning en algemene roltoekenning. |
| Oefenaanbod | Werken vanuit één geselecteerd niveau met categorieën en oefeningen. | Leerlingfrontpage of vrije oefencatalogus voor leerlingen. |
| Niveaus | Aanmaken, selecteren, wijzigen en beheren van docentniveaus. | Centrale onderwijs-taxonomie buiten docentcontext. |
| Categorieën | Bestaande centrale categorieën koppelen of een nieuwe centrale categorie via docentflow aanmaken. | Beheerdermigratie, hernoemen, deactiveren en samenvoegen van centrale categorieën. |
| Oefeningen | Concrete oefeningen binnen niveau en categorie aanmaken, configureren, bewerken, activeren of in onderhoud zetten. | Technische moduleontwikkeling en centraal modulebeheer. |
| Testen | Oefeningen in testmodus doorlopen zonder permanente leerlinggeschiedenis. | Reguliere leerlingruns of ouder-/voogdresultaten. |
| Leerlingen | Leerlingen binnen actieve docent-leerlingrelatie zoeken, filteren en openen. | Relatie-uitnodigingen, relatieacceptatie of profielbeheer. |
| Niveauautorisaties | Leerlingen toegang geven tot niveaus binnen de docentcontext. | Rollen wijzigen of docent-leerlingrelaties aanmaken. |
| Resultaten | Afgeronde leerlingruns binnen eigen docentcontext raadplegen. | Ouder-/voogdgeschiedenis over alle niveaus of beheerderanalyse buiten docentcontext. |
| Live meekijken | Read-only meekijken met actieve leerlingrun binnen docentcontext. | Antwoorden geven, corrigeren, pauzeren of afronden namens leerling. |
| Collaborators | Samenwerking tussen docenten op niveau-laag beheren. | Toegang tot elkaars leerlingen, resultaten of live-meekijksessies. |
| Eigenaarschap | Eigenaarschap van een niveau overdragen aan een actieve collaborator. | Account-lifecycle, automatische overdracht bij anonimisering of beheerderforceeracties. |
| Beheerderondersteuning | Supportmatig raakvlak met docentcontext benoemen. | Volledige beheerderfunctionaliteit of centraal categorie-/modulebeheer. |
Een docentfunctie mag geen impliciete beheerderfunctionaliteit worden. Een beheerderfunctie mag op haar beurt niet stilzwijgend docentrelaties, leerlingtoegang of docentresultaatinzage omzeilen buiten de expliciete beheerderondersteuningsflow.
10.3 Bronpositie
Docentfunctionaliteit gebruikt meerdere bronlagen.
| Bronlaag | Betekenis |
|---|---|
| FO | Beschrijft de functionele samenhang, domeingrenzen en hoofdregels. |
| Usecases | Beschrijven procesflows voor oefenaanbod, oefeningen, leerlingen, autorisaties, resultaten, live meekijken, samenwerking en eigenaarschap. |
| Schermdocumentatie | Beschrijft zichtbare componenten, acties, velden, lege toestanden en schermspecifiek gedrag. |
| Database-informatie | Beschrijft brondata zoals TeacherLevels, TeacherLevelCollaborators, TeacherStudentLevelAccess, Exercises, ExerciseRuns en historytabellen. |
| Ontwerpbronnen | Beschrijven business rules, autorisatiematrix, statusmodellen, popupregister, command-register en event-register. |
| Oefenmodule-documentatie | Beschrijft modulespecifieke configuratievelden, payloads, validatie en rendergedrag. |
| Mockups | Ondersteunen visuele interpretatie, maar zijn geen bron voor definitieve datawaarden of autorisatie. |
Het FO dupliceert geen volledige usecases, schermspecificaties of databasevelden. Waar die bronnen leidend zijn, verwijst dit hoofdstuk naar de betreffende bronbestanden.
10.4 Hoofdnavigatie binnen docentcontext
De docentcontext bevat minimaal de hoofdonderdelen:
| Navigatie-item | Primair doel |
|---|---|
| Oefenaanbod | Niveaus, categorieën en concrete oefeningen beheren. |
| Leerlingen | Gekoppelde leerlingen zoeken, filteren, openen en autorisaties beheren. |
| Online | Online leerlingen en actieve oefenruns raadplegen en live meekijken waar toegestaan. |
De docent-frontpage is een overzichts- en oriëntatiepagina. Die frontpage toont samenvattingen, maar voert geen diepe beheeracties uit waarvoor eerst een leerling, niveau, categorie of oefening geselecteerd moet worden.
De hoofdnavigatie blijft de primaire ingang naar de werkpagina’s. Wanneer de gebruiker gecombineerde rollen heeft, blijft binnen docentroutes de docentcontext functioneel gescheiden van ouder-/voogd- en beheerdercontext.
10.5 Docentcontext
Een geldige docentcontext vereist minimaal:
- een actief intern OefenHub-account;
- een actieve roltoekenning voor
Docent; - server-side sessiecontext;
- route- en actiecontrole op basis van actuele rolcontext;
- contextspecifieke controle op niveau, leerling, oefening, run of collaborator waar nodig.
Docentcontext is geen globaal recht op alle onderwijsinhoud.
| Dataset of actie | Vereiste context |
|---|---|
| Eigen niveaus zien | Docent is actuele eigenaar of actieve collaborator van het niveau. |
| Niveau aanmaken | Actieve docentrol. |
| Niveaukerngegevens wijzigen | Beheerrecht binnen het geselecteerde niveau. |
| Categorie koppelen | Beheerrecht binnen het niveau en toegestane centrale categorie. |
| Nieuwe centrale categorie via docentflow aanmaken | Beheerrecht binnen het niveau en geldige docentflow. |
| Oefening aanmaken of bewerken | Beheerrecht binnen niveau en categorie. |
| Oefening activeren | Geldige configuratie, actieve modulecontext en beheerrecht. |
| Leerling in leerlingenoverzicht zien | Actieve docent-leerlingrelatie. |
| Leerling aan niveau autoriseren | Actieve docent-leerlingrelatie en autoriseerbaar niveau binnen docentcontext. |
| Resultaat bekijken | Afgeronde reguliere run binnen eigen docentcontext. |
| PDF downloaden | Zelfde resultaattoegang als detailweergave. |
| Live meekijken | Actieve leerlingrun binnen docentcontext en live beschikbaarheid. |
| Collaborator beheren | Niveau-eigenaar of expliciet toegestane samenwerkingscontext. |
| Eigenaarschap overdragen | Actuele eigenaar kiest actieve collaborator als nieuwe eigenaar. |
Een oude selectie in browseropslag, querystring of routeparameter mag een inmiddels vervallen docentcontext niet opnieuw activeren.
10.6 Domeinobjecten en readmodels
| Object / readmodel | Functionele rol |
|---|---|
Users | Bevat docent-, leerling- en collaboratoraccounts die binnen context worden gelezen. |
UserRoles / Roles | Bepalen of de gebruiker een actieve docentrol heeft. |
UserRelationships | Levert docent-leerlingrelaties en docent-docentrelaties. |
TeacherLevels | Bron voor docentniveaus, actuele eigenaar, beschrijving, zichtbaarheid en actieve status. |
TeacherLevelCollaborators | Bron voor actieve samenwerking op niveau-laag. |
TeacherLevelOwnershipTransfers | Historylaag voor eigendomsoverdracht van niveaus. |
Categories | Centrale categorie-identiteit met naam, kleur en icoon. |
TeacherLevelCategories | Koppeling tussen docentniveau en centrale categorie. |
Exercises | Concrete oefening binnen niveau/categorie met moduleverwijzing, metadata, status en configuratiepayload. |
ExerciseModules | Centrale modulemetadata en beschikbaarheid voor modulekeuze. |
ExerciseHistory | Historylaag voor oefeningaanmaak, kopie, metadata-, configuratie- en statuswijzigingen. |
TeacherStudentLevelAccess | Niveauautorisaties van leerlingen binnen docentcontext. |
ExerciseRuns | Historische en actieve oefenruns voor resultaatinzage en live meekijken. |
ExerciseRunProgress | Operationele voortgang per vraag voor actieve runs en live meekijken. |
LiveViewAudit | Audit van daadwerkelijk gestarte live-meekijksessies. |
SystemMessages | Informatieve systeemcommunicatie bij relevante docentacties, zoals autorisatiewijzigingen of samenwerkingswijzigingen. |
| Docentfrontpage-readmodel | Samenvatting voor de docentfrontpage; geen brondata. |
| Oefenaanbod-readmodel | Afgeleide weergave van niveaus, categorieën, oefeningen en aantallen binnen docentcontext. |
| Leerlingen-readmodel | Afgeleide weergave van gekoppelde leerlingen en autorisatiestatussen. |
| Resultaten-readmodel | Afgeleide weergave van afgeronde runs binnen docentcontext. |
| Online-readmodel | Afgeleide weergave van online leerlingen en livebeschikbaarheid. |
Readmodels zijn geen tweede bron van waarheid. Mutaties worden altijd uitgevoerd op het bronobject of de bronkoppeling.
10.7 Oefenaanbod als centrale docentwerkruimte
Oefenaanbod is het centrale startpunt waar de docent werkt met de eigen onderwijsstructuur.
De pagina werkt altijd vanuit één geselecteerd niveau. Vanuit dat niveau beheert de docent:
- niveaukerngegevens;
- zichtbaarheid van het niveau;
- gekoppelde categorieën;
- concrete oefeningen;
- oefeningstatussen;
- modulespecifieke configuratiepayloads;
- testen van oefeningen;
- collaborators;
- eigenaarschap;
- routes naar leerlingautorisatie.
Het openen van Oefenaanbod is read-only. Het bepaalt de toegankelijke niveaus en bouwt een weergave op, maar maakt of wijzigt geen niveaus, categorieën, oefeningen, autorisaties, runs of relaties.
10.7.1 Zichtbare niveaus in Oefenaanbod
Een docent ziet in Oefenaanbod alleen niveaus waarvoor hij of zij:
- actuele eigenaar is; of
- actieve collaborator is.
Beëindigde collaboratorrecords, oude relaties, inactieve docentrollen en routeparameters tellen niet mee als actieve toegang.
10.7.2 Samenvattingswaarden
Samenvattingswaarden in Oefenaanbod zijn afgeleide waarden.
| Waarde | Functionele afleiding |
|---|---|
| Actieve niveaus | Aantal actieve niveaus waarin docent eigenaar of actieve collaborator is. |
| Categorieën | Aantal actieve niveau-categorie-koppelingen binnen toegankelijke niveaus. |
| Actieve oefeningen | Aantal actieve concrete oefeningen binnen toegankelijke niveaus en categorieën. |
| Oefeningen in onderhoud | Aantal concrete oefeningen met IsActive = false binnen toegankelijke context. |
| Gekoppelde leerlingen | Aantal leerlingen met actieve docent-leerlingrelatie en relevante autorisatiecontext waar van toepassing. |
De exacte teldefinitie moet per scherm of readmodel eenduidig worden vastgelegd. Mockupwaarden zijn voorbeelddata.
10.8 Niveaus
Een docentniveau is de onderwijscontext waaronder categorieën, oefeningen, leerlingtoegang en samenwerking worden opgebouwd.
10.8.1 Niveau-identiteit
Een niveau bevat minimaal:
- naam;
- beschrijving;
- actuele eigenaar;
- zichtbaarheid;
- actieve status;
- aanmaak- en wijzigingsmetadata.
De actuele eigenaar is precies één docent. Een niveau kan daarnaast nul of meer actieve collaborators hebben.
10.8.2 Nieuw niveau aanmaken
Bij aanmaken legt de docent minimaal vast:
- naam;
- beschrijving;
- zichtbaarheid
OpenofPrivé.
De actuele eigenaar wordt automatisch de ingelogde docent.
Een nieuw niveau aanmaken maakt nog geen:
- categorieën;
- oefeningen;
- leerlingautorisaties;
- collaborators;
- resultaten;
- frontpagecontent.
Die onderdelen worden via vervolgflows beheerd.
10.8.3 Open en privé
| Zichtbaarheid | Functionele betekenis |
|---|---|
| Open | Het niveau kan breder vindbaar of bruikbaar zijn volgens de geldende leerling- en docentregels. |
| Privé | Toegang vereist expliciete docentcontext en leerlingautorisatie. |
De zichtbaarheid van het niveau is niet voldoende om een leerling toegang tot een concrete oefening te geven. Daarvoor moeten ook categorie, oefeningstatus, modulebeschikbaarheid en leerlingautorisatie kloppen.
10.8.4 Niveau wijzigen
Niveaukerngegevens kunnen alleen worden gewijzigd door een docent met beheerrecht binnen dat niveau.
Wijzigingen aan niveaugegevens:
- wijzigen geen centrale categorie-identiteit;
- wijzigen geen oefeningconfiguratie;
- wijzigen geen bestaande oefenruns;
- wijzigen geen afgeronde geschiedenis;
- wijzigen geen docent-leerlingrelatie;
- wijzigen geen collaboratorrechten tenzij de specifieke samenwerkingsflow wordt gestart.
10.9 Categorieën binnen docentniveaus
Categorieën zijn centrale identiteiten. Naam, kleur en icoon horen bij de centrale categorie en niet bij de niveaukoppeling.
Binnen Oefenaanbod kan een docent:
- een bestaande centrale categorie koppelen aan het geselecteerde niveau;
- via een zorgvuldige docentflow een nieuwe centrale categorie aanmaken en direct koppelen aan het geselecteerde niveau.
10.9.1 Bestaande centrale categorie koppelen
Het koppelen van een bestaande categorie:
- gebruikt een al bestaande centrale categorie;
- maakt een niveau-categorie-koppeling aan;
- voorkomt dubbele actieve koppelingen binnen hetzelfde niveau;
- legt actor en tijdstip vast;
- maakt de categorie nog niet automatisch zichtbaar voor leerlingen zonder actieve onderliggende oefening.
Het koppelen wijzigt niet:
- naam, kleur of icoon van de categorie;
- leerlingautorisaties;
- bestaande oefeningen;
- historische runs;
- centrale categoriemigraties.
10.9.2 Nieuwe centrale categorie via docentflow
Een docent kan een nieuwe centrale categorie aanmaken wanneer geen bestaande categorie passend is.
Daarvoor gelden aanvullende regels:
- de docent wordt gewaarschuwd dat categorieën centrale gedeelde identiteit hebben;
- naam, kleur en icoon worden direct bij aanmaak vastgelegd;
- het systeem controleert server-side op vereiste velden en mogelijke doublures;
- de nieuwe categorie wordt direct gekoppeld aan het geselecteerde niveau;
- aanmaak en koppeling worden historisch herleidbaar vastgelegd.
De docent krijgt hiermee geen onbeperkt beheer over centrale categorie-identiteit. Latere centrale wijzigingen, migraties, samenvoegingen, deactiveringen of uitfaseringen blijven beheerderfunctionaliteit.
10.9.3 Geen privé-categorieën per docent
Er bestaan geen docent-private categorieën met eigen afwijkende identiteit.
Wanneer twee docenten dezelfde centrale categorie gebruiken, zien leerlingen die categorie met dezelfde naam, kleur en icoon. Dit voorkomt dat dezelfde categorie in verschillende contexten verschillende betekenissen of stijlen krijgt.
10.9.4 Leerlingzichtbaarheid van categorieën
Een categorie wordt voor leerlingen pas relevant wanneer binnen de actuele leerling-, niveau- en autorisatiecontext minimaal één toegankelijke actieve oefening bestaat.
Een docentactie “categorie koppelen” is dus geen directe leerlingzichtbaarheidsactie.
10.10 Concrete oefeningen
Een concrete oefening is een configureerbare onderwijsinhoud binnen een niveau-categorie-context.
Een oefening bevat minimaal:
- naam;
- icoon;
- gekoppelde centrale categorie via de niveaucontext;
- gekoppelde technische module;
- modulespecifieke configuratiepayload;
- status
In onderhoudofActief; - aanmaak- en wijzigingsmetadata;
- history via
ExerciseHistory.
10.10.1 Nieuwe oefening aanmaken
Het aanmaken van een oefening verloopt in twee functionele stappen:
- de docent selecteert een beschikbare technische module;
- de docent vult generieke en modulespecifieke configuratie in en slaat definitief op.
Alleen het starten van de flow maakt nog geen definitieve oefening aan. Een concrete oefening ontstaat pas wanneer:
- de modulekeuze geldig is;
- de docent binnen de niveau- en categoriecontext mag bewerken;
- generieke velden geldig zijn;
- modulespecifieke configuratie geldig is;
- de opslag succesvol is.
Deze grens voorkomt half aangemaakte oefeningen wanneer de docent de flow annuleert of verlaat voordat de configuratie is opgeslagen.
10.10.2 Modulekeuze
De modulelijst is administratief/databasegedreven vanuit ExerciseModules.
Voor modulekeuze geldt:
- alleen administratief beschikbare modules mogen zichtbaar zijn;
- testzichtbare modules mogen alleen binnen de daarvoor bevoegde context verschijnen;
- de inhoudelijke modulebeschrijving komt uit de technische module-library of module-documentatie;
- modulespecifieke invoervelden horen niet op de generieke modulekeuzepagina;
- een concrete oefening verwijst na opslag naar precies één technische module.
10.10.3 Oefening configureren
Bij configureren vult de docent twee lagen in:
| Laag | Voorbeelden | Bronhouder |
|---|---|---|
| Generieke oefeningmetadata | Naam, icoon, status, niveau/categoriecontext. | OefenHub-platform. |
| Modulespecifieke configuratie | Modulevelden, parameters, validatie, vraaggeneratieregels. | Technische module. |
OefenHub blijft verantwoordelijk voor:
- server-side contextcontrole;
- opslag van het
Exercises-record; - generieke metadata;
- auditregistratie;
- status van de concrete oefening;
- veilige foutafhandeling.
De technische module blijft verantwoordelijk voor:
- betekenis van modulespecifieke velden;
- modulespecifieke validatie;
- vraaggeneratie;
- antwoordcontrole;
- module-specifieke render- of exportrepresentatie.
10.10.4 Configuratiepayload
De modulespecifieke configuratie wordt generiek opgeslagen als payload.
Voor dit hoofdstuk geldt dezelfde afbakening als in FO-22:
moduleKeyenschemaVersionhoren in de bestaande moduleconfiguratiepayload;- deze velden zijn voldoende voor module- en schemaherleidbaarheid;
- er wordt geen extra generieke databasekolom geïntroduceerd voor configuratieschemaherleidbaarheid;
- de technische module moet oudere payloadversies kunnen herkennen of veilig blokkeren volgens de modulecontractregels.
10.10.5 Status van oefeningen
Nieuwe oefeningen starten standaard in onderhoud.
| Status | Betekenis |
|---|---|
| In onderhoud | Niet zichtbaar of startbaar voor leerlingen. Beschikbaar voor docentbeheer en testflow waar toegestaan. |
| Actief | Kan beschikbaar worden voor leerlingen wanneer ook niveau-, categorie-, module- en autorisatiecontext geldig zijn. |
Activeren of in onderhoud zetten wijzigt alleen de status van de concrete oefening.
Deze actie wijzigt niet:
- niveauautorisaties;
- docent-leerlingrelaties;
- categorie-identiteit;
- technische modulebeschikbaarheid;
- bestaande afgeronde runs;
- bestaande geschiedenis;
- bestaande gedeelde oefeningen.
10.10.6 Kopiëren van oefeningen
Wanneer een docent een open oefening of open niveau-inhoud als uitgangspunt gebruikt, gebeurt dit via een expliciete kopieeractie.
Daarbij geldt:
- de nieuwe oefening wordt een zelfstandige concrete oefening;
- de bron wordt niet gewijzigd;
- de kopie krijgt een herleidbare bronrelatie zoals
ParentExerciseIdwaar van toepassing; - latere wijzigingen in de kopie beïnvloeden de bron niet;
- latere wijzigingen in de bron beïnvloeden de kopie niet;
- duplicaat- of afgeleide relaties mogen in overzichten zichtbaar of analyseerbaar zijn.
10.11 Oefeningen testen als docent
Een docent mag oefeningen testen vanuit de docentcontext.
De testflow gebruikt zoveel mogelijk dezelfde generieke run- en modulemechanismen als een leerlingrun, maar met duidelijke functionele verschillen.
| Aspect | Testflow docent | Reguliere leerlingrun |
|---|---|---|
| Actor | Docent. | Leerling. |
| Doel | Configuratie en werking controleren. | Oefenen en resultaat opbouwen. |
| Runmarkering | Testcontext / IsTestRun. | Reguliere run. |
| Geschiedenis | Geen permanente leerlinggeschiedenis. | Komt na afronding in geschiedenis. |
| Resultaatstatistieken | Tijdelijk voor testfeedback. | Persistente resultaatbron na afronding. |
| Ouder-/voogdinzage | Niet zichtbaar. | Zichtbaar volgens ouder-/voogdrelatie. |
| Docentresultaatinzage | Niet als leerlingresultaat. | Zichtbaar binnen docentcontext. |
| Cleanup | Na afronding, verlaten of geplande opruiming. | Blijft bestaan volgens runregels. |
Testruns mogen technisch tijdelijk in normale runstructuren bestaan zolang de test actief is. Zij mogen niet als reguliere leerlingresultaten worden behandeld.
Achtergebleven testruns en voortgangsregels worden via geplande verwerking opgeruimd volgens de daarvoor uitgewerkte usecase.
10.12 Leerlingenoverzicht
De pagina Leerlingen toont leerlingen binnen de eigen docentcontext.
Een leerling verschijnt alleen wanneer er een actieve docent-leerlingrelatie bestaat tussen de ingelogde docent en die leerling.
Het overzicht ondersteunt minimaal:
- zoeken;
- filteren;
- paginering;
- contextsamenvatting;
- compacte leerlingkaarten;
- toegang tot geschiedenis;
- toegang tot autorisaties.
10.12.1 Zichtbare leerlingdata
Per leerling zijn minimaal functioneel relevant:
- naam of gekozen naamweergave;
- autorisatiestatus binnen de huidige docentcontext;
- actieve niveaus door deze docent;
- eventueel laatst gezien of vergelijkbare readmodelwaarde waar toegestaan;
- acties naar Geschiedenis en Autorisaties.
E-mailadres hoeft niet standaard zichtbaar te zijn. Wanneer zoeken op e-mailadres wordt ondersteund, gebeurt dit alleen binnen de al toegestane leerlingdataset.
10.12.2 Privacygrenzen
Een docent ziet op de leerlingenpagina niet:
- leerlingen van andere docenten zonder eigen actieve docent-leerlingrelatie;
- andere docentrelaties van dezelfde leerling;
- ouder-/voogdrelaties van de leerling;
- profielvelden die niet nodig zijn voor docentcontext;
- resultaten buiten de eigen docentcontext;
- live-meekijkbeschikbaarheid buiten de online-flow.
Collaboratorrechten op een niveau geven geen toegang tot de leerlinglijst.
10.13 Niveauautorisaties
Niveauautorisaties bepalen welke niveaus en bijbehorende toegankelijke oefeningen binnen een docentcontext voor een leerling beschikbaar zijn.
Een niveauautorisatie is geen relatie. Voorwaarde voor autorisatie is een actieve docent-leerlingrelatie.
10.13.1 Individueel autoriseren
Bij individuele autorisatie werkt de docent vanuit precies één geselecteerde leerling.
Het systeem toont alleen niveaus:
- waarvoor de docent binnen de eigen context mag autoriseren;
- die binnen de actieve docentcontext vallen;
- die niet door routeparameters of clientstate buiten de toegestane dataset worden opgedrongen.
Bij opslaan vergelijkt het systeem de nieuwe selectie met de bestaande autorisatiestatussen.
| Wijziging | Functioneel gevolg |
|---|---|
| Nieuw aangevinkt niveau | Actieve niveauautorisatie ontstaat. |
| Bestaand actief niveau blijft aangevinkt | Geen nieuwe mutatie nodig. |
| Eerder actief niveau wordt uitgevinkt | Autorisatie wordt ingetrokken of gedeactiveerd. |
| Ongewijzigde selectie | Geen domeinmutatie. |
Intrekken van een niveauautorisatie haalt toekomstige toegang tot dat niveau weg, maar verwijdert geen historie of afgeronde oefenruns.
10.13.2 Bulkautorisatie
Bulkbeheer per niveau is een aparte docentflow.
Daarbij werkt de docent vanuit één geselecteerd niveau en beheert welke gekoppelde leerlingen toegang krijgen tot dat niveau.
Bulkbeheer:
- maakt geen docent-leerlingrelaties aan;
- toont alleen leerlingen binnen de docentcontext;
- mag niet leerlingen van andere docenten insluiten;
- moet wijzigingen auditbaar verwerken;
- kan systeemcommunicatie aan leerlingen veroorzaken waar dat functioneel is voorzien.
10.13.3 Gevolgen voor leerlingtoegang
Wanneer een leerling voor een niveau geautoriseerd is, kunnen actieve oefeningen binnen dat niveau beschikbaar worden zodra ook aan de overige voorwaarden is voldaan:
- niveau is geldig en toegankelijk;
- categorie is gekoppeld;
- oefening is actief;
- technische module is bruikbaar;
- leerlingcontext is geldig;
- eventuele feature- of systeemvoorwaarden zijn actief.
Nieuwe actieve oefeningen die later aan een geautoriseerd niveau worden toegevoegd, kunnen automatisch binnen dat niveau zichtbaar worden voor de leerling, mits de overige zichtbaarheidseisen kloppen.
10.14 Resultaten en geschiedenis binnen docentcontext
Een docent kan leerlinggeschiedenis, resultaatdetails, statistieken en PDF-export alleen raadplegen binnen de eigen docentcontext.
De bron is dezelfde historische ExerciseRuns-data als voor leerling en ouder/voogd. Er ontstaat geen aparte docentresultatentabel.
10.14.1 Resultaattoegang
Voor resultaattoegang gelden minimaal:
- actieve docentrol;
- geldige docentcontext;
- leerling binnen eigen docent-leerlingrelatie of geldige historische resultaatcontext;
- run binnen een niveau dat door deze docent voor de leerling is geautoriseerd of waarvoor de docent volgens geldende regels inzagerecht heeft;
- afgeronde reguliere run;
- geen testrun;
- server-side controle vóór lijst, detail, filter en PDF-export.
Een directe URL, filterwaarde, run-ID of browsergeschiedenis geeft nooit zelfstandig toegang tot resultaatdata.
10.14.2 Geschiedenis
Docentgeschiedenis toont alleen afgeronde reguliere runs binnen de toegestane docentcontext.
Niet getoond worden:
- niet-afgeronde runs;
- docenttestruns;
- runs buiten de docentcontext;
- resultaten van niveaus die door andere docenten zijn geautoriseerd zonder geldige eigen inzagecontext;
- ouder-/voogdcontext over alle niveaus.
10.14.3 Filters en paginering
Filters op niveau, categorie, oefening en periode werken alleen binnen de reeds geautoriseerde dataset.
Een filter mag geen dataset uitbreiden. Een lege filteruitkomst is een geldige toestand en geen autorisatiefout.
10.14.4 PDF-export
PDF-export binnen docentcontext gebruikt dezelfde autorisatiegrens als resultaatdetail.
De export:
- gebruikt historische runcontext;
- wijzigt geen run;
- maakt geen aparte docentresultaatdata;
- maakt geen verplicht permanent PDF-record;
- toont geen data buiten de docentcontext;
- gebruikt veilige module-representaties voor vraag- en antwoordinhoud.
De gedetailleerde PDF-layoutregels staan in FO-18.
10.15 Online leerlingen en live meekijken
De docentnavigatie bevat het onderdeel Online.
Dit domein toont online leerlingen en livebeschikbaarheid binnen de docentcontext.
10.15.1 Online-overzicht
Het online-overzicht toont alleen leerlingen die:
- een actieve docent-leerlingrelatie met de docent hebben;
- binnen de docentcontext zichtbaar mogen zijn;
- online- of oefenstatus hebben die volgens de privacyregels zichtbaar mag worden.
Online-status is een readmodel of sessie-afgeleide waarde en geen autorisatiebron.
10.15.2 Live meekijken
Live meekijken is alleen beschikbaar wanneer:
- de docent een actieve docentcontext heeft;
- de leerling binnen de docentcontext valt;
- de leerling een actieve niet-afgeronde oefenrun heeft;
- de run binnen een niveau valt waarvoor de docent de leerling toegang heeft gegeven;
- live meekijken functioneel beschikbaar is;
- de realtime-infrastructuur voldoende beschikbaar is;
- server-side hercontrole bij start slaagt.
Live meekijken is read-only.
Een docent mag tijdens live meekijken:
- actuele voortgang bekijken;
- eerdere of toekomstige vragen in browsemodus bekijken waar toegestaan;
- terugkeren naar de actuele livevraag;
- de eigen meekijksessie beëindigen.
Een docent mag niet:
- antwoorden invoeren;
- antwoorden corrigeren;
- voortgang aanpassen;
- de run afronden;
- de run pauzeren;
- vragen overslaan namens de leerling;
- leerlingresultaten wijzigen.
10.15.3 Audit van live meekijken
Bij succesvolle start van live meekijken wordt een LiveViewAudit-record aangemaakt.
Minimaal functioneel relevant zijn:
- viewer;
- rolcontext;
- leerling;
- oefenrun;
- startmoment;
- eindmoment waar beschikbaar.
Een mislukte start maakt geen succesvolle live-view-audit aan, maar kan wel technisch of beveiligingsmatig gelogd worden.
10.16 Collaborators
Collaborators werken op niveau-laag.
Een collaborator is een docent met actieve samenwerking op een specifiek niveau. De algemene docent-docentrelatie is een voorwaarde voor het aangaan van collaboration, maar het concrete bewerkrecht op niveau-laag wordt gedragen door het collaboratorrecord.
10.16.1 Rechten van collaborators
Een actieve collaborator mag binnen het gekozen niveau meewerken aan onderwijsinhoud, zoals:
- niveau-inhoud raadplegen;
- categorieën binnen het niveau beheren waar toegestaan;
- oefeningen aanmaken of bewerken waar toegestaan;
- oefeningen testen;
- relevante configuraties wijzigen;
- samenwerkingscontext bekijken.
Een collaborator krijgt hierdoor niet automatisch toegang tot:
- leerlingen van de eigenaar;
- leerlingresultaten;
- leerlinggeschiedenis;
- live meekijken;
- ouder-/voogddata;
- beheerderfuncties;
- account- of profielbeheer.
Voor leerling-, resultaat- of live-toegang blijft een eigen actieve docent-leerlingrelatie en relevante niveaucontext vereist.
10.16.2 Collaborators koppelen en ontkoppelen
Collaborators kunnen alleen worden gekoppeld volgens de samenwerkingsflow.
Functionele regels:
- de kandidaat moet een docent zijn;
- er moet een geldige docent-docentcontext bestaan of een expliciete beheerder-supportflow die dit forceert;
- de actuele eigenaar van het niveau wordt niet als collaborator van hetzelfde niveau opgenomen;
- actieve dubbele collaboratorrecords zijn niet toegestaan;
- ontkoppelen is soft-deactivatie met auditinformatie;
- beëindiging van een algemene docent-docentrelatie trekt bestaande collaboratorrecords niet automatisch in.
10.17 Eigenaarschap overdragen
Ieder niveau heeft precies één actuele eigenaar.
Eigenaarschap is zwaarder dan collaboratorrechten. De eigenaar beheert onder meer niveaukern, collaborators en overdracht van eigenaarschap.
10.17.1 Overdrachtsregels
Een eigenaar kan eigenaarschap alleen overdragen aan een actieve collaborator van hetzelfde niveau.
Bij overdracht geldt:
- de actor is de actuele eigenaar;
- de nieuwe eigenaar is een actieve collaborator;
- previous owner en new owner zijn verschillend;
- een reden is verplicht;
TeacherLevels.OwnerTeacherUserIdwordt gewijzigd;- de overdracht wordt in history vastgelegd;
- de oude eigenaar blijft standaard actieve collaborator of wordt dat opnieuw;
- betrokken docenten kunnen via systeemcommunicatie worden geïnformeerd.
Overdracht maakt geen:
- nieuwe docent-docentrelatie;
- nieuwe leerlingautorisatie;
- nieuwe oefening;
- nieuwe categorie;
- nieuwe run;
- beheerdercontext.
10.17.2 Ongeldige kandidaten
Niet geldig als nieuwe eigenaar zijn onder meer:
- willekeurige docenten zonder actieve collaboratorstatus;
- leerlingen;
- ouders/voogden;
- beheerders zonder docentcontext, tenzij een aparte beheerderondersteuningsflow dit expliciet afhandelt;
- inactieve accounts;
- de huidige eigenaar zelf.
10.18 Systeemcommunicatie vanuit docentflows
Docentflows kunnen systeemcommunicatie veroorzaken wanneer dit functioneel nodig is.
Voorbeelden:
- leerling krijgt informatie over nieuwe of ingetrokken niveauautorisatie;
- collaborator krijgt informatie over samenwerking;
- betrokken docenten krijgen informatie over eigendomsoverdracht;
- docent krijgt beheerderondersteuningscommunicatie waar relevant.
Systeemcommunicatie is informatief. Het lezen van een systeembericht kent geen autorisatie toe, maakt geen intrekking ongedaan en wijzigt geen niveau, oefening, relatie of run.
Systeemberichten blijven onderdeel van het centrale berichtendomein. Docentflows dupliceren geen mailboxlogica.
10.19 Beheerderondersteuning op docentcontext
Beheerders kunnen via Docent ondersteuning supportmatig inspecteren of corrigeren binnen één geselecteerde docentcontext.
Deze ondersteuning:
- is geen gewone docentroute;
- is geen centraal categoriebeheer;
- is geen centraal modulebeheer;
- geeft geen stille leerlingtoegang buiten de expliciete supportflow;
- moet auditbaar zijn;
- mag bestaande relaties, collaborators en leerlingtoegang alleen corrigeren waar de beheerderusecases dit toestaan.
Beheerderondersteuning mag docentinhoud supportmatig benaderen, maar mag de functionele grenzen van docentcontext niet onzichtbaar verruimen voor reguliere docentgebruikers.
10.20 Tellers en readmodels
Docentpagina’s tonen meerdere samenvattingswaarden.
Voor iedere teller moet duidelijk zijn:
| Aspect | Vraag |
|---|---|
| Objectscope | Worden niveaus, categorieën, oefeningen, leerlingen, runs of relaties geteld? |
| Rolcontext | Geldt de actieve docentcontext? |
| Eigenaarschap | Tellen alleen eigen niveaus of ook collaboratorniveaus mee? |
| Statusfilter | Tellen inactieve, verlopen, ingetrokken of soft-deleted records mee? |
| Oefeningstatus | Tellen alleen actieve oefeningen of ook oefeningen in onderhoud? |
| Testdata | Tellen testruns of testmodules mee? |
| Relatiecontext | Is een actieve docent-leerlingrelatie vereist? |
| Tijdvenster | Geldt een periode, bijvoorbeeld recente wijzigingen? |
| Distinct-logica | Wordt per uniek object of per koppeling geteld? |
| Autorisatie | Is de teller opgebouwd uit data die de docent mag zien? |
Tellers zijn readmodelgedrag en geen zelfstandige brondata.
10.21 Audit en history
Docentmutaties moeten historisch herleidbaar zijn.
| Mutatie | Minimale history / audit |
|---|---|
| Niveau aanmaken | Actor, tijdstip, niveau, initiële waarden. |
| Niveau wijzigen | Actor, tijdstip, veld, oude waarde, nieuwe waarde. |
| Categorie koppelen | Actor, tijdstip, niveau, categorie. |
| Nieuwe centrale categorie via docentflow | Actor, tijdstip, categorie-identiteit, gekoppeld niveau. |
| Oefening aanmaken | Actor, tijdstip, niveau, categorie, module, metadata. |
| Oefening configureren | Actor, tijdstip, gewijzigd configuratieveld of payloadsamenvatting waar veilig. |
| Oefeningstatus wijzigen | Actor, tijdstip, oude status, nieuwe status. |
| Oefening kopiëren | Actor, tijdstip, bron, doel, parentrelatie. |
| Testflow starten | Tijdelijke testcontext; geen permanente leerlinggeschiedenis. |
| Niveauautorisatie toekennen | Actor, tijdstip, leerling, niveau, actie. |
| Niveauautorisatie intrekken | Actor, tijdstip, leerling, niveau, actie. |
| Collaborator toevoegen | Actor, tijdstip, niveau, collaborator. |
| Collaborator intrekken | Actor, tijdstip, reden waar vereist. |
| Eigenaarschap overdragen | Vorige eigenaar, nieuwe eigenaar, actor, tijdstip, verplichte reden. |
| Live meekijken starten | Viewer, leerling, run, rolcontext, startmoment. |
History is geen algemene communicatieplaats. Vrije toelichtingen horen alleen in de daarvoor bedoelde reden-, discussie- of toelichtingsvelden.
10.22 Autorisatie- en veiligheidsregels
Voor docentfunctionaliteit gelden minimaal de volgende regels.
- Iedere route controleert server-side of de gebruiker een actieve docentrol heeft.
- Iedere objectactie controleert server-side of het object binnen de docentcontext valt.
- Een zichtbare knop of kaart is geen autorisatiebewijs.
- Een routeparameter met
studentId,levelId,categoryId,exerciseIdofrunIdis nooit voldoende. - Collaboratorrechten op niveau-laag geven geen leerling-, resultaat- of live-meekijkrecht.
- Niveauautorisatie maakt geen docent-leerlingrelatie aan.
- Intrekken van niveauautorisatie verwijdert geen historische runs.
- Testoefeningen worden niet als leerlingresultaten getoond.
- Beheerdercontext is geen vrije bypass op docentfunctionaliteit.
- Resultaatdetails en PDF-export herhalen autorisatiecontrole.
- Live meekijken herhaalt autorisatiecontrole bij beschikbaarheid én bij start.
- Modulepayloads worden niet ongecontroleerd aan gebruikers getoond.
- Foutmeldingen lekken geen technische payloads, tokens, stacktraces of persoonsgegevens buiten context.
10.23 Lege toestanden
Lege toestanden zijn normale toestanden wanneer de docent wel toegang heeft tot de pagina, maar er geen relevante data is.
Voorbeelden:
- docent heeft nog geen niveaus;
- geselecteerd niveau heeft nog geen categorieën;
- categorie heeft nog geen oefeningen;
- geen modules beschikbaar voor nieuwe oefening;
- geen gekoppelde leerlingen;
- leerling heeft geen actieve niveauautorisaties;
- leerling heeft geen afgeronde resultaten binnen docentcontext;
- geen online leerlingen;
- geen live beschikbare runs;
- geen collaborators op een niveau;
- geen beschikbare collaborator-kandidaten;
- geen recente wijzigingen;
- zoek- of filterresultaat is leeg.
Een lege toestand mag informatief zijn en naar een passende vervolgstap verwijzen. Een lege toestand mag geen data buiten de docentcontext prijsgeven.
10.24 Fouttoestanden
Fouttoestanden ontstaan wanneer een route, actie of broncontext niet veilig verwerkt kan worden.
Voorbeelden:
- gebruiker heeft geen actieve docentrol;
- docentcontext kan niet server-side bepaald worden;
- niveau bestaat niet of valt buiten de docentcontext;
- category-koppeling bestaat niet of is inactief;
- oefening bestaat niet of valt buiten de niveau/categoriecontext;
- technische module is niet beschikbaar;
- moduleconfiguratie is ongeldig;
- activeren wordt geprobeerd terwijl configuratie onvoldoende geldig is;
- leerling valt buiten actieve docent-leerlingrelatie;
- niveau is niet autoriseerbaar voor deze docent;
- autorisatie is intussen ingetrokken of gewijzigd;
- resultaat valt buiten docentcontext;
- run is niet afgerond of is een testrun;
- livebeschikbaarheid is intussen vervallen;
- collaboratorrelatie is beëindigd;
- eigendomsoverdracht kiest een ongeldige kandidaat;
- history of audit kan niet veilig worden vastgelegd;
- readmodelopbouw faalt technisch.
Bij fouttoestanden toont OefenHub een veilige afhandeling zonder interne identifiers, stacktraces, tokens of gevoelige data buiten de toegestane context.
10.25 Relatie tot andere FO-hoofdstukken
| Hoofdstuk | Relatie |
|---|---|
| Rollen, context en autorisatie | Bepaalt docentrol, combinatierollen, server-side context en routeguards. |
| Applicatieschil, header, footer en navigatie | Bepaalt docentnavigatie, responsieve menu’s en badges rond docentroutes. |
| Frontpages en overzichtsschermen | Beschrijft docentfrontpage als read-only oriëntatiepagina. |
| Relatiebeheer | Is bronhoudend voor docent-leerlingrelaties en docent-docentrelaties. |
| Oefencatalogus, niveaus, categorieën en oefeningen | Beschrijft de catalogusstructuur die docentfunctionaliteit beheert. |
| Leerling: oefenen, voortgang en resultaten | Beschrijft leerlingrun-lifecycle die docentresultaatinzage en live meekijken gebruiken. |
| Gedeelde oefeningen | Raakt historische runs en resultaten, maar docent deelt niet namens leerlingen. |
| Ouder-/voogdfunctionaliteit | Heeft eigen read-only resultaat- en livecontext, gescheiden van docentcontext. |
| Beheerderfunctionaliteit | Bevat centraal beheer en docentondersteuning buiten reguliere docentroutes. |
| Berichten, communicatie en notificaties | Bevat systeemberichten en communicatie vanuit docentflows. |
| Live meekijken | Werkt live-meekijken generiek en roloverschrijdend verder uit. |
| PDF-export en resultaatpresentatie | Beschrijft resultaatdetail en PDF-export die docentcontext read-only gebruikt. |
| Oefenmodules en modulepayloads | Beschrijft modulecontract en payloadafbakening bij oefeningconfiguratie en runs. |
10.26 Gerelateerde bronverwijzingen
| Bron | Link |
|---|---|
| Technisch Ontwerp — rolflows | Rollenflows technisch |
| Technisch Ontwerp — oefencatalogus | Oefencatalogus, niveaus, categorieën, oefeningen en modules |
| Technisch Ontwerp — live meekijken | Realtime live meekijken met SignalR |
| Usecases — docent frontpage en context | Docent — frontpage en context |
| UC-DOC-FP-001 — Docent-frontpage bekijken | Docent-frontpage bekijken |
| UC-DOC-FP-002 — Docentcontext bepalen | Docentcontext bepalen |
| Usecases — oefenaanbod, niveaus en categorieën | Oefenaanbod, niveaus en categorieën |
| UC-DOC-AANB-001 — Oefenaanbod openen | Oefenaanbod openen |
| UC-DOC-AANB-002 — Niveau selecteren | Niveau selecteren |
| UC-DOC-AANB-003 — Nieuw niveau aanmaken | Nieuw niveau aanmaken |
| UC-DOC-AANB-004 — Niveaukerngegevens wijzigen | Niveaukerngegevens wijzigen |
| UC-DOC-AANB-005 — Categorieën binnen niveau bekijken | Categorieën binnen niveau bekijken |
| UC-DOC-AANB-006 — Bestaande categorie aan niveau koppelen | Bestaande categorie aan niveau koppelen |
| UC-DOC-AANB-007 — Nieuwe centrale categorie aanmaken via docentflow | Nieuwe centrale categorie aanmaken via docentflow |
| UC-DOC-AANB-008 — Categoriegebruik en zichtbaarheid afleiden | Categoriegebruik en zichtbaarheid afleiden |
| Usecases — oefeningen configureren en testen | Oefeningen configureren en testen |
| UC-DOC-OEF-001 — Oefeningen binnen categorie bekijken | Oefeningen binnen categorie bekijken |
| UC-DOC-OEF-002 — Nieuwe oefening aanmaken | Nieuwe oefening aanmaken |
| UC-DOC-OEF-003 — Technische module selecteren | Technische module selecteren |
| UC-DOC-OEF-004 — Oefening configureren | Oefening configureren |
| UC-DOC-OEF-005 — Oefening bewerken | Oefening bewerken |
| UC-DOC-OEF-006 — Oefening activeren of in onderhoud zetten | Oefening activeren of in onderhoud zetten |
| UC-DOC-OEF-007 — Oefening kopiëren vanuit open niveau | Oefening kopiëren vanuit open niveau |
| UC-DOC-OEF-008 — Oefening testen als docent | Oefening testen als docent |
| UC-DOC-OEF-009 — Testoefening opruimen | Testoefening opruimen |
| Usecases — leerlingen en autorisaties | Leerlingen en autorisaties |
| UC-DOC-LLN-001 — Leerlingenoverzicht bekijken | Leerlingenoverzicht bekijken |
| UC-DOC-LLN-002 — Leerlingen zoeken en filteren | Leerlingen zoeken en filteren |
| UC-DOC-LLN-003 — Leerlingdetails binnen docentcontext bekijken | Leerlingdetails binnen docentcontext bekijken |
| UC-DOC-LLN-004 — Niveau-autorisaties van leerling bekijken | Niveau-autorisaties van leerling bekijken |
| UC-DOC-LLN-005 — Leerling aan niveau koppelen | Leerling aan niveau koppelen |
| UC-DOC-LLN-006 — Leerling van niveau ontkoppelen | Leerling van niveau ontkoppelen |
| UC-DOC-LLN-007 — Bulk-niveau-autorisaties beheren | Bulk-niveau-autorisaties beheren |
| UC-DOC-LLN-008 — Autorisatiewijziging aan leerling communiceren | Autorisatiewijziging aan leerling communiceren |
| Usecases — resultaten en geschiedenis | Resultaten en geschiedenis |
| UC-DOC-RES-001 — Leerlinggeschiedenis binnen docentcontext openen | Leerlinggeschiedenis binnen docentcontext openen |
| UC-DOC-RES-002 — Resultaten filteren op niveau, categorie en oefening | Resultaten filteren op niveau, categorie en oefening |
| UC-DOC-RES-003 — Afgeronde oefenrun van leerling bekijken | Afgeronde oefenrun van leerling bekijken |
| UC-DOC-RES-004 — Resultaatdetails en statistieken bekijken | Resultaatdetails en statistieken bekijken |
| UC-DOC-RES-005 — Resultaat als PDF downloaden binnen docentcontext | Resultaat als PDF downloaden binnen docentcontext |
| UC-DOC-RES-006 — Geen toegang tot resultaten buiten docentcontext | Geen toegang tot resultaten buiten docentcontext |
| Usecases — online en live meekijken | Online en live meekijken |
| UC-DOC-LIVE-001 — Online leerlingenoverzicht bekijken | Online leerlingenoverzicht bekijken |
| UC-DOC-LIVE-002 — Live-meekijken beschikbaarheid bepalen | Live-meekijken beschikbaarheid bepalen |
| UC-DOC-LIVE-003 — Live-meekijksessie starten | Live-meekijksessie starten |
| UC-DOC-LIVE-004 — Live voortgang van leerling volgen | Live voortgang van leerling volgen |
| UC-DOC-LIVE-005 — Door vragen bladeren tijdens live meekijken | Door vragen bladeren tijdens live meekijken |
| UC-DOC-LIVE-006 — Terugkeren naar actuele live vraag | Terugkeren naar actuele live vraag |
| UC-DOC-LIVE-007 — Live-meekijksessie beëindigen | Live-meekijksessie beëindigen |
| UC-DOC-LIVE-008 — Live verbinding verbroken afhandelen | Live verbinding verbroken afhandelen |
| Usecases — samenwerking en eigenaarschap | Samenwerking en eigenaarschap |
| UC-DOC-SAM-001 — Collaborators van niveau bekijken | Collaborators van niveau bekijken |
| UC-DOC-SAM-002 — Collaborator aan niveau koppelen | Collaborator aan niveau koppelen |
| UC-DOC-SAM-003 — Collaborator van niveau ontkoppelen | Collaborator van niveau ontkoppelen |
| UC-DOC-SAM-004 — Collaboratorrechten binnen niveau toepassen | Collaboratorrechten binnen niveau toepassen |
| UC-DOC-SAM-005 — Eigenaarschap overdragen | Eigenaarschap overdragen |
| UC-DOC-SAM-006 — Overdracht naar ongeldige kandidaat blokkeren | Overdracht naar ongeldige kandidaat blokkeren |
| UC-DOC-SAM-007 — Samenwerkingswijziging auditbaar vastleggen | Samenwerkingswijziging auditbaar vastleggen |
| Schermdocumentatie — docent frontpage | Docent frontpage |
| Schermdocumentatie — niveaus en categorieën | Niveaus en categorieën |
| Schermdocumentatie — niveau/categorie modals | Niveau/categorie modals |
| Schermdocumentatie — nieuwe oefening | Nieuwe oefening |
| Schermdocumentatie — leerlingen | Leerlingen |
| Schermdocumentatie — bekijk geschiedenis | Bekijk geschiedenis |
| Schermdocumentatie — online overzicht | Online overzicht |
| Schermdocumentatie — meekijken | Meekijken |
| Schermdocumentatie — autoriseer leerling | Autoriseer leerling |
| Schermdocumentatie — autoriseer niveau | Autoriseer niveau |
| Schermdocumentatie — collaborator | Collaborator |
| Schermdocumentatie — eigenaarschap overdragen | Eigenaarschap overdragen |
| Database-informatie — docentstructuur en leerlingtoegang | Docentstructuur en leerlingtoegang |
| Database-informatie — configuratie en contentbeheer | Configuratie en contentbeheer |
| Database-informatie — oefenruns, delen en voortgang | Oefenruns, delen en voortgang |
| Ontwerpbron — autorisatiematrix | Autorisatiematrix |
| Ontwerpbron — business rules | Business rules |
| Ontwerpbron — statusmodellen | Statusmodellen |
| Ontwerpbron — command-register | Command-register |
| Ontwerpbron — event-register | Event-register |
| Oefenmodule — Optellen en aftrekken simpel | Optellen en aftrekken simpel |