Skip to main content

4. Schermen en states

4.1 Docentweergave

4.1.1 Schermafbeelding

oefenhub_docent_module_optellen_en_aftrekken_simpel_v1_23.png

4.1.2 Scherm meta data

VeldWaarde
Scherm-IDSCH-MOD-01-01
SchermnaamModule configuratie — Optellen & Aftrekken (simpel)
Doelgroep / onderdeelDocent / technische oefenmodule
Bronbestandoefenhub_docent_module_optellen_en_aftrekken_simpel_v1_23.html
Screenshotbestandoefenhub_docent_module_optellen_en_aftrekken_simpel_v1_23.png
Processtap / contextDocent heeft binnen de generieke flow Nieuwe oefening toevoegen een technische module geselecteerd en opent de modulespecifieke configuratie.
DocumentatiestatusUitgewerkt op basis van HTML-mockup, PNG-screenshot, Functioneel Ontwerp, Technisch Ontwerp, Software Requirements Specification, database-informatie en ondersteunende modulearchitectuur.
OpmerkingenDe zichtbare configuratie-inhoud wordt door de technische module geleverd. De omliggende flow, autorisatie, opslagactie en koppeling aan de concrete oefening blijven generiek.
Route / URL-patroonFunctioneel geopend vanuit: Oefenaanbod > gekozen categorie > Nieuwe oefening > Selecteer en configureer.
Autorisatie / vereiste rol-contextActieve docentcontext of actieve collaborator met bewerkrechten op het betreffende niveau. Server-side wordt gecontroleerd of de gebruiker de oefening binnen deze niveau-/categoriecontext mag aanmaken of aanpassen.
Primair domeinobject / hoofdentiteitExercises, gekoppeld aan één ExerciseModules-record en aan de actuele categoriecontext via TeacherLevelCategoryExercises.
Gerelateerde schermen / navigatieNieuwe oefening, Niveaus en categorieën, Moduleplatform en contract, Modules beheren.
Data-karakterGenerieke oefeninggegevens plus modulespecifieke configuratiepayload.

4.1.3 Functionele beschrijving

De docentweergave wordt geopend binnen de generieke configuratiecontainer Module configureren. De container toont welke technische module gekozen is; de concrete configuratievelden worden door de module geleverd via het modulecontract. De docent configureert hiermee een concrete oefening, niet de technische module zelf.

De bovenste kaart bevat generieke oefeninggegevens: de naam van de oefening, het icoon en de keuze welke somtypen beschikbaar zijn. Naam en icoon horen bij Exercises; de keuze voor somtype hoort bij de modulespecifieke configuratiepayload. De zichtbare voorbeeldwaarden in de mockup, zoals Optellen en aftrekken t/m 20, zijn invoervoorbeelden en mogen niet als vaste productiegegevens worden geïnterpreteerd.

Daarna toont de module de getalposities. De labels getal 1 en getal 2 verwijzen naar de positie in de som: getal 1 + getal 2 of getal 1 - getal 2. Deze uitleg is nodig omdat de docent bij optellen en aftrekken dezelfde veldnamen ziet, terwijl de betekenis voor uitkomstvalidatie verschilt.

Voor Optellen configureren kan de docent voor getal 1 en getal 2 kiezen tussen een min/max-bereik of exacte toegestane waarden. Per getal is steeds precies één invoermodus actief. De niet-actieve modus wordt visueel gedimd en mag server-side niet worden meegenomen alsof die actief is. De uitkomstconfiguratie begrenst de toegestane somuitkomst.

Voor Aftrekken configureren gelden dezelfde keuzemogelijkheden. Aanvullend toont de module een waarschuwing dat een minimale uitkomst van ten minste 0 voorkomt dat negatieve uitkomsten worden gegenereerd. Dit is een functionele hulptekst; de echte geldigheid van een gegenereerde vraag wordt door de modulevalidatie en vraaggeneratie afgedwongen.

De sectie Optellen en Aftrekken balans configureren is alleen functioneel relevant wanneer OperationMode = Both. De sliders leggen een minimale ondergrens vast voor het aandeel optel- en aftreksommen. Het restant wordt door de module random ingevuld binnen de overige configuratieregels. Per somtype geldt in de mockup een bovengrens van 50%, zodat altijd ruimte blijft voor random opvulling of voor het andere somtype.

De sectie Oefening instellingen bevat oefeningbrede generatie- en runtime-instellingen. De docent kan beperkingen instellen voor veelvoorkomende patronen, zoals sommen met 1 als operand of hele tientallen. Daarnaast kan de docent standaard, minimum en maximum aantal vragen vastleggen. De leerling mag bij het starten van een run een aantal vragen kiezen binnen die grenzen; het systeemmaximum is 100. De opties Geen idee en Toon antwoord direct na vraag beïnvloeden de runtimeweergave bij leerlingen.

