Skip to main content

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

OnderdeelBinnen docentfunctionaliteitBuiten dit hoofdstuk
DocentcontextBepalen welke docentwerkruimte, routes en datasets toegankelijk zijn.Authenticatie, provisioning en algemene roltoekenning.
OefenaanbodWerken vanuit één geselecteerd niveau met categorieën en oefeningen.Leerlingfrontpage of vrije oefencatalogus voor leerlingen.
NiveausAanmaken, selecteren, wijzigen en beheren van docentniveaus.Centrale onderwijs-taxonomie buiten docentcontext.
CategorieënBestaande centrale categorieën koppelen of een nieuwe centrale categorie via docentflow aanmaken.Beheerdermigratie, hernoemen, deactiveren en samenvoegen van centrale categorieën.
OefeningenConcrete oefeningen binnen niveau en categorie aanmaken, configureren, bewerken, activeren of in onderhoud zetten.Technische moduleontwikkeling en centraal modulebeheer.
TestenOefeningen in testmodus doorlopen zonder permanente leerlinggeschiedenis.Reguliere leerlingruns of ouder-/voogdresultaten.
LeerlingenLeerlingen binnen actieve docent-leerlingrelatie zoeken, filteren en openen.Relatie-uitnodigingen, relatieacceptatie of profielbeheer.
NiveauautorisatiesLeerlingen toegang geven tot niveaus binnen de docentcontext.Rollen wijzigen of docent-leerlingrelaties aanmaken.
ResultatenAfgeronde leerlingruns binnen eigen docentcontext raadplegen.Ouder-/voogdgeschiedenis over alle niveaus of beheerderanalyse buiten docentcontext.
Live meekijkenRead-only meekijken met actieve leerlingrun binnen docentcontext.Antwoorden geven, corrigeren, pauzeren of afronden namens leerling.
CollaboratorsSamenwerking tussen docenten op niveau-laag beheren.Toegang tot elkaars leerlingen, resultaten of live-meekijksessies.
EigenaarschapEigenaarschap van een niveau overdragen aan een actieve collaborator.Account-lifecycle, automatische overdracht bij anonimisering of beheerderforceeracties.
BeheerderondersteuningSupportmatig 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.

