8. Geschiedenis alles
8.1 Schermafbeelding

8.2 Scherm meta data
| Veld | Waarde |
|---|---|
| Scherm-ID | SCH-LLN-07-01 |
| Schermnaam | Geschiedenis alles — Overzicht |
| Doelgroep / onderdeel | Leerling |
| Bronbestand | oefenhub_leerling_07_geschiedenis_alles_v1_5.html |
| Mockupversie | V1.5 |
| Screenshotbestand | oefenhub_leerling_07_geschiedenis_alles_v1_5.png |
| Processtap / context | Leerling opent vanuit het profielmenu de brede geschiedenisweergave met alle afgeronde oefenruns over niveaus, categorieën, oefeningen en gedeelde oefeningen heen. |
| Documentatiestatus | Uitgewerkt op basis van HTML-mockup, PNG-screenshot, Functioneel Ontwerp, Technisch Ontwerp, Software Requirements Specification en ondersteunende database-informatie. |
| Opmerkingen | Dit scherm bevat vrijwel uitsluitend dynamisch gevulde gegevens. Waarden zoals aantallen, datums, niveaus, categorieën, oefeningen en runnummers in de mockup zijn voorbeeldwaarden. |
| Route / URL-patroon | Profielmenu > Geschiedenis. Functioneel routepatroon: leerlingcontext / profiel / geschiedenis. |
| Autorisatie / vereiste rol-context | Actieve leerlingcontext; de leerling ziet uitsluitend eigen afgeronde leerlingruns en afgeronde gedeelde oefeningen die door deze leerling zijn uitgevoerd. |
| Primair domeinobject / hoofdentiteit | ExerciseRuns als hoofdentiteit voor afgeronde runs; SharedExercises wanneer een run is ontstaan uit een ontvangen gedeelde oefening. |
| Gerelateerde schermen / navigatie | 01_schermen-leerling, 06_geschiedenis_overzicht, 07_geschiedenis_details, 09_gedeelde_oefening_overzicht. |
| Data-karakter | Uitlees- en filteroverzicht; bevat geen mutatie van runs, resultaten of gedeelde oefeningen. |
8.3 Functionele beschrijving
Dit scherm toont de brede geschiedenisweergave van de ingelogde leerling. In tegenstelling tot het oefeninggebonden geschiedenisoverzicht toont deze pagina niet alleen de resultaten van één gekozen oefening, maar alle afgeronde oefenruns van de leerling over beschikbare niveaus, categorieën en oefeningen heen.
De pagina wordt vanuit het profielmenu geopend en gebruikt de breadcrumb Home > Profiel > Geschiedenis. De leerling gebruikt deze pagina om eerder afgeronde resultaten terug te vinden, ongeacht vanuit welke categorie of oefening deze oorspronkelijk zijn gemaakt. Ook afgeronde gedeelde oefeningen worden opgenomen zodra de leerling de gedeelde oefening daadwerkelijk heeft gestart en afgerond.
De belangrijkste functionele onderdelen zijn:
-
Introductieblok
Beschrijft dat het overzicht alle afgeronde oefengeschiedenis toont. Niet-afgeronde runs vallen buiten dit overzicht. -
In één oogopslag
Toont samenvattende dynamische totalen, zoals het totaal aantal afgeronde runs en het aantal daarvan dat uit gedeelde oefeningen is ontstaan. -
Filterblok
Bevat filters voor periode, niveau, categorie en type. De filters beperken de runset die in de tabel wordt getoond. De opties in niveau- en categoriefilters worden afgeleid uit de historische runs van de leerling en zijn dus geen vaste lijst. -
Snelkeuze type geschiedenis
Biedt een compacte selectie tussen alle afgeronde oefeningen en alleen gedeelde oefeningen. Functioneel is dit een snelle manier om het typefilter te beïnvloeden. -
Geschiedenistabel
Toont afgeronde runs met onder andere afrondmoment, niveau, categorie, oefening, aantal vragen, aantal goed, aantal fout, aantal Geen idee en type run. Een tabelregel is functioneel aanklikbaar en opent de volledige resultaatweergave van die run. -
Paginering en paginagrootte
Beperkt hoeveel regels tegelijk zichtbaar zijn. De opties 20, 40, 60 en Alles zijn bedoeld als presentatiekeuze; backend of service-laag moet voorkomen dat onbegrensde hoeveelheden data onnodig in één keer geladen worden.
Interpretatie van mockupwaarden
Alle concrete waarden in de mockup zijn voorbeelddata. Dit geldt onder andere voor:
- leerlingnaam in de header;
- totalen zoals 41 runs en 6 runs;
- datums en tijden in de tabel;
- niveaus zoals Basisschool – Groep 7;
- categorieën zoals Rekenen;
- oefeningnamen die in de mockup onder het label Subcategorie staan;
- aantallen vragen, goed, fout en Geen idee;
- typewaarden zoals Eigen en Gedeeld;
- paginanummers en zichtbare tabelregels.
Deze waarden worden in de applicatie altijd dynamisch bepaald op basis van de ingelogde leerling, de afgeronde runs, eventuele gedeelde-oefeningrelaties en de actieve filters.
Afbakening ten opzichte van oefeninggebonden geschiedenis
Het oefeninggebonden geschiedenisoverzicht toont alleen afgeronde runs binnen één geselecteerde oefeningcontext. Dit scherm toont juist de brede profielgeschiedenis. De runcontext blijft historisch bepaald door de waarden die op de run zijn opgeslagen, zoals niveau, categorie, oefening en gebruikte moduleversie. Latere wijzigingen in niveau-, categorie- of oefeningconfiguratie mogen bestaande historie niet herschrijven.
Wanneer een leerling op een regel klikt, opent dezelfde functionele resultaatmodal als bij de oefeninggebonden geschiedenisdetails. De detailweergave valt buiten deze overzichtspagina en wordt beschreven in 07_geschiedenis_details.
8.4 UI-elementen en velddefinities
| Element-ID | Type | GUI-verwijzing | Omschrijving | Zichtbaar label | Opmerking | Technische naam |
|---|---|---|---|---|---|---|
| SCH-LLN-07-01-S01 | Section | Paginaheader / introkaart | Introductiekaart voor de brede geschiedenisweergave. | Geschiedenis (alles) | Beschrijft de scope van de pagina; tekst is uitleesbaar en niet bewerkbaar op deze view. | StudentAllHistoryIntroSection |
| SCH-LLN-07-01-F01 | Field | Introkaart — titel | Hoofdtitel van de pagina. | Geschiedenis (alles) | Vaste paginatitel binnen leerlingcontext. | AllHistoryPageTitle |
| SCH-LLN-07-01-M01 | Message | Introkaart — toelichting | Uitleg dat alle afgeronde oefengeschiedenis over niveaus, categorieën en gedeelde oefeningen heen zichtbaar is. | Hier zie je je volledige afgeronde oefengeschiedenis... | Informatieve tekst; concrete zichtbaarheid wordt door data en autorisatie bepaald. | AllHistoryIntroText |
| SCH-LLN-07-01-S02 | Section | Rechter kaart | Samenvattingskaart met kerncijfers over de totale geschiedenis. | In één oogopslag | Waarden zijn dynamisch en afhankelijk van de gefilterde of volledige runset zoals functioneel gekozen. | AllHistorySummarySection |
| SCH-LLN-07-01-F02 | Field | In één oogopslag — totaal | Totaal aantal afgeronde runs van de leerling binnen de gehanteerde context. | Totaal afgerond | Voorbeeldwaarde in mockup: 41 runs; werkelijke waarde is dynamisch. | CompletedRunsCount |
| SCH-LLN-07-01-F03 | Field | In één oogopslag — gedeeld | Aantal afgeronde runs dat is ontstaan uit een ontvangen gedeelde oefening. | Waarvan gedeeld | Voorbeeldwaarde in mockup: 6 runs; werkelijke waarde is dynamisch. | CompletedSharedRunsCount |
| SCH-LLN-07-01-B01 | Button | In één oogopslag — inklappen | Knop om de samenvattingskaart op smallere schermen in of uit te klappen. | ▾ | Presentatieactie; wijzigt geen gegevens. | ToggleSummaryCardButton |
| SCH-LLN-07-01-S03 | Section | Filterkaart | Blok met filtervelden en geschiedenistabel. | Filters en resultaten | Combineert filterselectie, snelkeuze, tabel en paginering. | AllHistoryFilterAndResultsSection |
| SCH-LLN-07-01-F04 | Filter | Filterveld Periode | Selectie voor periodefiltering op afrondmoment. | Periode | Opties in mockup: Afgelopen week, Huidige maand, Vorige maand, Huidige jaar, Alles. | PeriodFilter |
| SCH-LLN-07-01-F05 | Filter | Filterveld Niveau | Selectie voor niveaufiltering op historische runcontext. | Niveau | Bevat alleen niveaus die in de eigen afgeronde historie voorkomen, plus Alle niveaus. | LevelFilter |
| SCH-LLN-07-01-F06 | Filter | Filterveld Categorie | Selectie voor categoriefiltering op historische runcontext. | Categorie | Bevat alleen categorieën die in de eigen afgeronde historie voorkomen, plus Alle categorieën. | CategoryFilter |
| SCH-LLN-07-01-F07 | Filter | Filterveld Type | Selectie voor type run. | Type | Onderscheidt minimaal alles, eigen oefeningen en gedeelde oefeningen. | RunTypeFilter |
| SCH-LLN-07-01-B02 | Toggle / filteractie | Snelkeuze type geschiedenis | Snelkeuze voor alle afgeronde oefeningen. | Alle afgeronde oefeningen | Functioneel gekoppeld aan typefilter Alles. | ShowAllCompletedRunsToggle |
| SCH-LLN-07-01-B03 | Toggle / filteractie | Snelkeuze type geschiedenis | Snelkeuze voor alleen gedeelde oefeningen. | Alleen gedeelde oefeningen | Functioneel gekoppeld aan typefilter voor gedeelde runs. | ShowSharedRunsOnlyToggle |
| SCH-LLN-07-01-T01 | Table | Geschiedenistabel | Tabel met afgeronde runs die voldoen aan de actieve filters. | Geschiedenisregels | Iedere rij vertegenwoordigt één afgeronde ExerciseRun. | AllHistoryRunsTable |
| SCH-LLN-07-01-F08 | Table column | Kolom Nr. | Volgnummer / presentatievolgorde binnen de tabel. | Nr. | Geen technisch run-ID; mag niet als database-ID zichtbaar worden. | DisplayRowNumber |
| SCH-LLN-07-01-F09 | Table column | Kolom Afgerond | Datum en tijd waarop de run is afgerond. | Afgerond | Gebaseerd op CompletedAtUtc, lokaal weergegeven. | CompletedAtDisplay |
| SCH-LLN-07-01-F10 | Table column | Kolom Niveau | Historisch niveau waarop de run is uitgevoerd. | Niveau | Afgeleid uit ExerciseRuns.LevelId en/of historische contextweergave. | LevelDisplayName |
| SCH-LLN-07-01-F11 | Table column | Kolom Categorie | Historische categorie waarop de run is uitgevoerd. | Categorie | Afgeleid uit ExerciseRuns.CategoryId; naamweergave kan historisch/contextueel zijn. | CategoryDisplayName |
| SCH-LLN-07-01-F12 | Table column | Kolom Subcategorie | Zichtbaar label uit de mockup voor de concrete oefening binnen de categorie. | Subcategorie | Functioneel betekent dit de gekozen oefening, bijvoorbeeld Optellen; technische naam gebruikt daarom Exercise. | ExerciseDisplayName |
| SCH-LLN-07-01-F13 | Table column | Kolom Aantal oefeningen | Totaal aantal vragen/opgaven in de afgeronde run. | Aantal oefeningen | Leest uit uniforme runvelden; niet opnieuw berekend uit de modulepayload voor normale tabelweergave. | TotalQuestionsDisplay |
| SCH-LLN-07-01-F14 | Table column | Kolom Aantal goed | Aantal goed beantwoorde vragen in de run. | Aantal goed | Uniforme runwaarde. | CorrectCountDisplay |
| SCH-LLN-07-01-F15 | Table column | Kolom Aantal fout | Aantal fout beantwoorde vragen in de run. | Aantal fout | Uniforme runwaarde. | IncorrectCountDisplay |
| SCH-LLN-07-01-F16 | Table column | Kolom Aantal ‘Geen idee’ | Aantal vragen dat als Geen idee is gemarkeerd. | Aantal ‘Geen idee’ | Telt apart en telt functioneel mee binnen fout-/scorelogica. | DunnoCountDisplay |
| SCH-LLN-07-01-F17 | Table column | Kolom Type | Aanduiding of de run eigen of gedeeld is. | Type | Gedeeld wanneer SharedExerciseId gevuld is of er een gekoppelde sharecontext bestaat. | RunTypeDisplay |
| SCH-LLN-07-01-A01 | Action | Klik op tabelrij | Opent de resultaatdetails van de geselecteerde afgeronde run. | Klik op een regel... | Alleen lezen; opent detailmodal zonder rungegevens te wijzigen. | OpenRunResultDetailsAction |
| SCH-LLN-07-01-M02 | Message | Onder tabel | Toelichting dat klikken op een regel de volledige resultaatweergave opent en gedeelde oefeningen na afronden in de geschiedenis verschijnen. | Klik op een regel om het volledige resultaat... | Informatieve tekst. | AllHistoryTableHelpText |
| SCH-LLN-07-01-F18 | Field / select | Paginagrootte | Keuzelijst voor aantal zichtbare regels per pagina. | Toon per pagina | Opties: 20, 40, 60, Alles. | PageSizeSelector |
| SCH-LLN-07-01-S04 | Section | Paginering | Navigatie tussen pagina’s met resultaten. | 1, 2, 3, Volgende | Weergave is dynamisch afhankelijk van aantal resultaten. | PaginationControls |
| SCH-LLN-07-01-M03 | Message | Lege staat | Melding wanneer de actieve filters geen afgeronde runs opleveren. | Geen resultaten gevonden | Niet zichtbaar in de voorbeeldmockup, maar functioneel noodzakelijk. | EmptyHistoryStateMessage |
8.5 Waardelagen
| Element-ID | GUI-verwijzing | Zichtbaar label | Technische naam | Databron | Waardebron | Datatype | Bewerkbaar | Validatie / regel |
|---|---|---|---|---|---|---|---|---|
| SCH-LLN-07-01-S01 | Paginaheader / introkaart | Geschiedenis (alles) | StudentAllHistoryIntroSection | Codegedreven paginaopbouw, eventueel aangevuld met contentblok voor begeleidende tekst | Vaste schermstructuur voor profielgeschiedenis | Section | Nee | Alleen zichtbaar binnen actieve leerlingcontext. |
| SCH-LLN-07-01-F01 | Introkaart — titel | Geschiedenis (alles) | AllHistoryPageTitle | Codegedreven label of contentblok | Pagina-identificatie voor brede geschiedenis | String | Nee | Titel mag niet afhankelijk zijn van filterresultaten. |
| SCH-LLN-07-01-M01 | Introkaart — toelichting | Hier zie je je volledige afgeronde oefengeschiedenis... | AllHistoryIntroText | Codegedreven tekst of beheerbare content | Uitlegtekst over scope van de pagina | String | Nee | Tekst mag niet suggereren dat niet-afgeronde runs zichtbaar zijn. |
| SCH-LLN-07-01-F02 | In één oogopslag — totaal | Totaal afgerond | CompletedRunsCount | ExerciseRuns | Aantal eigen leerlingruns met UserId = huidige leerling, IsCompleted = true, CompletedAtUtc gevuld en IsTestRun = false | Integer | Nee | Niet-afgeronde runs, testruns en runs van andere gebruikers tellen niet mee. |
| SCH-LLN-07-01-F03 | In één oogopslag — gedeeld | Waarvan gedeeld | CompletedSharedRunsCount | ExerciseRuns.SharedExerciseId, SharedExercises | Aantal afgeronde runs van huidige leerling met gedeelde-oefeningcontext | Integer | Nee | Alleen shares die daadwerkelijk tot een afgeronde run hebben geleid tellen mee. |
| SCH-LLN-07-01-F04 | Filterveld Periode | Periode | PeriodFilter | UI-selectie; filtert op ExerciseRuns.CompletedAtUtc | User input binnen vaste filteropties | Enum/string | Ja | Periodefilter werkt op afrondmoment, niet op startmoment. |
| SCH-LLN-07-01-F05 | Filterveld Niveau | Niveau | LevelFilter | ExerciseRuns.LevelId, TeacherLevels en historische runcontext | Afgeleid uit niveaus die voorkomen in eigen afgeronde runs | GUID / display string | Ja | Filter bevat geen niveaus zonder afgeronde runs voor deze leerling, behalve de optie Alle niveaus. |
| SCH-LLN-07-01-F06 | Filterveld Categorie | Categorie | CategoryFilter | ExerciseRuns.CategoryId, Categories en historische runcontext | Afgeleid uit categorieën die voorkomen in eigen afgeronde runs binnen actieve filtercontext | GUID / display string | Ja | Filter bevat geen categorieën zonder relevante afgeronde runs, behalve de optie Alle categorieën. |
| SCH-LLN-07-01-F07 | Filterveld Type | Type | RunTypeFilter | ExerciseRuns.SharedExerciseId, SharedExercises | User input; bepaalt of eigen, gedeelde of alle runs worden getoond | Enum/string | Ja | Gedeeld wordt afgeleid uit sharecontext; type is geen vrij invoerveld op de run. |
| SCH-LLN-07-01-B02 | Snelkeuze type geschiedenis | Alle afgeronde oefeningen | ShowAllCompletedRunsToggle | UI-state gekoppeld aan RunTypeFilter | User input | Boolean / enumactie | Ja | Wijzigt alleen filterstate, niet de onderliggende runs. |
| SCH-LLN-07-01-B03 | Snelkeuze type geschiedenis | Alleen gedeelde oefeningen | ShowSharedRunsOnlyToggle | UI-state gekoppeld aan RunTypeFilter | User input | Boolean / enumactie | Ja | Toont uitsluitend afgeronde runs met gedeelde-oefeningcontext. |
| SCH-LLN-07-01-T01 | Geschiedenistabel | Geschiedenisregels | AllHistoryRunsTable | ExerciseRuns, SharedExercises, TeacherLevels, Categories, Exercises | Gefilterde en gepagineerde lijst van afgeronde runs van huidige leerling | Collection | Nee | Alleen IsCompleted = true, CompletedAtUtc gevuld en IsTestRun = false tonen. |
| SCH-LLN-07-01-F08 | Kolom Nr. | Nr. | DisplayRowNumber | Afgeleid uit sorteervolgorde / paginering | Berekend | Integer/string | Nee | Geen GUID of technisch ID tonen. |
| SCH-LLN-07-01-F09 | Kolom Afgerond | Afgerond | CompletedAtDisplay | ExerciseRuns.CompletedAtUtc | Databasewaarde, lokaal geformatteerd | DateTime display | Nee | UTC opslaan, lokale tijdzone tonen. |
| SCH-LLN-07-01-F10 | Kolom Niveau | Niveau | LevelDisplayName | ExerciseRuns.LevelId, TeacherLevels, eventuele historische contextlogica | Database / historisch contextueel afgeleid | String | Nee | Runcontext blijft historisch leidend, ook na latere autorisatie- of categoriewijzigingen. |
| SCH-LLN-07-01-F11 | Kolom Categorie | Categorie | CategoryDisplayName | ExerciseRuns.CategoryId, Categories, eventuele snapshot/contextlogica | Database / historisch contextueel afgeleid | String | Nee | Historische runcontext mag niet worden herschreven door latere categoriewijziging. |
| SCH-LLN-07-01-F12 | Kolom Subcategorie | Subcategorie | ExerciseDisplayName | ExerciseRuns.ExerciseId, Exercises | Database / historische oefencontext | String | Nee | Functioneel betreft dit de concrete oefening; zichtbaar label in mockup is Subcategorie. |
| SCH-LLN-07-01-F13 | Kolom Aantal oefeningen | Aantal oefeningen | TotalQuestionsDisplay | ExerciseRuns.TotalQuestions | Databasewaarde | Integer | Nee | Niet uit modulepayload herberekenen voor normale lijstweergave. |
| SCH-LLN-07-01-F14 | Kolom Aantal goed | Aantal goed | CorrectCountDisplay | ExerciseRuns.CorrectCount | Databasewaarde | Integer | Nee | Waarde is definitief na afronden van de run. |
| SCH-LLN-07-01-F15 | Kolom Aantal fout | Aantal fout | IncorrectCountDisplay | ExerciseRuns.IncorrectCount | Databasewaarde | Integer | Nee | Inclusief fout gerekende vragen conform runregels. |
| SCH-LLN-07-01-F16 | Kolom Aantal ‘Geen idee’ | Aantal ‘Geen idee’ | DunnoCountDisplay | ExerciseRuns.DunnoCount | Databasewaarde | Integer | Nee | Geen idee blijft apart zichtbaar en telt functioneel als fout. |
| SCH-LLN-07-01-F17 | Kolom Type | Type | RunTypeDisplay | ExerciseRuns.SharedExerciseId, SharedExercises.Id | Afgeleid | Enum/display string | Nee | Eigen wanneer geen sharecontext; Gedeeld wanneer run uit ontvangen gedeelde oefening komt. |
| SCH-LLN-07-01-A01 | Klik op tabelrij | Open detail | OpenRunResultDetailsAction | Geselecteerde ExerciseRuns.Id binnen eigen leerlingcontext | User action | Action | Ja | Mag alleen detailweergave openen voor runs van huidige leerling. |
| SCH-LLN-07-01-F18 | Paginagrootte | Toon per pagina | PageSizeSelector | UI-state | User input | Enum/int | Ja | Toegestane waarden: 20, 40, 60, Alles; server-side begrenzing blijft vereist. |
| SCH-LLN-07-01-S04 | Paginering | 1, 2, 3, Volgende | PaginationControls | Gefilterde runset en gekozen paginagrootte | Berekend | Navigation state | Ja | Paginering moet aansluiten op actuele filters en sortering. |
| SCH-LLN-07-01-M03 | Lege staat | Geen resultaten gevonden | EmptyHistoryStateMessage | Gefilterde runset | Berekend | Message | Nee | Tonen wanneer de gefilterde runset leeg is; geen technische fout tonen. |
8.6 Schermtrace naar SRS en acceptatiecriteria
De onderstaande tabel legt per schermrequirement de koppeling naar het centrale schermrequirements-trace-register, SRS-requirements en acceptatiecriteria vast. De normatieve requirementtekst staat in de SRS; dit schermdocument beschrijft alleen de lokale schermcontext.
Deze tabel bevat alleen schermtraceability. De normatieve requirementtekst en acceptatiecriteria staan centraal in de SRS.
| Schermrequirement | Dekt | Schermcontext |
|---|---|---|
REQ-SCH-LLN-07-01-01 | SRS-LRN-010 AC-LRN-010 | De brede geschiedenispagina vanuit het profielmenu beschikbaar maken voor leerlingen in een actieve leerlingcontext |
REQ-SCH-LLN-07-01-02 | SRS-LRN-010 AC-LRN-010 | Op deze pagina uitsluitend afgeronde, niet-test exercise runs tonen van de ingelogde leerling |
REQ-SCH-LLN-07-01-03 | SRS-LRN-010 SRS-LRN-002 AC-LRN-010 AC-LRN-002 | Niet-afgeronde runs uitsluiten van de brede geschiedenisweergave |
REQ-SCH-LLN-07-01-04 | SRS-LRN-010 AC-LRN-010 | Afgeronde runs uit ontvangen gedeelde oefeningen opnemen zodra de leerling de gedeelde oefening daadwerkelijk heeft afgerond |
REQ-SCH-LLN-07-01-05 | SRS-RDM-006 SRS-RDM-002 SRS-RDM-001 SRS-LRN-010 AC-RDM-006 AC-RDM-002 AC-RDM-001 AC-LRN-010 | In de samenvatting minimaal het totaal aantal afgeronde runs en het aantal gedeelde afgeronde runs dynamisch bepalen |
REQ-SCH-LLN-07-01-06 | SRS-CAT-001 AC-CAT-001 | Periodefiltering toepassen op het afrondmoment van de run |
REQ-SCH-LLN-07-01-07 | SRS-LRN-010 AC-LRN-010 | Het niveaufilter opbouwen uit niveaus die voorkomen in de afgeronde runs van de ingelogde leerling, aangevuld met de optie Alle niveaus |
REQ-SCH-LLN-07-01-08 | SRS-LRN-010 AC-LRN-010 | Het categoriefilter opbouwen uit categorieën die voorkomen in de afgeronde runs van de ingelogde leerling, aangevuld met de optie Alle categorieën |
REQ-SCH-LLN-07-01-09 | SRS-CAT-001 AC-CAT-001 | Typefiltering ondersteunen voor minimaal alle runs, eigen runs en gedeelde runs |
REQ-SCH-LLN-07-01-10 | SRS-LRN-010 AC-LRN-010 | De snelkeuzes Alle afgeronde oefeningen en Alleen gedeelde oefeningen dezelfde runset beïnvloeden als het typefilter |
REQ-SCH-LLN-07-01-11 | SRS-LRN-010 AC-LRN-010 | De geschiedenistabel standaard sorteren op meest recent afgeronde run |
REQ-SCH-LLN-07-01-12 | SRS-RDM-009 SRS-RDM-006 SRS-RDM-002 SRS-RDM-001 SRS-LRN-004 AC-RDM-009 AC-RDM-006 AC-RDM-002 AC-RDM-001 AC-LRN-004 | Per run minimaal afrondmoment, niveau, categorie, oefening, totaal aantal vragen, aantal goed, aantal fout, aantal Geen idee en type tonen |
REQ-SCH-LLN-07-01-13 | SRS-AUTH-004 SRS-LRN-010 AC-AUTH-004 AC-LRN-010 | Het systeem mag geen technische identifiers zoals GUID's, module-ID's of interne run-ID's zichtbaar tonen in de geschiedenistabel |
REQ-SCH-LLN-07-01-14 | SRS-LRN-004 AC-LRN-004 | Tabeltotalen voor vragen, goed, fout en Geen idee worden gelezen uit uniforme runvelden en mogen voor normale lijstweergave niet opnieuw uit de modulepayload worden berekend |
REQ-SCH-LLN-07-01-15 | SRS-LRN-010 AC-LRN-010 | Historische runcontext tonen op basis van de opgeslagen niveau-, categorie-, oefening- en modulecontext van de run |
REQ-SCH-LLN-07-01-16 | SRS-AUTH-001 SRS-LRN-010 AC-AUTH-001 AC-LRN-010 | Latere wijzigingen in categorieën, oefeningen, autorisaties of niveaukoppelingen mogen bestaande afgeronde geschiedenisregels niet herschrijven |
REQ-SCH-LLN-07-01-17 | SRS-LRN-010 AC-LRN-010 | Een klik op een tabelregel de detailweergave van precies die afgeronde run openen zonder de rungegevens te wijzigen |
REQ-SCH-LLN-07-01-18 | SRS-AUTH-004 AC-AUTH-004 | Voorkomen dat een leerling via directe URL of aangepaste clientstate detailgegevens van runs van andere gebruikers kan openen |
REQ-SCH-LLN-07-01-19 | SRS-CAT-001 AC-CAT-001 | Datum- en tijdwaarden op database- en backendniveau in UTC worden verwerkt en in de UI lokaal en consistent worden weergegeven |
REQ-SCH-LLN-07-01-20 | SRS-CAT-001 AC-CAT-001 | Paginering en paginagrootte ondersteunen met minimaal 20, 40, 60 en Alles als zichtbare keuzes |
REQ-SCH-LLN-07-01-21 | SRS-CAT-001 AC-CAT-001 | Ook wanneer de gebruiker Alles kiest, de applicatie voorkomen dat onbegrensde hoeveelheden data onnodig in één keer geladen of gerenderd worden |
REQ-SCH-LLN-07-01-22 | SRS-LRN-010 AC-LRN-010 | Een lege staat tonen wanneer de leerling geen afgeronde runs heeft of wanneer actieve filters geen resultaten opleveren |
REQ-SCH-LLN-07-01-23 | SRS-RDM-006 SRS-RDM-002 SRS-RDM-001 SRS-CAT-001 AC-RDM-006 AC-RDM-002 AC-RDM-001 AC-CAT-001 | Mockupwaarden zoals voorbeeldniveaus, voorbeeldcategorieën, datums, runnummers en aantallen nooit hardcoded als productiegegevens gebruiken |
REQ-SCH-LLN-07-01-24 | SRS-LRN-010 AC-LRN-010 | De brede geschiedenispagina gedeelde oefeningen na afronding functioneel gelijkwaardig tonen aan eigen afgeronde oefeningen, met behoud van de aparte type-aanduiding Gedeeld |
REQ-SCH-LLN-07-01-25 | SRS-LRN-010 SRS-LRN-004 AC-LRN-010 AC-LRN-004 | De waarde Geen idee apart zichtbaar blijven in de tabel en tegelijk aansluiten op de fout-/scorelogica van de afgeronde run |
8.7 Technische koppeling
Voor technische uitwerking zijn vooral relevant:
- 05 Autorisatie, policies en server-side contextcontrole voor server-side begrenzing tot eigen brede geschiedenis.
- 10 Oefenruns, voortgang, resultaten, statistieken en PDF-brondata voor afgeronde eigen runs, gedeelde runs en brede resultaatfilters.
- 12 Relatiebeheer, uitnodigingen en gedeelde oefeningen voor herkomst en snapshotcontext van gedeelde oefeningen.
- 16 PDF-export met QuestPDF voor PDF-acties vanuit brede resultaatweergaven.
- 17 Readmodels, tellers, badges, caching en materialisatie voor samenvattingstellingen, filterwaarden en materialisatie van brede geschiedenis.
- 25 Privacy, retentie, anonimisering en gegevensbescherming voor beperking van persoonsgegevens en technische identifiers in geschiedenis.