De knop Terug naar overzicht sluit de configuratie zonder opslag en keert terug naar de generieke modulekeuze. De knop Opslaan en toevoegen voert eerst generieke autorisatie en modulespecifieke validatie uit. Pas bij succesvolle validatie wordt de concrete oefening opgeslagen, gekoppeld aan de huidige categoriecontext en aangemaakt in status In onderhoud.

4.1.4 UI-elementen en velddefinities

Element-IDTypeGUI-verwijzingOmschrijvingZichtbaar labelOpmerkingTechnische naam
SCH-MOD-01-01-S01SConfiguratiecontainerHoofdsectie voor de modulespecifieke docentconfiguratie.Module configurerenContainer wordt generiek geopend; inhoud komt uit module.ModuleConfigurationView
SCH-MOD-01-01-S02SBovenaanIntroregel met gekozen modulecontext.Gekozen module: Optellen & Aftrekken (simpel)Read-only contextinformatie uit ExerciseModules.SelectedModuleContext
SCH-MOD-01-01-FORM01FORMAlgemene oefeninggegevensFormulierblok met naam, icoon en somtype.Algemene oefeninggegevensNaam en icoon zijn generiek; somtype is moduleconfiguratie.GenericExerciseDataForm
SCH-MOD-01-01-F01FAlgemene oefeninggegevensNaam van de concrete oefening.Geef de naam op voor deze oefeningVerplicht.ExerciseName
SCH-MOD-01-01-F02FAlgemene oefeninggegevensIcoon van de concrete oefening.Selecteer een icoontje voor deze oefeningHoort bij Exercises, niet bij ExerciseModules.ExerciseIcon
SCH-MOD-01-01-F03FAlgemene oefeninggegevensKeuze voor toegestane somtypen.Wat gaat de oefening inhouden?Waarden: Allebei, Alleen optellen, Alleen aftrekken.OperationMode
SCH-MOD-01-01-M01MAlgemene oefeninggegevensUitleg over getalposities.Getallen posities gedefinieerdModule-uitleg zonder eigen opslag.NumberPositionExplanation
SCH-MOD-01-01-S03SOptellen configurerenSectie voor optelsommen.Optellen configurerenAlleen actief wanneer optellen in OperationMode is toegestaan.AdditionConfigurationSection
SCH-MOD-01-01-RAD01FOptellen > getal 1Keuze tussen min/max en exacte waarden.Stel een min/max in / Exacte getallen gebruikenWederzijds exclusief.AdditionNumber1Mode
SCH-MOD-01-01-F04FOptellen > getal 1Minimale waarde van getal 1.Wat is de minimale waarde van het eerste getal?Actief bij min/max-modus.AdditionNumber1Min
SCH-MOD-01-01-F05FOptellen > getal 1Maximale waarde van getal 1.Wat is de maximale waarde van het eerste getal?Actief bij min/max-modus.AdditionNumber1Max
SCH-MOD-01-01-F06FOptellen > getal 1Exacte toegestane waarden van getal 1.Selecteer de specifieke getallen die gebruikt mogen worden.Actief bij exacte-waardenmodus.AdditionNumber1ExactValues
SCH-MOD-01-01-RAD02FOptellen > getal 2Keuze tussen min/max en exacte waarden.Stel een min/max in / Exacte getallen gebruikenWederzijds exclusief.AdditionNumber2Mode
SCH-MOD-01-01-F07FOptellen > getal 2Minimale waarde van getal 2.Wat is de minimale waarde van het tweede getal?Actief bij min/max-modus.AdditionNumber2Min
SCH-MOD-01-01-F08FOptellen > getal 2Maximale waarde van getal 2.Wat is de maximale waarde van het tweede getal?Actief bij min/max-modus.AdditionNumber2Max
SCH-MOD-01-01-F09FOptellen > getal 2Exacte toegestane waarden van getal 2.Selecteer de specifieke getallen die gebruikt mogen worden.Actief bij exacte-waardenmodus.AdditionNumber2ExactValues
SCH-MOD-01-01-F10FOptellen > uitkomstMinimale toegestane opteluitkomst.Wat is de minimale waarde van het antwoord?Modulespecifieke validatie.AdditionResultMin
SCH-MOD-01-01-F11FOptellen > uitkomstMaximale toegestane opteluitkomst.Wat is de maximale waarde van het antwoord?Modulespecifieke validatie.AdditionResultMax
SCH-MOD-01-01-S04SAftrekken configurerenSectie voor aftreksommen.Aftrekken configurerenAlleen actief wanneer aftrekken in OperationMode is toegestaan.SubtractionConfigurationSection
SCH-MOD-01-01-RAD03FAftrekken > getal 1Keuze tussen min/max en exacte waarden.Stel een min/max in / Exacte getallen gebruikenWederzijds exclusief.SubtractionNumber1Mode
SCH-MOD-01-01-F12FAftrekken > getal 1Minimale waarde van getal 1.Wat is de minimale waarde van het eerste getal?Actief bij min/max-modus.SubtractionNumber1Min
SCH-MOD-01-01-F13FAftrekken > getal 1Maximale waarde van getal 1.Wat is de maximale waarde van het eerste getal?Actief bij min/max-modus.SubtractionNumber1Max
SCH-MOD-01-01-F23FAftrekken > getal 1Exacte toegestane waarden van getal 1.Selecteer de specifieke getallen die gebruikt mogen worden.Actief bij exacte-waardenmodus.SubtractionNumber1ExactValues
SCH-MOD-01-01-RAD04FAftrekken > getal 2Keuze tussen min/max en exacte waarden.Stel een min/max in / Exacte getallen gebruikenWederzijds exclusief.SubtractionNumber2Mode
SCH-MOD-01-01-F14FAftrekken > getal 2Minimale waarde van getal 2.Wat is de minimale waarde van het tweede getal?Actief bij min/max-modus.SubtractionNumber2Min
SCH-MOD-01-01-F15FAftrekken > getal 2Maximale waarde van getal 2.Wat is de maximale waarde van het tweede getal?Actief bij min/max-modus.SubtractionNumber2Max
SCH-MOD-01-01-F24FAftrekken > getal 2Exacte toegestane waarden van getal 2.Selecteer de specifieke getallen die gebruikt mogen worden.Actief bij exacte-waardenmodus.SubtractionNumber2ExactValues
SCH-MOD-01-01-M02MAftrekken > waarschuwingWaarschuwing over negatieve uitkomsten.Vul als minimale waarde tenminste 0 in zodat je voorkomt dat er een som met negatieve uitkomst gegenereerd wordt.Modulegedreven helpertekst.NegativeResultWarning
SCH-MOD-01-01-F16FAftrekken > uitkomstMinimale toegestane aftrekuitkomst.Wat is de minimale waarde van het antwoord?Modulespecifieke validatie.SubtractionResultMin
SCH-MOD-01-01-F17FAftrekken > uitkomstMaximale toegestane aftrekuitkomst.Wat is de maximale waarde van het antwoord?Modulespecifieke validatie.SubtractionResultMax
SCH-MOD-01-01-S05SBalansSectie voor verdeling tussen optellen en aftrekken.Optellen en Aftrekken balans configurerenAlleen actief bij OperationMode = Both.BalanceConfigurationSection
SCH-MOD-01-01-F18FBalansMinimale percentage optelsommen.Hoeveel procent optel sommen?Range-slider.AdditionMinimumPercentage
SCH-MOD-01-01-F19FBalansMinimale percentage aftreksommen.Hoeveel procent aftrek sommen?Range-slider.SubtractionMinimumPercentage
SCH-MOD-01-01-M03MBalansUitleg over minimale verdeling en random opvulling.De percentages worden gebruikt ...Module-uitleg zonder eigen opslag.BalanceExplanation
SCH-MOD-01-01-S06SOefening instellingenSectie met generatie- en runtime-instellingen.Oefening instellingenModulespecifieke configuratie met generieke runtime-impact.ExerciseSettingsSection
SCH-MOD-01-01-RAD05FOefening instellingenBeperken van sommen met 1 als operand.Voorkom te veel sommen met “1 + x” of “y + 1”Ja/Nee.LimitOneOperandQuestions
SCH-MOD-01-01-RAD06FOefening instellingenBeperken van sommen met hele tientallen.Voorkom te veel sommen met hele tientallenJa/Nee.LimitRoundTensQuestions
SCH-MOD-01-01-F20FOefening instellingenStandaard aantal vragen bij starten.De standaard waarde voor het aantal oefeningenNumeriek.DefaultQuestionCount
SCH-MOD-01-01-F21FOefening instellingenMinimum aantal vragen.De minimale waarde voor het aantal oefeningenNumeriek.MinimumQuestionCount
SCH-MOD-01-01-F22FOefening instellingenMaximum aantal vragen.De maximale waarde voor het aantal oefeningenNumeriek.MaximumQuestionCount
SCH-MOD-01-01-RAD07FOefening instellingenBeschikbaarheid van de knop Geen idee.Is de “Geen idee” knop beschikbaar?Ja/Nee.AllowMarkAsDunno
SCH-MOD-01-01-RAD08FOefening instellingenDirect feedback tonen na beantwoording.Toon antwoord direct na vraag?Ja/Nee.ShowAnswerAfterSubmit
SCH-MOD-01-01-B01BOnderzijdeTerug naar generieke modulekeuze.Terug naar overzichtSluit zonder opslag.BackToModuleOverviewButton
SCH-MOD-01-01-B02BOnderzijdeSlaat de concrete oefening op.Opslaan en toevoegenCentrale opslagactie met modulevalidatie.SaveAndAddExerciseButton