BronlaagBetekenis
FOBeschrijft de functionele samenhang, domeingrenzen en hoofdregels.
UsecasesBeschrijven procesflows voor oefenaanbod, oefeningen, leerlingen, autorisaties, resultaten, live meekijken, samenwerking en eigenaarschap.
SchermdocumentatieBeschrijft zichtbare componenten, acties, velden, lege toestanden en schermspecifiek gedrag.
Database-informatieBeschrijft brondata zoals TeacherLevels, TeacherLevelCollaborators, TeacherStudentLevelAccess, Exercises, ExerciseRuns en historytabellen.
OntwerpbronnenBeschrijven business rules, autorisatiematrix, statusmodellen, popupregister, command-register en event-register.
Oefenmodule-documentatieBeschrijft modulespecifieke configuratievelden, payloads, validatie en rendergedrag.
MockupsOndersteunen 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-itemPrimair doel
OefenaanbodNiveaus, categorieën en concrete oefeningen beheren.
LeerlingenGekoppelde leerlingen zoeken, filteren, openen en autorisaties beheren.
OnlineOnline 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 actieVereiste context
Eigen niveaus zienDocent is actuele eigenaar of actieve collaborator van het niveau.
Niveau aanmakenActieve docentrol.
Niveaukerngegevens wijzigenBeheerrecht binnen het geselecteerde niveau.
Categorie koppelenBeheerrecht binnen het niveau en toegestane centrale categorie.
Nieuwe centrale categorie via docentflow aanmakenBeheerrecht binnen het niveau en geldige docentflow.
Oefening aanmaken of bewerkenBeheerrecht binnen niveau en categorie.
Oefening activerenGeldige configuratie, actieve modulecontext en beheerrecht.
Leerling in leerlingenoverzicht zienActieve docent-leerlingrelatie.
Leerling aan niveau autoriserenActieve docent-leerlingrelatie en autoriseerbaar niveau binnen docentcontext.
Resultaat bekijkenAfgeronde reguliere run binnen eigen docentcontext.
PDF downloadenZelfde resultaattoegang als detailweergave.
Live meekijkenActieve leerlingrun binnen docentcontext en live beschikbaarheid.
Collaborator beherenNiveau-eigenaar of expliciet toegestane samenwerkingscontext.
Eigenaarschap overdragenActuele 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 / readmodelFunctionele rol
UsersBevat docent-, leerling- en collaboratoraccounts die binnen context worden gelezen.
UserRoles / RolesBepalen of de gebruiker een actieve docentrol heeft.
UserRelationshipsLevert docent-leerlingrelaties en docent-docentrelaties.
TeacherLevelsBron voor docentniveaus, actuele eigenaar, beschrijving, zichtbaarheid en actieve status.
TeacherLevelCollaboratorsBron voor actieve samenwerking op niveau-laag.
TeacherLevelOwnershipTransfersHistorylaag voor eigendomsoverdracht van niveaus.
CategoriesCentrale categorie-identiteit met naam, kleur en icoon.
TeacherLevelCategoriesKoppeling tussen docentniveau en centrale categorie.
ExercisesConcrete oefening binnen niveau/categorie met moduleverwijzing, metadata, status en configuratiepayload.
ExerciseModulesCentrale modulemetadata en beschikbaarheid voor modulekeuze.
ExerciseHistoryHistorylaag voor oefeningaanmaak, kopie, metadata-, configuratie- en statuswijzigingen.
TeacherStudentLevelAccessNiveauautorisaties van leerlingen binnen docentcontext.
ExerciseRunsHistorische en actieve oefenruns voor resultaatinzage en live meekijken.
ExerciseRunProgressOperationele voortgang per vraag voor actieve runs en live meekijken.
LiveViewAuditAudit van daadwerkelijk gestarte live-meekijksessies.
SystemMessagesInformatieve systeemcommunicatie bij relevante docentacties, zoals autorisatiewijzigingen of samenwerkingswijzigingen.
Docentfrontpage-readmodelSamenvatting voor de docentfrontpage; geen brondata.
Oefenaanbod-readmodelAfgeleide weergave van niveaus, categorieën, oefeningen en aantallen binnen docentcontext.
Leerlingen-readmodelAfgeleide weergave van gekoppelde leerlingen en autorisatiestatussen.
Resultaten-readmodelAfgeleide weergave van afgeronde runs binnen docentcontext.
Online-readmodelAfgeleide 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.

WaardeFunctionele afleiding
Actieve niveausAantal actieve niveaus waarin docent eigenaar of actieve collaborator is.
CategorieënAantal actieve niveau-categorie-koppelingen binnen toegankelijke niveaus.
Actieve oefeningenAantal actieve concrete oefeningen binnen toegankelijke niveaus en categorieën.
Oefeningen in onderhoudAantal concrete oefeningen met IsActive = false binnen toegankelijke context.
Gekoppelde leerlingenAantal 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 Open of Privé.

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é

ZichtbaarheidFunctionele betekenis
OpenHet 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:

  1. een bestaande centrale categorie koppelen aan het geselecteerde niveau;
  2. 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 onderhoud of Actief;
  • aanmaak- en wijzigingsmetadata;
  • history via ExerciseHistory.

10.10.1 Nieuwe oefening aanmaken

Het aanmaken van een oefening verloopt in twee functionele stappen:

  1. de docent selecteert een beschikbare technische module;
  2. 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:

LaagVoorbeeldenBronhouder
Generieke oefeningmetadataNaam, icoon, status, niveau/categoriecontext.OefenHub-platform.
Modulespecifieke configuratieModulevelden, 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:

  • moduleKey en schemaVersion horen 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.

StatusBetekenis
In onderhoudNiet zichtbaar of startbaar voor leerlingen. Beschikbaar voor docentbeheer en testflow waar toegestaan.
ActiefKan 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 ParentExerciseId waar 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.

