Leerling — Oefenen en voortgang
Domeininleiding
Dit subdomein beschrijft hoe een leerling een oefening opent, start, maakt, onderbreekt en afrondt. Het gaat om de kern van het leerlinggebruik binnen OefenHub: vanuit een toegankelijke oefening naar een concrete ExerciseRun, vervolgens vraag voor vraag voortgang opslaan en uiteindelijk de run afronden.
De usecases in dit subdomein zijn procesgericht. Zij beschrijven niet het volledige oefenaanbod, niet de frontpageblokken en niet de resultaat- of geschiedenispagina's als zelfstandig domein. Die onderwerpen hebben hun eigen subdomeinen. Dit subdomein vormt de brug tussen toegang tot een oefening en het later kunnen tonen van resultaten.
Belangrijke uitgangspunten zijn:
- een leerling ziet en maakt steeds één vraag tegelijk;
Start nieuwegenereert direct een nieuwe exercise run;Verder gaanhervat de laatst gestarte niet-afgeronde run binnen dezelfde oefening en niveaucontext;- na ieder bevestigd antwoord wordt voortgang server-side opgeslagen;
- een onderbroken oefening blijft niet-afgerond en verschijnt niet in afgeronde geschiedenis;
- afronding berekent en bewaart de uniforme runresultaten en statistieken;
- live-meekijken gebruikt opgeslagen voortgang als bron en is geen vervanging voor server-side opslag;
- tijdens een actieve leerling-oefenrun toont de applicatieschil geen afleidende badges, tellerupdates, systeemnotificatie-overlays of meldingen-/berichtenterugkoppelingen aan de leerling.
Usecase-overzicht
| Usecase-ID | Naam | Beschrijving |
|---|---|---|
| UC-LLN-OEF-001 | Oefening-startpagina openen | Leerling opent de startpagina van een toegankelijke oefening en ziet de beschikbare vervolgacties. |
| UC-LLN-OEF-002 | Verder gaan met niet-afgeronde oefening | Leerling hervat de laatst gestarte, nog niet afgeronde run binnen dezelfde oefening en actieve niveaucontext. |
| UC-LLN-OEF-003 | Nieuwe oefening starten | Leerling voert het aantal vragen in, waarna OefenHub direct een nieuwe exercise run genereert en de eerste vraag opent. |
| UC-LLN-OEF-004 | Vraag beantwoorden | Leerling beantwoordt een reguliere vraag; OefenHub verwerkt het antwoord en slaat de voortgang server-side op. |
| UC-LLN-OEF-005 | Antwoord tonen na bevestiging | OefenHub toont na een opgeslagen antwoord de juiste uitkomst en resultaatstatus wanneer de oefeningconfiguratie dit vereist. |
| UC-LLN-OEF-006 | Geen idee gebruiken | Leerling gebruikt de aparte Geen idee-route; de vraag telt als fout en de verborgen waarschuwingvoorkeur kan worden verwerkt. |
| UC-LLN-OEF-007 | Oefening onderbreken | Leerling verlaat de oefencontext zonder af te ronden; de run blijft niet-afgerond en kan later hervatbaar zijn. |
| UC-LLN-OEF-008 | Oefening afronden | Leerling rondt de exercise run af; OefenHub slaat afronding, totalen en eindstatistieken op. |
Relevante contexten
| Context | Betekenis voor dit subdomein |
|---|---|
| Leerlingrol | Alleen gebruikers met actieve leerlingcontext kunnen reguliere leerlingruns starten en maken. |
| Actieve niveaucontext | Starten en hervatten gebeurt binnen de actuele niveaucontext. |
| Oefeningtoegang | De gekozen oefening moet op het moment van openen, starten of hervatten nog server-side toegankelijk zijn. |
| Exercise run | De concrete uitvoering van één oefening door één leerling. |
| Vraagvoortgang | De per vraag opgeslagen voortgang, inclusief gegeven antwoord, resultaatstatus, timing en eventueel Geen idee. |
| Technische module | Levert modulespecifieke vraaggeneratie, antwoordcontrole en vraagweergave. |
| Live meekijken | Gebruikt opgeslagen voortgang en SignalR-updates, maar is geen bron van oefenvoortgang. |
Domeinafbakening
Dit subdomein omvat wel:
- openen van de oefening-startpagina;
- bepalen of
Verder gaanbeschikbaar is; - hervatten van een niet-afgeronde run;
- starten en genereren van een nieuwe run;
- beantwoorden van vragen;
- tonen van antwoordfeedback na bevestiging;
- verwerken van
Geen idee; - onderbreken van een oefening;
- afronden van een exercise run;
- server-side voortgangsopslag;
- runstatus, totalen en eindstatistieken op hoofdlijnen.
Dit subdomein omvat niet:
- het bepalen welke categorieën en oefeningen zichtbaar zijn in het oefenaanbod;
- het samenstellen van de leerling-frontpage;
- het beheren van oefeningen door docenten;
- het toekennen of intrekken van niveauautorisaties;
- live meekijken starten door docent of ouder/voogd;
- volledige resultaatweergave, geschiedenis en PDF-export;
- gedeelde oefeningen ontvangen of delen;
- profielkeuzes of verplicht niveau instellen.
Hoofdobjecten
| Object | Rol binnen dit subdomein |
|---|---|
ExerciseRuns | Hoofdrecord van één unieke oefeninguitvoering voor één leerling. |
ExerciseRunProgress | Server-side voortgang per vraag of gelijkwaardige voortgangsstructuur. |
Exercises | Concrete oefening die gestart of hervat wordt. |
ExerciseModules | Technische module die generatie, weergave en antwoordcontrole ondersteunt. |
UserSettings | Bevat onder meer de actieve of gekozen niveaucontext waar relevant. |
| Modulepayload | Modulespecifieke vraag-, antwoord- en voortgangsdata. |
| Live-meekijkcontext | Afgeleide realtime weergave op basis van opgeslagen voortgang. |
Bijzondere regels
| Regel | Toelichting |
|---|---|
| Geen aparte pauzeknop | Een leerling kan een oefening onderbreken door de pagina te verlaten. |
| Server-side voortgang | Na ieder bevestigd antwoord wordt voortgang op de server opgeslagen. |
| Niet-bevestigde invoer | Invoer die niet is bevestigd, telt niet als definitief antwoord. |
| Laatste niet-afgeronde run | Verder gaan verwijst naar de laatst gestarte niet-afgeronde run binnen dezelfde oefening en niveaucontext. |
| Niveaucontextgrens | Runs uit een andere niveaucontext worden niet hervat via de huidige oefeningcontext. |
| Geen geschiedenis zonder afronding | Niet-afgeronde runs verschijnen niet in afgeronde geschiedenis. |
| Eindstatistieken bij afronding | Complexe statistieken worden bij afronding berekend en opgeslagen. |
Geen idee telt fout | Een vraag die via Geen idee wordt gemarkeerd, telt als fout en kan apart worden geteld. |
| Live meekijken is afgeleid | Realtime updates vervangen nooit de opgeslagen voortgang. |
| Geen afleiding tijdens oefenen | Zolang de leerling in een actieve oefenrun zit, blijven berichtenbadges, meldingenindicaties, systeemnotificatie-overlays en vergelijkbare terugkoppelingen visueel verborgen of uitgesteld. Onderliggende berichten, meldingen en readmodels blijven wel correct opgeslagen en worden na verlaten of afronden van de oefening opnieuw zichtbaar wanneer zij dan nog relevant zijn. |
Popupverwijzingen
Usecases verwijzen alleen naar PopupKey. Popupteksten, knopteksten, invoerlabels, themas en varianten blijven centraal in het popupregister en popup-themes.
| Usecase | PopupKey | Toelichting |
|---|---|---|
| UC-LLN-OEF-001 | Niet van toepassing | De oefening-startpagina gebruikt geen domeinspecifieke popup. |
| UC-LLN-OEF-002 | Niet van toepassing | Hervatten gebruikt route- en toegangafhandeling. |
| UC-LLN-OEF-003 | Niet van toepassing | Nieuwe oefening starten gebruikt geen popupregister-popup. |
| UC-LLN-OEF-004 | Niet van toepassing | Reguliere antwoordverwerking gebruikt inline validatie of componentafhandeling. |
| UC-LLN-OEF-005 | Niet van toepassing | Antwoordfeedback is onderdeel van het oefenscherm. |
| UC-LLN-OEF-006 | POP-LLN-OEF-DUNNO-WARNING | Waarschuwing bij eerste gebruik van Geen idee, wanneer de voorkeur nog niet is uitgeschakeld. |
| UC-LLN-OEF-007 | Niet van toepassing | Onderbreken is toegestaan gedrag zonder bevestigingspopup. |
| UC-LLN-OEF-008 | Niet van toepassing | Afronding zelf gebruikt geen popupregister-popup; resultaatweergave valt onder resultaatusecases. |
Diagramgebruik
De usecases in dit subdomein gebruiken vooral:
- sequence diagrammen voor interactie tussen leerling, frontend, backend, module, database en SignalR;
- decision flows voor toegang, hervatten, antwoordverwerking,
Geen idee, onderbreken en afronden; - data lifecycle diagrammen voor de overgang van geen run naar lopende run, onderbroken run en afgeronde run;
- state diagrams voor de lifecycle van
ExerciseRunswaar dat de leesbaarheid verhoogt.
ERD's horen niet in deze usecases. De relationele uitwerking van runs, voortgang, modules en historie hoort bij database-informatie en domeinobjecten.