4.1.5 Waardelagen

Element-IDGUI-verwijzingZichtbaar labelTechnische naamDatabronWaardebronDatatypeBewerkbaarValidatie / regel
SCH-MOD-01-01-S02BovenaanGekozen module: Optellen & Aftrekken (simpel)SelectedModuleContextExerciseModules.DisplayName, ExerciseModules.CodeReference, ExerciseModules.VersionGeselecteerd module-record uit vorige stapSamengestelde tekstNeeDe modulecontext moet overeenkomen met de gekozen ExerciseModuleId.
SCH-MOD-01-01-F01Algemene oefeninggegevensGeef de naam op voor deze oefeningExerciseNameExercises.NameDirecte docent-invoerstringJaVerplicht; maximale lengte volgt de generieke oefeningvalidatie.
SCH-MOD-01-01-F02Algemene oefeninggegevensSelecteer een icoontje voor deze oefeningExerciseIconExercises.IconKey of functioneel equivalente icoonreferentieDirecte docentkeuzestring / asset keyJaMoet een toegestane icoonsleutel zijn.
SCH-MOD-01-01-F03Algemene oefeninggegevensWat gaat de oefening inhouden?OperationModeExercises.ModuleConfigurationJsonBase64Directe docentkeuze, gevalideerd door moduleenumJaToegestane waarden: Both, AdditionOnly, SubtractionOnly.
SCH-MOD-01-01-F04Optellen > getal 1Wat is de minimale waarde van het eerste getal?AdditionNumber1MinExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaAlleen actief bij AdditionNumber1Mode = Range; minimum mag niet groter zijn dan maximum.
SCH-MOD-01-01-F05Optellen > getal 1Wat is de maximale waarde van het eerste getal?AdditionNumber1MaxExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaAlleen actief bij AdditionNumber1Mode = Range; maximum mag niet kleiner zijn dan minimum.
SCH-MOD-01-01-F06Optellen > getal 1Selecteer de specifieke getallen die gebruikt mogen worden.AdditionNumber1ExactValuesExercises.ModuleConfigurationJsonBase64Directe docentselectieinteger-collectieJaAlleen actief bij AdditionNumber1Mode = ExactValues; minimaal één waarde vereist.
SCH-MOD-01-01-F07Optellen > getal 2Wat is de minimale waarde van het tweede getal?AdditionNumber2MinExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaAlleen actief bij AdditionNumber2Mode = Range; minimum mag niet groter zijn dan maximum.
SCH-MOD-01-01-F08Optellen > getal 2Wat is de maximale waarde van het tweede getal?AdditionNumber2MaxExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaAlleen actief bij AdditionNumber2Mode = Range; maximum mag niet kleiner zijn dan minimum.
SCH-MOD-01-01-F09Optellen > getal 2Selecteer de specifieke getallen die gebruikt mogen worden.AdditionNumber2ExactValuesExercises.ModuleConfigurationJsonBase64Directe docentselectieinteger-collectieJaAlleen actief bij AdditionNumber2Mode = ExactValues; minimaal één waarde vereist.
SCH-MOD-01-01-F10Optellen > uitkomstWat is de minimale waarde van het antwoord?AdditionResultMinExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaMinimum mag niet hoger zijn dan maximum; gegenereerde sommen moeten binnen de uitkomstgrenzen vallen.
SCH-MOD-01-01-F11Optellen > uitkomstWat is de maximale waarde van het antwoord?AdditionResultMaxExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaMaximum mag niet lager zijn dan minimum; gegenereerde sommen moeten binnen de uitkomstgrenzen vallen.
SCH-MOD-01-01-F12Aftrekken > getal 1Wat is de minimale waarde van het eerste getal?SubtractionNumber1MinExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaAlleen actief bij SubtractionNumber1Mode = Range; minimum mag niet groter zijn dan maximum.
SCH-MOD-01-01-F13Aftrekken > getal 1Wat is de maximale waarde van het eerste getal?SubtractionNumber1MaxExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaAlleen actief bij SubtractionNumber1Mode = Range; maximum mag niet kleiner zijn dan minimum.
SCH-MOD-01-01-F23Aftrekken > getal 1Selecteer de specifieke getallen die gebruikt mogen worden.SubtractionNumber1ExactValuesExercises.ModuleConfigurationJsonBase64Directe docentselectieinteger-collectieJaAlleen actief bij SubtractionNumber1Mode = ExactValues; minimaal één waarde vereist.
SCH-MOD-01-01-F14Aftrekken > getal 2Wat is de minimale waarde van het tweede getal?SubtractionNumber2MinExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaAlleen actief bij SubtractionNumber2Mode = Range; minimum mag niet groter zijn dan maximum.
SCH-MOD-01-01-F15Aftrekken > getal 2Wat is de maximale waarde van het tweede getal?SubtractionNumber2MaxExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaAlleen actief bij SubtractionNumber2Mode = Range; maximum mag niet kleiner zijn dan minimum.
SCH-MOD-01-01-F24Aftrekken > getal 2Selecteer de specifieke getallen die gebruikt mogen worden.SubtractionNumber2ExactValuesExercises.ModuleConfigurationJsonBase64Directe docentselectieinteger-collectieJaAlleen actief bij SubtractionNumber2Mode = ExactValues; minimaal één waarde vereist.
SCH-MOD-01-01-F16Aftrekken > uitkomstWat is de minimale waarde van het antwoord?SubtractionResultMinExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaMinimum mag niet hoger zijn dan maximum; bij 0 worden negatieve uitkomsten uitgesloten door vraaggeneratie.
SCH-MOD-01-01-F17Aftrekken > uitkomstWat is de maximale waarde van het antwoord?SubtractionResultMaxExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaMaximum mag niet lager zijn dan minimum.
SCH-MOD-01-01-F18BalansHoeveel procent optel sommen?AdditionMinimumPercentageExercises.ModuleConfigurationJsonBase64Directe docent-invoer via sliderinteger / percentageJaAlleen actief bij OperationMode = Both; waarde ligt binnen toegestane slidergrenzen en is maximaal 50.
SCH-MOD-01-01-F19BalansHoeveel procent aftrek sommen?SubtractionMinimumPercentageExercises.ModuleConfigurationJsonBase64Directe docent-invoer via sliderinteger / percentageJaAlleen actief bij OperationMode = Both; waarde ligt binnen toegestane slidergrenzen en is maximaal 50.
SCH-MOD-01-01-RAD05Oefening instellingenVoorkom te veel sommen met “1 + x” of “y + 1”LimitOneOperandQuestionsExercises.ModuleConfigurationJsonBase64Directe docentkeuzebooleanJaBij true genereert de module maximaal het ingestelde aantal vragen met operandwaarde 1.
SCH-MOD-01-01-RAD06Oefening instellingenVoorkom te veel sommen met hele tientallenLimitRoundTensQuestionsExercises.ModuleConfigurationJsonBase64Directe docentkeuzebooleanJaBij true genereert de module maximaal het ingestelde aantal vragen met een heel tiental als operand.
SCH-MOD-01-01-F20Oefening instellingenDe standaard waarde voor het aantal oefeningenDefaultQuestionCountExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaMoet tussen minimum en maximum liggen.
SCH-MOD-01-01-F21Oefening instellingenDe minimale waarde voor het aantal oefeningenMinimumQuestionCountExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaMoet kleiner dan of gelijk aan de standaardwaarde en kleiner dan of gelijk aan de maximumwaarde zijn.
SCH-MOD-01-01-F22Oefening instellingenDe maximale waarde voor het aantal oefeningenMaximumQuestionCountExercises.ModuleConfigurationJsonBase64Directe docent-invoerintegerJaMoet groter dan of gelijk aan de standaardwaarde en minimumwaarde zijn; mag het platformmaximum 100 niet overschrijden.
SCH-MOD-01-01-RAD07Oefening instellingenIs de “Geen idee” knop beschikbaar?AllowMarkAsDunnoExercises.ModuleConfigurationJsonBase64Directe docentkeuzebooleanJaWerkt door in de leerlingweergave; markering telt functioneel als fout maar blijft herkenbaar in resultaten.
SCH-MOD-01-01-RAD08Oefening instellingenToon antwoord direct na vraag?ShowAnswerAfterSubmitExercises.ModuleConfigurationJsonBase64Directe docentkeuzebooleanJaBij true toont de module feedback vóór de volgende vraag; bij false wordt feedback pas via resultaatcontext zichtbaar.
SCH-MOD-01-01-B02OnderzijdeOpslaan en toevoegenSaveAndAddExerciseButtonExercises, TeacherLevelCategoryExercises, ExerciseHistoryCentrale opslagactie met modulevalidatiecommandJaNieuwe oefening wordt opgeslagen, gekoppeld aan de huidige categoriecontext en start in status In onderhoud.