AspectTestflow docentReguliere leerlingrun
ActorDocent.Leerling.
DoelConfiguratie en werking controleren.Oefenen en resultaat opbouwen.
RunmarkeringTestcontext / IsTestRun.Reguliere run.
GeschiedenisGeen permanente leerlinggeschiedenis.Komt na afronding in geschiedenis.
ResultaatstatistiekenTijdelijk voor testfeedback.Persistente resultaatbron na afronding.
Ouder-/voogdinzageNiet zichtbaar.Zichtbaar volgens ouder-/voogdrelatie.
DocentresultaatinzageNiet als leerlingresultaat.Zichtbaar binnen docentcontext.
CleanupNa 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.

WijzigingFunctioneel gevolg
Nieuw aangevinkt niveauActieve niveauautorisatie ontstaat.
Bestaand actief niveau blijft aangevinktGeen nieuwe mutatie nodig.
Eerder actief niveau wordt uitgevinktAutorisatie wordt ingetrokken of gedeactiveerd.
Ongewijzigde selectieGeen 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.OwnerTeacherUserId wordt 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:

AspectVraag
ObjectscopeWorden niveaus, categorieën, oefeningen, leerlingen, runs of relaties geteld?
RolcontextGeldt de actieve docentcontext?
EigenaarschapTellen alleen eigen niveaus of ook collaboratorniveaus mee?
StatusfilterTellen inactieve, verlopen, ingetrokken of soft-deleted records mee?
OefeningstatusTellen alleen actieve oefeningen of ook oefeningen in onderhoud?
TestdataTellen testruns of testmodules mee?
RelatiecontextIs een actieve docent-leerlingrelatie vereist?
TijdvensterGeldt een periode, bijvoorbeeld recente wijzigingen?
Distinct-logicaWordt per uniek object of per koppeling geteld?
AutorisatieIs 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.

MutatieMinimale history / audit
Niveau aanmakenActor, tijdstip, niveau, initiële waarden.
Niveau wijzigenActor, tijdstip, veld, oude waarde, nieuwe waarde.
Categorie koppelenActor, tijdstip, niveau, categorie.
Nieuwe centrale categorie via docentflowActor, tijdstip, categorie-identiteit, gekoppeld niveau.
Oefening aanmakenActor, tijdstip, niveau, categorie, module, metadata.
Oefening configurerenActor, tijdstip, gewijzigd configuratieveld of payloadsamenvatting waar veilig.
Oefeningstatus wijzigenActor, tijdstip, oude status, nieuwe status.
Oefening kopiërenActor, tijdstip, bron, doel, parentrelatie.
Testflow startenTijdelijke testcontext; geen permanente leerlinggeschiedenis.
Niveauautorisatie toekennenActor, tijdstip, leerling, niveau, actie.
Niveauautorisatie intrekkenActor, tijdstip, leerling, niveau, actie.
Collaborator toevoegenActor, tijdstip, niveau, collaborator.
Collaborator intrekkenActor, tijdstip, reden waar vereist.
Eigenaarschap overdragenVorige eigenaar, nieuwe eigenaar, actor, tijdstip, verplichte reden.
Live meekijken startenViewer, 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, exerciseId of runId is 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

HoofdstukRelatie
Rollen, context en autorisatieBepaalt docentrol, combinatierollen, server-side context en routeguards.
Applicatieschil, header, footer en navigatieBepaalt docentnavigatie, responsieve menu’s en badges rond docentroutes.
Frontpages en overzichtsschermenBeschrijft docentfrontpage als read-only oriëntatiepagina.
RelatiebeheerIs bronhoudend voor docent-leerlingrelaties en docent-docentrelaties.
Oefencatalogus, niveaus, categorieën en oefeningenBeschrijft de catalogusstructuur die docentfunctionaliteit beheert.
Leerling: oefenen, voortgang en resultatenBeschrijft leerlingrun-lifecycle die docentresultaatinzage en live meekijken gebruiken.
Gedeelde oefeningenRaakt historische runs en resultaten, maar docent deelt niet namens leerlingen.
Ouder-/voogdfunctionaliteitHeeft eigen read-only resultaat- en livecontext, gescheiden van docentcontext.
BeheerderfunctionaliteitBevat centraal beheer en docentondersteuning buiten reguliere docentroutes.
Berichten, communicatie en notificatiesBevat systeemberichten en communicatie vanuit docentflows.
Live meekijkenWerkt live-meekijken generiek en roloverschrijdend verder uit.
PDF-export en resultaatpresentatieBeschrijft resultaatdetail en PDF-export die docentcontext read-only gebruikt.
Oefenmodules en modulepayloadsBeschrijft modulecontract en payloadafbakening bij oefeningconfiguratie en runs.