4.1.6 Leegstaten, foutstaten en disabled states

SituatieGedrag
Geen actieve modulebeschikbaarheidDe module mag niet in de generieke modulekeuze verschijnen voor reguliere docenten wanneer ExerciseModules.IsActive = false, tenzij de gebruiker via testcontext toegang heeft op basis van IsVisibleForTesting.
Geen bewerkrecht op niveau/categorieDe configuratie mag niet worden opgeslagen; server-side controle blokkeert de actie ook wanneer de frontendknop zichtbaar zou zijn.
Niet-actieve invoermodusDe niet-geselecteerde min/max- of exacte-waardenmodus wordt visueel gedimd en server-side genegeerd.
OperationMode = AdditionOnlyAftrekconfiguratie en balansvelden zijn functioneel niet actief en mogen niet als vereiste configuratie meetellen.
OperationMode = SubtractionOnlyOptelconfiguratie en balansvelden zijn functioneel niet actief en mogen niet als vereiste configuratie meetellen.
OperationMode = BothOptelconfiguratie, aftrekconfiguratie en balansvalidatie zijn actief.
Geen genereerbare vragenOpslaan wordt server-side geweigerd met een functionele foutmelding, omdat de combinatie van bereiken, exacte waarden en uitkomstgrenzen geen geldige vraag oplevert.
Ongeldige aantallenOpslaan wordt geweigerd wanneer minimum, standaard en maximum niet logisch oplopen of wanneer het maximum boven het platformmaximum ligt.
Terug naar overzichtDe view sluit zonder opslag; onopgeslagen wijzigingen worden niet als configuratiepayload bewaard.

4.2 Leerlingweergave

4.2.1 Schermafbeelding

oefenhub_leerling_module_optellen_en_aftrekken_simpel_v4_1.png

De onderstaande schermafbeeldingen tonen alternatieve states van dezelfde leerlingweergave. Zij worden niet als aparte schermroutes behandeld, maar als states binnen dezelfde runtimeview.

State correct antwoord

oefenhub_leerling_module_optellen_en_aftrekken_simpel_goed_v1_1.png

State fout antwoord

oefenhub_leerling_module_optellen_en_aftrekken_simpel_fout_v1_4.png

4.2.2 Scherm meta data

VeldWaarde
Scherm-IDSCH-MOD-01-02
SchermnaamOefening uitvoeren — Optellen & Aftrekken (simpel)
Doelgroep / onderdeelLeerling / technische oefenmodule
Bronbestandoefenhub_leerling_module_optellen_en_aftrekken_simpel_v4_1.html
Screenshotbestandoefenhub_leerling_module_optellen_en_aftrekken_simpel_v4_1.png
Processtap / contextLeerling maakt een gegenereerde ExerciseRun op basis van een concrete oefening die deze module gebruikt.
DocumentatiestatusUitgewerkt op basis van HTML-mockup, PNG-screenshot, Functioneel Ontwerp, Technisch Ontwerp, Software Requirements Specification, database-informatie en ondersteunende modulearchitectuur.
OpmerkingenCorrecte en foutieve feedback zijn runtime-states binnen dezelfde view. De omliggende navigatie, header, eventuele berichtenteller en footer vallen buiten deze modulebeschrijving.
Route / URL-patroonFunctioneel geopend vanuit de oefening-startpagina via Start nieuwe of Verder gaan.
Autorisatie / vereiste rol-contextActieve leerlingcontext met server-side toegang tot niveau, categorie en oefening.
Primair domeinobject / hoofdentiteitExerciseRuns met ExerciseRunProgress, gekoppeld aan Exercises en het gebruikte ExerciseModules-record.
Gerelateerde schermen / navigatieOefening-startpagina, resultatenpopup, geschiedenis, delen, live meekijken.
Data-karakterRuntimevraag, leerlingantwoord, feedbackstate en voortgang op basis van run- en progressiepayloads.