10.26 Gerelateerde bronverwijzingen

BronLink
Technisch Ontwerp — rolflowsRollenflows technisch
Technisch Ontwerp — oefencatalogusOefencatalogus, niveaus, categorieën, oefeningen en modules
Technisch Ontwerp — live meekijkenRealtime live meekijken met SignalR
Usecases — docent frontpage en contextDocent — frontpage en context
UC-DOC-FP-001 — Docent-frontpage bekijkenDocent-frontpage bekijken
UC-DOC-FP-002 — Docentcontext bepalenDocentcontext bepalen
Usecases — oefenaanbod, niveaus en categorieënOefenaanbod, niveaus en categorieën
UC-DOC-AANB-001 — Oefenaanbod openenOefenaanbod openen
UC-DOC-AANB-002 — Niveau selecterenNiveau selecteren
UC-DOC-AANB-003 — Nieuw niveau aanmakenNieuw niveau aanmaken
UC-DOC-AANB-004 — Niveaukerngegevens wijzigenNiveaukerngegevens wijzigen
UC-DOC-AANB-005 — Categorieën binnen niveau bekijkenCategorieën binnen niveau bekijken
UC-DOC-AANB-006 — Bestaande categorie aan niveau koppelenBestaande categorie aan niveau koppelen
UC-DOC-AANB-007 — Nieuwe centrale categorie aanmaken via docentflowNieuwe centrale categorie aanmaken via docentflow
UC-DOC-AANB-008 — Categoriegebruik en zichtbaarheid afleidenCategoriegebruik en zichtbaarheid afleiden
Usecases — oefeningen configureren en testenOefeningen configureren en testen
UC-DOC-OEF-001 — Oefeningen binnen categorie bekijkenOefeningen binnen categorie bekijken
UC-DOC-OEF-002 — Nieuwe oefening aanmakenNieuwe oefening aanmaken
UC-DOC-OEF-003 — Technische module selecterenTechnische module selecteren
UC-DOC-OEF-004 — Oefening configurerenOefening configureren
UC-DOC-OEF-005 — Oefening bewerkenOefening bewerken
UC-DOC-OEF-006 — Oefening activeren of in onderhoud zettenOefening activeren of in onderhoud zetten
UC-DOC-OEF-007 — Oefening kopiëren vanuit open niveauOefening kopiëren vanuit open niveau
UC-DOC-OEF-008 — Oefening testen als docentOefening testen als docent
UC-DOC-OEF-009 — Testoefening opruimenTestoefening opruimen
Usecases — leerlingen en autorisatiesLeerlingen en autorisaties
UC-DOC-LLN-001 — Leerlingenoverzicht bekijkenLeerlingenoverzicht bekijken
UC-DOC-LLN-002 — Leerlingen zoeken en filterenLeerlingen zoeken en filteren
UC-DOC-LLN-003 — Leerlingdetails binnen docentcontext bekijkenLeerlingdetails binnen docentcontext bekijken
UC-DOC-LLN-004 — Niveau-autorisaties van leerling bekijkenNiveau-autorisaties van leerling bekijken
UC-DOC-LLN-005 — Leerling aan niveau koppelenLeerling aan niveau koppelen
UC-DOC-LLN-006 — Leerling van niveau ontkoppelenLeerling van niveau ontkoppelen
UC-DOC-LLN-007 — Bulk-niveau-autorisaties beherenBulk-niveau-autorisaties beheren
UC-DOC-LLN-008 — Autorisatiewijziging aan leerling communicerenAutorisatiewijziging aan leerling communiceren
Usecases — resultaten en geschiedenisResultaten en geschiedenis
UC-DOC-RES-001 — Leerlinggeschiedenis binnen docentcontext openenLeerlinggeschiedenis binnen docentcontext openen
UC-DOC-RES-002 — Resultaten filteren op niveau, categorie en oefeningResultaten filteren op niveau, categorie en oefening
UC-DOC-RES-003 — Afgeronde oefenrun van leerling bekijkenAfgeronde oefenrun van leerling bekijken
UC-DOC-RES-004 — Resultaatdetails en statistieken bekijkenResultaatdetails en statistieken bekijken
UC-DOC-RES-005 — Resultaat als PDF downloaden binnen docentcontextResultaat als PDF downloaden binnen docentcontext
UC-DOC-RES-006 — Geen toegang tot resultaten buiten docentcontextGeen toegang tot resultaten buiten docentcontext
Usecases — online en live meekijkenOnline en live meekijken
UC-DOC-LIVE-001 — Online leerlingenoverzicht bekijkenOnline leerlingenoverzicht bekijken
UC-DOC-LIVE-002 — Live-meekijken beschikbaarheid bepalenLive-meekijken beschikbaarheid bepalen
UC-DOC-LIVE-003 — Live-meekijksessie startenLive-meekijksessie starten
UC-DOC-LIVE-004 — Live voortgang van leerling volgenLive voortgang van leerling volgen
UC-DOC-LIVE-005 — Door vragen bladeren tijdens live meekijkenDoor vragen bladeren tijdens live meekijken
UC-DOC-LIVE-006 — Terugkeren naar actuele live vraagTerugkeren naar actuele live vraag
UC-DOC-LIVE-007 — Live-meekijksessie beëindigenLive-meekijksessie beëindigen
UC-DOC-LIVE-008 — Live verbinding verbroken afhandelenLive verbinding verbroken afhandelen
Usecases — samenwerking en eigenaarschapSamenwerking en eigenaarschap
UC-DOC-SAM-001 — Collaborators van niveau bekijkenCollaborators van niveau bekijken
UC-DOC-SAM-002 — Collaborator aan niveau koppelenCollaborator aan niveau koppelen
UC-DOC-SAM-003 — Collaborator van niveau ontkoppelenCollaborator van niveau ontkoppelen
UC-DOC-SAM-004 — Collaboratorrechten binnen niveau toepassenCollaboratorrechten binnen niveau toepassen
UC-DOC-SAM-005 — Eigenaarschap overdragenEigenaarschap overdragen
UC-DOC-SAM-006 — Overdracht naar ongeldige kandidaat blokkerenOverdracht naar ongeldige kandidaat blokkeren
UC-DOC-SAM-007 — Samenwerkingswijziging auditbaar vastleggenSamenwerkingswijziging auditbaar vastleggen
Schermdocumentatie — docent frontpageDocent frontpage
Schermdocumentatie — niveaus en categorieënNiveaus en categorieën
Schermdocumentatie — niveau/categorie modalsNiveau/categorie modals
Schermdocumentatie — nieuwe oefeningNieuwe oefening
Schermdocumentatie — leerlingenLeerlingen
Schermdocumentatie — bekijk geschiedenisBekijk geschiedenis
Schermdocumentatie — online overzichtOnline overzicht
Schermdocumentatie — meekijkenMeekijken
Schermdocumentatie — autoriseer leerlingAutoriseer leerling
Schermdocumentatie — autoriseer niveauAutoriseer niveau
Schermdocumentatie — collaboratorCollaborator
Schermdocumentatie — eigenaarschap overdragenEigenaarschap overdragen
Database-informatie — docentstructuur en leerlingtoegangDocentstructuur en leerlingtoegang
Database-informatie — configuratie en contentbeheerConfiguratie en contentbeheer
Database-informatie — oefenruns, delen en voortgangOefenruns, delen en voortgang
Ontwerpbron — autorisatiematrixAutorisatiematrix
Ontwerpbron — business rulesBusiness rules
Ontwerpbron — statusmodellenStatusmodellen
Ontwerpbron — command-registerCommand-register
Ontwerpbron — event-registerEvent-register
Oefenmodule — Optellen en aftrekken simpelOptellen en aftrekken simpel