Aanvullende state-referenties

ReferentieScherm-IDSchermnaamBronbestandScreenshotbestand
Correct antwoordSCH-MOD-01-03Oefening uitvoeren — Optellen & Aftrekken (simpel) — state correctoefenhub_leerling_module_optellen_en_aftrekken_simpel_goed_v1_1.htmloefenhub_leerling_module_optellen_en_aftrekken_simpel_goed_v1_1.png
Fout antwoordSCH-MOD-01-04Oefening uitvoeren — Optellen & Aftrekken (simpel) — state foutoefenhub_leerling_module_optellen_en_aftrekken_simpel_fout_v1_4.htmloefenhub_leerling_module_optellen_en_aftrekken_simpel_fout_v1_4.png

4.2.3 Functionele beschrijving

De leerlingweergave toont één vraag tegelijk binnen de generieke oefenplayer. In de default state wordt een som getoond met twee operanden, een operator en een antwoordinvoer. De zichtbare mockupwaarde 17 + 9 = ? is gegenereerde voorbeelddata. In productie worden operandwaarden, operator en correcte uitkomst bepaald door de module op basis van de opgeslagen configuratiepayload van de concrete oefening.

De leerling vult het antwoord in en kiest Volgende vraag. Bij die actie wordt het antwoord server-side verwerkt. De module interpreteert de invoer, bepaalt of het antwoord correct is en levert de bijgewerkte vraagstate terug. De generieke engine schrijft de voortgang weg in ExerciseRunProgress, werkt uniforme totalen op ExerciseRuns bij en bepaalt of de volgende vraag of de afrondingsflow wordt getoond.

Wanneer ShowAnswerAfterSubmit = true, kan de module direct na beantwoording een feedbackstate tonen. De state correct antwoord toont het gegeven antwoord groen met de tekst Goed gedaan!. De state fout antwoord toont het gegeven antwoord rood met de tekst Helaas het antwoord was niet goed. Deze feedbackstates zijn geen aparte routes en geen aparte oefenruns; zij zijn weergavestates van dezelfde vraag binnen dezelfde run.

Wanneer ShowAnswerAfterSubmit = false, wordt na beantwoording direct doorgegaan volgens de generieke runflow en ziet de leerling de samenvattende resultaten pas in de resultaatcontext. De module moet in beide gevallen de juiste correctheidswaarde en vraagstate aan de generieke engine teruggeven.

De rechterkolom is generiek en toont voortgangsinformatie: de naam/context van de oefening, het aantal beantwoorde vragen, de visuele voortgangsbalk en een tip over opslag en hervatten. Deze waarden komen niet uit de module zelf, maar uit de runcontext en de generieke voortgangsberekening.

Als AllowMarkAsDunno = true, mag de generieke player of de modulecomponent een Geen idee-actie beschikbaar maken. Deze actie markeert de vraag als afgerond met IsDunno = true en telt functioneel als niet-correct antwoord, maar blijft herkenbaar in resultaten en analyse.

4.2.4 UI-elementen en velddefinities

Element-IDTypeGUI-verwijzingOmschrijvingZichtbaar labelOpmerkingTechnische naam
SCH-MOD-01-02-S01SPaginaHoofdcontainer voor de leerling-oefenweergave.OefeningGenerieke playercontainer met modulespecifieke vraagrendering.StudentExerciseView
SCH-MOD-01-02-S02SLinker kaartVisuele vraagzone.OefeningModule-rendering binnen generieke player.QuestionCard
SCH-MOD-01-02-F01FVraagzoneEerste operand van de som.17Door module gegenereerde voorbeeldwaarde.OperandA
SCH-MOD-01-02-F02FVraagzoneOperator van de som.+Door module gegenereerd op basis van OperationMode.Operator
SCH-MOD-01-02-F03FVraagzoneTweede operand van de som.9Door module gegenereerde voorbeeldwaarde.OperandB
SCH-MOD-01-02-F04FVraagzoneAntwoordveld in inputstate.?Invoer door leerling.AnswerInput
SCH-MOD-01-02-F05FVraagzoneAntwoordweergave in feedbackstate.26 / 25Alleen zichtbaar na beantwoording wanneer feedback wordt getoond.AnswerDisplay
SCH-MOD-01-02-M01MVraagzoneFeedbackmelding.Goed gedaan! / Helaas het antwoord was niet goedState-afhankelijk.AnswerFeedbackMessage
SCH-MOD-01-02-B01BOnderzijde vraagkaartNavigatie en bevestiging van het antwoord.Volgende vraagVerwerkt de huidige vraag en laadt de volgende stap.NextQuestionButton
SCH-MOD-01-02-B02BOnderzijde vraagkaartOptionele markering dat de leerling het antwoord niet weet.Geen ideeAlleen beschikbaar wanneer AllowMarkAsDunno = true.MarkAsDunnoButton
SCH-MOD-01-02-S03SRechter paneelVoortgangspaneel.Jouw voortgangGenerieke playerinformatie.ProgressSidePanel
SCH-MOD-01-02-F06FRechter paneelNaam of context van de oefening.Subcategorie / Optellen tot en met 50Afkomstig uit oefening en runcontext.ExerciseContextName
SCH-MOD-01-02-F07FRechter paneelTekstuele voortgang.1 van de 15 vragen beantwoordAfgeleid uit runvoortgang.ProgressText
SCH-MOD-01-02-F08FRechter paneelVisuele voortgangsbalk.voortgangsbalkPercentage afgeleid uit beantwoorde vragen.ProgressBar
SCH-MOD-01-02-M02MRechter paneelTip over opslaan en hervatten.Je antwoord wordt opgeslagen zodra je naar de volgende vraag gaat.Generieke playertekst; moet overeenkomen met server-side gedrag.SaveAndResumeTip

4.2.5 Waardelagen

Element-IDGUI-verwijzingZichtbaar labelTechnische naamDatabronWaardebronDatatypeBewerkbaarValidatie / regel
SCH-MOD-01-02-F01Vraagzone17OperandAExerciseRunProgress.QuestionStateJsonBase64 en/of ExerciseRuns.QuestionDataJsonBase64Door module gegenereerde vraagdata op basis van Exercises.ModuleConfigurationJsonBase64integerNeeWaarde moet voldoen aan de opgeslagen moduleconfiguratie en gekozen operation mode.
SCH-MOD-01-02-F02Vraagzone+OperatorExerciseRunProgress.QuestionStateJsonBase64Door module gegenereerde vraagdataenum/stringNeeOperator moet + of - zijn en passen binnen OperationMode.
SCH-MOD-01-02-F03Vraagzone9OperandBExerciseRunProgress.QuestionStateJsonBase64 en/of ExerciseRuns.QuestionDataJsonBase64Door module gegenereerde vraagdata op basis van configuratieintegerNeeWaarde moet voldoen aan de opgeslagen moduleconfiguratie.
SCH-MOD-01-02-F04Vraagzone?AnswerInputTijdelijke UI-state tot bevestiging; daarna ExerciseRunProgress.QuestionStateJsonBase64Directe leerlinginvoerstring / integerJaMoet door de module als numeriek antwoord kunnen worden geïnterpreteerd.
SCH-MOD-01-02-F05Vraagzone26 / 25AnswerDisplayExerciseRunProgress.QuestionStateJsonBase64Bevestigde leerlingwaarde na verwerkingstring / integerNee na bevestigingWeergave volgt de opgeslagen antwoordstate.
SCH-MOD-01-02-M01VraagzoneGoed gedaan! / Helaas het antwoord was niet goedAnswerFeedbackMessageGeen zelfstandige persistente bronModulevalidatie-resultaat + vaste modulefeedbacktekstinformatiemeldingNeeAlleen zichtbaar wanneer directe feedback actief is of wanneer de huidige state feedback moet tonen.
SCH-MOD-01-02-B01VraagkaartVolgende vraagNextQuestionButtonExerciseRuns, ExerciseRunProgressCommand op huidige vraagstateactionJaBij klik verwerkt de server het antwoord, zet AnsweredAtUtc, IsCorrect en IsCompleted op vraagniveau en werkt runtotalen bij.
SCH-MOD-01-02-B02VraagkaartGeen ideeMarkAsDunnoButtonExerciseRunProgress.IsDunno, ExerciseRuns.DunnoCountCommand op huidige vraagstateactionJaAlleen beschikbaar bij AllowMarkAsDunno = true; vraag wordt afgerond met IsDunno = true.
SCH-MOD-01-02-F06Rechter paneelOptellen tot en met 50ExerciseContextNameExercises en runcontextsnapshotNaam/context van de concrete oefeningstringNeeHistorische runcontext blijft leidend, ook als oefening later wordt hernoemd.
SCH-MOD-01-02-F07Rechter paneel1 van de 15 vragen beantwoordProgressTextExerciseRuns.CompletedQuestionCount, ExerciseRuns.TotalQuestionsAfgeleide runvoortgangsamengestelde tekstNeeMoet synchroon blijven met server-side voortgang.
SCH-MOD-01-02-F08Rechter paneelvoortgangsbalkProgressBarExerciseRuns.CompletedQuestionCount, ExerciseRuns.TotalQuestionsAfgeleid percentage uit voortgangpercentageNeeWaarde = afgeronde vragen gedeeld door totaal aantal vragen.
SCH-MOD-01-02-M02Rechter paneelTipSaveAndResumeTipGeen zelfstandige persistente bronGenerieke playertekstinformatiemeldingNeeTekst mag alleen getoond worden wanneer server-side hervatten daadwerkelijk wordt ondersteund.

4.2.6 Runtime-states

StateVoorwaardeZichtbare gevolgenOpslaggevolg
InputstateVraag is getoond en nog niet bevestigd.Antwoordveld toont ?; feedback ontbreekt.FirstShownAtUtc is gevuld of wordt bij eerste tonen gevuld.
Correcte feedbackstateAntwoord is bevestigd, modulevalidatie is correct en directe feedback is actief.Gegeven antwoord wordt positief weergegeven met Goed gedaan!.IsCorrect = true, IsCompleted = true, AnsweredAtUtc gevuld.
Foutieve feedbackstateAntwoord is bevestigd, modulevalidatie is fout en directe feedback is actief.Gegeven antwoord wordt negatief weergegeven met Helaas het antwoord was niet goed.IsCorrect = false, IsCompleted = true, AnsweredAtUtc gevuld.
Geen-idee-stateLeerling gebruikt Geen idee.Vraag wordt afgerond zonder correct antwoord; label of resultaatmarkering blijft herkenbaar.IsDunno = true, IsCorrect = false, IsCompleted = true.
Volgende-vraagstateHuidige vraag is verwerkt en er bestaat een volgende vraag.Volgende vraag wordt geladen; voortgang wordt verhoogd.Run- en progressietotalen zijn bijgewerkt.
AfrondingsstateLaatste vraag is verwerkt.Generieke resultatenflow wordt geopend.ExerciseRuns.IsCompleted = true, CompletedAtUtc gevuld en definitieve statistieken berekend.
HervatstateLeerling verlaat de pagina vóór afronding en keert terug via Verder gaan.Eerstvolgende open vraag of huidige niet-afgeronde vraag wordt opnieuw getoond.Run blijft IsCompleted = false; progressie blijft server-side beschikbaar.