9. Gedeelde oefening overzicht
9.1 Schermafbeelding

9.2 Scherm meta data
| Veld | Waarde |
|---|---|
| Scherm-ID | SCH-LLN-08-01 |
| Schermnaam | Gedeelde oefeningen — Overzicht |
| Doelgroep / onderdeel | Leerling |
| Bronbestand | oefenhub_leerling_08_gedeelde_oefening_overzicht_v1_4.html |
| Mockupversie | V1.4 |
| Screenshotbestand | oefenhub_leerling_08_gedeelde_oefening_overzicht_v1_4.png |
| Processtap / context | Leerling opent vanuit het profielmenu het overzicht van ontvangen gedeelde oefeningen. Het profielmenu-item is alleen zichtbaar wanneer de leerling minimaal één actieve, niet-verwijderde gedeelde oefening heeft ontvangen. |
| Documentatiestatus | Uitgewerkt op basis van HTML-mockup, PNG-screenshot, Functioneel Ontwerp, Technisch Ontwerp, Software Requirements Specification en database-informatie. |
| Opmerkingen | Vrijwel alle waarden in deze view zijn dynamisch. Namen, datums, statuslabels, voortgang, aantallen en beschikbare acties worden bepaald door de ontvangen gedeelde oefeningen van de ingelogde leerling. |
| Route / URL-patroon | Functioneel routepatroon: leerlingprofiel > Gedeelde oefeningen. |
| Autorisatie / vereiste rol-context | Actieve leerlingcontext; alleen gedeelde oefeningen waarvan de ingelogde leerling ontvanger is en die niet uit het eigen overzicht zijn verwijderd. |
| Primair domeinobject / hoofdentiteit | SharedExercises als administratief ontvangen gedeelde oefening; ExerciseRuns zodra de ontvanger de gedeelde oefening daadwerkelijk start of afrondt. |
| Gerelateerde schermen / navigatie | 01_schermen-leerling, 05_start_nieuwe, 07_geschiedenis_details, 08_geschiedenis_alles. |
| Data-karakter | Dynamisch overzichtsscherm met status-, filter- en actiegedrag; geen vaste testdata en geen handmatige invoer behalve filterselecties en bevestigingsacties. |
9.3 Functionele beschrijving
Deze pagina toont de gedeelde oefeningen die de ingelogde leerling van andere leerlingen heeft ontvangen. De pagina wordt geopend vanuit het profielmenu en is functioneel alleen relevant wanneer er minimaal één ontvangen gedeelde oefening bestaat die nog niet door de ontvanger uit het eigen overzicht is verwijderd.
Een gedeelde oefening is eerst een administratief ontvangen record. Pas wanneer de ontvanger de oefening start, ontstaat een eigen ExerciseRun voor de ontvanger. De gedeelde oefening blijft daarbij gebaseerd op de historische bronrun van de leerling die de oefening deelde. De zichtbare context van niveau, categorie en oefening wordt daarom als snapshot getoond zoals die gold op het moment van delen. Latere hernoemingen of categoriemigraties mogen deze zichtbare snapshotwaarden in dit overzicht niet herschrijven.
De pagina bestaat uit:
-
Introblok
Legt uit dat dit overzicht ontvangen gedeelde oefeningen bundelt en dat een systeembericht de leerling informeert wanneer een nieuwe gedeelde oefening klaarstaat. -
In één oogopslag
Toont dynamische samenvattingsaantallen voor ontvangen gedeelde oefeningen, bijvoorbeeld nieuw ontvangen, al gestart en afgerond. -
Filters
De leerling kan filteren op status, niveau, categorie en afzender. Filteropties worden afgeleid uit de gedeelde oefeningen die voor deze leerling beschikbaar zijn. -
Tabel met gedeelde oefeningen
Elke regel vertegenwoordigt één ontvangen gedeelde oefening. Per regel worden onder meer ontvangstdatum, deler, niveau, categorie, oefening/subcategorie, status, voortgang en acties getoond. -
Acties per gedeelde oefening
Rechts in de tabel staan acties om geschiedenis te bekijken, de gedeelde oefening te starten of te hervatten, en de gedeelde oefening uit het eigen overzicht te verwijderen.
Interpretatie van dynamische mockupwaarden
De voorbeeldwaarden in de mockup, zoals namen van leerlingen, datums, niveaus, categorieën, oefeningen, statuslabels, voortgangswaarden en aantallen, zijn uitsluitend illustratief. In productie worden deze waarden altijd dynamisch bepaald op basis van de ontvangen gedeelde oefeningen van de ingelogde leerling, de daaruit ontstane oefenruns en de actieve filters.
Voorbeelden:
- Nieuw ontvangen betekent dat de gedeelde oefening wel is ontvangen, maar nog niet door de ontvanger is gestart.
- Al gestart betekent dat er een niet-afgeronde run voor de ontvanger bestaat die uit de gedeelde oefening is ontstaan.
- Afgerond betekent dat er minimaal één afgeronde run bestaat die uit deze gedeelde oefening of de gedeelde inhoud is ontstaan.
- De voortgang zoals
6 van 15is altijd dynamisch en hoort bij de eigen run van de ontvanger, niet bij de bronrun van de deler. - De geschiedenisactie is alleen actief wanneer er voor deze gedeelde oefening afgeronde runhistorie beschikbaar is.
Starten, hervatten en opnieuw maken
Wanneer de ontvanger een gedeelde oefening voor de eerste keer start, moet de oefening in exact dezelfde vraagvolgorde worden aangeboden als de bronrun waarin de deler de oefening heeft gedeeld. Dit geldt alleen voor de eerste uitvoering door de ontvanger.
Wanneer de leerling een gedeelde oefening al gestart maar nog niet afgerond heeft, opent de startactie de bestaande niet-afgeronde run zodat de leerling verder kan gaan waar hij of zij gebleven was.
Wanneer de leerling dezelfde gedeelde oefening na afronding opnieuw maakt, gebruikt het systeem dezelfde inhoud maar wordt een nieuwe run gegenereerd met gehusselde/random volgorde. De nieuwe run is een eigen run van de ontvanger en mag de oorspronkelijke gedeelde bronrun of eerdere afgeronde runs niet overschrijven.
De mockup toont in de startmodal een volgorderegel voor herhalen. Functioneel blijft leidend dat de eerste uitvoering exact de gedeelde volgorde gebruikt en dat vervolguitvoeringen na afronding als nieuwe, gehusselde/random runs worden opgebouwd.
Verwijderen uit eigen overzicht
De verwijderactie verwijdert de gedeelde oefening uit het overzicht van de ontvanger door het shared-record functioneel te markeren als verwijderd. Daardoor verliest de leerling toegang tot deze gedeelde oefening vanuit dit overzicht. Reeds uitgevoerde en afgeronde runs blijven historisch beschikbaar via Geschiedenis alles. Verwijderen van een gedeelde oefening verwijdert dus geen afgeronde oefenruns.
9.4 UI-elementen en velddefinities
| Element-ID | Type | GUI-verwijzing | Omschrijving | Zichtbaar label | Opmerking | Technische naam |
|---|---|---|---|---|---|---|
| SCH-LLN-08-01-S01 | Section | Breadcrumb | Navigatiepad naar het profielonderdeel voor gedeelde oefeningen. | Home > Profiel > Geschiedenis | In de mockup staat het laatste breadcrumb-label als Geschiedenis; functioneel betreft deze pagina Gedeelde oefeningen. | SharedExercisesBreadcrumb |
| SCH-LLN-08-01-S02 | Section | Introkaart | Kaart met titel en toelichting op ontvangen gedeelde oefeningen. | Gedeelde oefeningen | Tekstueel informatief; inhoud mag beheerbaar zijn, maar de schermstructuur is codegedreven. | SharedExercisesIntroSection |
| SCH-LLN-08-01-F01 | Field | Introkaart — titel | Titel van de pagina. | Gedeelde oefeningen | Read-only weergavetekst. | SharedExercisesTitle |
| SCH-LLN-08-01-F02 | Field | Introkaart — toelichting | Legt uit dat de leerling gedeelde oefeningen kan openen, starten, hervatten of opnieuw maken. | Hier verzamel je ontvangen gedeelde oefeningen. | Read-only toelichting; geen vaste data. | SharedExercisesIntroText |
| SCH-LLN-08-01-S03 | Section | Samenvattingskaart rechts | Samenvatting van de ontvangen gedeelde oefeningen van de leerling. | In één oogopslag | Aantallen zijn dynamisch en niet handmatig bewerkbaar. | SharedExercisesSummarySection |
| SCH-LLN-08-01-F03 | Field | Samenvatting — nieuw ontvangen | Aantal gedeelde oefeningen dat nog niet door de ontvanger is gestart. | Nieuw ontvangen | Dynamische teller. | NewSharedExercisesCount |
| SCH-LLN-08-01-F04 | Field | Samenvatting — al gestart | Aantal gedeelde oefeningen met een niet-afgeronde eigen run van de ontvanger. | Al gestart | Dynamische teller. | StartedSharedExercisesCount |
| SCH-LLN-08-01-F05 | Field | Samenvatting — afgerond | Aantal gedeelde oefeningen waarvoor de leerling een afgeronde run heeft. | Afgerond | Dynamische teller. | CompletedSharedExercisesCount |
| SCH-LLN-08-01-S04 | Section | Filterbalk | Filtergroep boven de tabel. | Status / Niveau / Categorie / Gedeeld door | Filtert de tabelweergave; verandert geen data. | SharedExercisesFilterSection |
| SCH-LLN-08-01-F06 | Field | Filter — status | Selectieveld om gedeelde oefeningen op afgeleide status te filteren. | Status | Opties: Alles, Nieuw ontvangen, Al gestart, Afgerond. | SharedExerciseStatusFilter |
| SCH-LLN-08-01-F07 | Field | Filter — niveau | Selectieveld met niveaus die voorkomen in de ontvangen gedeelde oefeningen. | Niveau | Gebaseerd op snapshotwaarden of gekoppelde runcontext. | SharedExerciseLevelFilter |
| SCH-LLN-08-01-F08 | Field | Filter — categorie | Selectieveld met categorieën die voorkomen in de ontvangen gedeelde oefeningen. | Categorie | Gebaseerd op snapshotwaarden. | SharedExerciseCategoryFilter |
| SCH-LLN-08-01-F09 | Field | Filter — gedeeld door | Selectieveld met leerlingen die oefeningen met de ingelogde leerling hebben gedeeld. | Gedeeld door | Alleen afzenders van zichtbare, niet-verwijderde shared-records. | SharedExerciseSenderFilter |
| SCH-LLN-08-01-T01 | Table | Gedeelde oefeningen tabel | Hoofdtabel met ontvangen gedeelde oefeningen. | Ontvangen / Gedeeld door / Niveau / Categorie / Subcategorie / Status / Voortgang / Acties | Alle regels zijn dynamisch. | SharedExercisesTable |
| SCH-LLN-08-01-F10 | Field | Kolom Ontvangen | Datum waarop de gedeelde oefening door de leerling is ontvangen. | Ontvangen | Weergave op basis van gedeeld-op datum. | SharedAtDisplayDate |
| SCH-LLN-08-01-F11 | Field | Kolom Gedeeld door | Naam van de leerling die de oefening heeft gedeeld. | Gedeeld door | Afgeleid van SharedByUserId; geen technisch ID tonen. | SharedByDisplayName |
| SCH-LLN-08-01-F12 | Field | Kolom Niveau | Niveau zoals vastgelegd op het moment van delen. | Niveau | Snapshotwaarde; blijft historisch gelijk. | LevelSnapshotDisplayText |
| SCH-LLN-08-01-F13 | Field | Kolom Categorie | Categorie zoals vastgelegd op het moment van delen. | Categorie | Snapshotwaarde; blijft historisch gelijk. | CategorySnapshotDisplayText |
| SCH-LLN-08-01-F14 | Field | Kolom Subcategorie | Oefening/subcategorie zoals vastgelegd op het moment van delen. | Subcategorie | Functioneel de gedeelde oefeningcontext; geen aparte subcategorietabel veronderstellen. | ExerciseSnapshotDisplayText |
| SCH-LLN-08-01-F15 | Field | Kolom Status | Afgeleide status van de ontvangen gedeelde oefening. | Status | Nieuw ontvangen, Al gestart of Afgerond. | SharedExerciseStatus |
| SCH-LLN-08-01-F16 | Field | Kolom Voortgang | Voortgang van de eigen run van de ontvanger, indien gestart. | Voortgang | Leeg of streepje bij nog niet gestart; anders dynamisch zoals <beantwoord> van <totaal>. | SharedExerciseProgress |
| SCH-LLN-08-01-A01 | Action | Actieknop geschiedenis | Opent de geschiedenis/resultaten van afgeronde runs voor deze gedeelde oefening. | Geschiedenis | Disabled wanneer er nog geen afgeronde runhistorie is. | OpenSharedExerciseHistoryAction |
| SCH-LLN-08-01-A02 | Action | Actieknop starten / hervatten / opnieuw maken | Start de eerste gedeelde run, hervat een niet-afgeronde run of maakt na afronding een nieuwe run. | Start / Ga verder / Start opnieuw | Gedrag afhankelijk van status. | StartSharedExerciseAction |
| SCH-LLN-08-01-A03 | Action | Actieknop verwijderen | Opent bevestigingsmodal voor verwijderen uit eigen overzicht. | Verwijder gedeelde oefening | Verwijdert geen afgeronde runs. | DeleteSharedExerciseAction |
| SCH-LLN-08-01-M01 | Message | Snapshottekst onder tabel | Legt uit dat namen van niveau, categorie en oefening historisch blijven zoals op moment van delen. | De teksten van niveau, categorie en subcategorie blijven zichtbaar zoals ze waren op het moment van delen. | Belangrijke functionele toelichting. | SharedExerciseSnapshotInfoMessage |
| SCH-LLN-08-01-MOD01 | Modal | Startmodal | Bevestigingsmodal bij starten, hervatten of opnieuw maken van een gedeelde oefening. | Gedeelde oefening starten | Modaltekst is afhankelijk van status van de gedeelde oefening. | StartSharedExerciseModal |
| SCH-LLN-08-01-F17 | Field | Startmodal — statusuitleg | Dynamische uitleg over eerste start, hervatten of opnieuw maken. | Je start deze gedeelde oefening voor de eerste keer. | Voorbeeldtekst; exacte tekst afhankelijk van status. | StartSharedExerciseModalText |
| SCH-LLN-08-01-F18 | Field | Startmodal — volgorde | Toont of bepaalt de volgordelogica bij opnieuw maken. | Volgorde | Eerste start altijd exact gedeelde volgorde; herhaalruns na afronding random/gehusseld. | SharedExerciseOrderMode |
| SCH-LLN-08-01-B01 | Button | Startmodal — annuleren | Sluit de startmodal zonder actie. | Annuleren | Geen mutatie. | CancelStartSharedExerciseButton |
| SCH-LLN-08-01-B02 | Button | Startmodal — bevestigen | Bevestigt starten, hervatten of opnieuw maken. | Start oefening | Leidt tot bestaande run openen of nieuwe run genereren. | ConfirmStartSharedExerciseButton |
| SCH-LLN-08-01-MOD02 | Modal | Verwijdermodal | Bevestigingsmodal voor verwijderen van de gedeelde oefening uit het overzicht. | Gedeelde oefening verwijderen | Waarschuwt dat afgeronde runs in Geschiedenis alles blijven bestaan. | DeleteSharedExerciseModal |
| SCH-LLN-08-01-B03 | Button | Verwijdermodal — annuleren | Sluit verwijdermodal zonder wijziging. | Annuleren | Geen mutatie. | CancelDeleteSharedExerciseButton |
| SCH-LLN-08-01-B04 | Button | Verwijdermodal — bevestigen | Markeert het shared-record als verwijderd voor de ontvanger. | Verwijderen | Soft delete / eigen-overzicht verwijdering. | ConfirmDeleteSharedExerciseButton |
9.5 Waardelagen
| Element-ID | GUI-verwijzing | Zichtbaar label | Technische naam | Databron | Waardebron | Datatype | Bewerkbaar | Validatie / regel |
|---|---|---|---|---|---|---|---|---|
| SCH-LLN-08-01-S02 | Introkaart | Gedeelde oefeningen | SharedExercisesIntroSection | Codegedreven profielpagina met eventueel beheerbare tekstinhoud | Uitleg over ontvangen gedeelde oefeningen | Section / composite | Nee | Pagina wordt alleen via profielmenu aangeboden wanneer zichtbare gedeelde oefeningen bestaan. |
| SCH-LLN-08-01-F03 | Samenvatting — nieuw ontvangen | Nieuw ontvangen | NewSharedExercisesCount | SharedExercises | Telling van niet-verwijderde records met SharedToUserId = huidige gebruiker waarvoor nog geen eigen start/run bestaat | Integer | Nee | Alleen records met IsDeleted = false tellen mee. |
| SCH-LLN-08-01-F04 | Samenvatting — al gestart | Al gestart | StartedSharedExercisesCount | SharedExercises + ExerciseRuns | Telling van gedeelde oefeningen met een bestaande niet-afgeronde run van de ontvanger | Integer | Nee | Run hoort bij huidige leerling en is nog niet IsCompleted = true. |
| SCH-LLN-08-01-F05 | Samenvatting — afgerond | Afgerond | CompletedSharedExercisesCount | SharedExercises + ExerciseRuns | Telling van gedeelde oefeningen waarvoor de ontvanger minimaal één afgeronde run heeft | Integer | Nee | Alleen afgeronde, niet-test runs tellen mee. |
| SCH-LLN-08-01-F06 | Filter — status | Status | SharedExerciseStatusFilter | Afgeleide statussen uit SharedExercises en gekoppelde/ontstane ExerciseRuns | User input voor filterselectie | Enum / string | Ja | Filter wijzigt alleen de zichtbare tabelregels; geen database-mutatie. |
| SCH-LLN-08-01-F07 | Filter — niveau | Niveau | SharedExerciseLevelFilter | SharedExercises.LevelSnapshotText en/of historische ExerciseRuns.LevelId | User input voor filterselectie | String / enum-achtige selectie | Ja | Alleen waarden tonen die voorkomen binnen de zichtbare gedeelde oefeningen van deze leerling. |
| SCH-LLN-08-01-F08 | Filter — categorie | Categorie | SharedExerciseCategoryFilter | SharedExercises.CategorySnapshotText en/of historische ExerciseRuns.CategoryId | User input voor filterselectie | String / enum-achtige selectie | Ja | Alleen waarden tonen die voorkomen binnen de zichtbare gedeelde oefeningen van deze leerling. |
| SCH-LLN-08-01-F09 | Filter — gedeeld door | Gedeeld door | SharedExerciseSenderFilter | SharedExercises.SharedByUserId + Users | User input voor filterselectie | GUID-intern / naam zichtbaar | Ja | Alleen afzenders tonen die ten minste één zichtbare gedeelde oefening met deze leerling hebben. |
| SCH-LLN-08-01-T01 | Tabel | Gedeelde oefeningen | SharedExercisesTable | SharedExercises met optionele afleiding uit ExerciseRuns | Dynamische lijst van ontvangen gedeelde oefeningen na autorisatie en filters | Collection | Nee | Alleen SharedToUserId = huidige gebruiker en IsDeleted = false; geen technische ID's tonen. |
| SCH-LLN-08-01-F10 | Kolom Ontvangen | Ontvangen | SharedAtDisplayDate | SharedExercises.SharedAtUtc | Datumweergave van ontvangstmoment | Date/time | Nee | UTC opslaan; lokaal tonen. |
| SCH-LLN-08-01-F11 | Kolom Gedeeld door | Gedeeld door | SharedByDisplayName | SharedExercises.SharedByUserId + Users | Naam van deler | String | Nee | Toon functionele naam, geen GUID of e-mailadres tenzij expliciet gewenst. |
| SCH-LLN-08-01-F12 | Kolom Niveau | Niveau | LevelSnapshotDisplayText | SharedExercises.LevelSnapshotText | Snapshot van niveau op moment van delen | String | Nee | Mag niet automatisch wijzigen door latere naamswijzigingen of migraties. |
| SCH-LLN-08-01-F13 | Kolom Categorie | Categorie | CategorySnapshotDisplayText | SharedExercises.CategorySnapshotText | Snapshot van categorie op moment van delen | String | Nee | Mag niet automatisch wijzigen door latere naamswijzigingen of migraties. |
| SCH-LLN-08-01-F14 | Kolom Subcategorie | Subcategorie | ExerciseSnapshotDisplayText | SharedExercises.ExerciseSnapshotText | Snapshot van oefening/subcategorie op moment van delen | String | Nee | Geen aparte subcategorietabel afleiden uit dit label; functioneel gaat het om de gedeelde oefeningcontext. |
| SCH-LLN-08-01-F15 | Kolom Status | Status | SharedExerciseStatus | SharedExercises.StartedAtUtc, SharedExercises.CompletedAtUtc, ExerciseRuns.IsCompleted, ExerciseRuns.CompletedAtUtc | Afgeleid statuslabel | Enum / string | Nee | Status wordt afgeleid; niet handmatig opgeslagen als vrije tekst. |
| SCH-LLN-08-01-F16 | Kolom Voortgang | Voortgang | SharedExerciseProgress | ExerciseRuns.CompletedQuestionCount, ExerciseRuns.TotalQuestions of actuele runprogressie | Afgeleide voortgang van eigen run ontvanger | String / composite | Nee | Bij niet gestart streepje of lege waarde; bij gestart <aantal afgerond> van <totaal>. |
| SCH-LLN-08-01-A01 | Actie geschiedenis | Geschiedenis | OpenSharedExerciseHistoryAction | ExerciseRuns met SharedExerciseId of andere administratieve verwijzing naar gedeelde oorsprong | Beschikbaarheid op basis van afgeronde runs | Action | Ja | Disabled met tooltip wanneer geen afgeronde runhistorie beschikbaar is. |
| SCH-LLN-08-01-A02 | Actie starten / hervatten / opnieuw maken | Start / Ga verder / Start opnieuw | StartSharedExerciseAction | SharedExercises, ExerciseRuns, bronrunpayload en moduleconfiguratie | Actieafleiding op basis van status | Action | Ja | Eerste start exacte gedeelde volgorde; hervatten opent bestaande run; herhalen na afronding genereert nieuwe random/gehusselde run. |
| SCH-LLN-08-01-A03 | Actie verwijderen | Verwijder gedeelde oefening | DeleteSharedExerciseAction | SharedExercises.IsDeleted, DeletedAtUtc, DeletedByUserId | User input na bevestiging | Action | Ja | Alleen eigen ontvangen shared-record soft deleten; afgeronde runs blijven bestaan. |
| SCH-LLN-08-01-F18 | Startmodal — volgorde | Volgorde | SharedExerciseOrderMode | Bronrunvolgorde uit SharedExercises.SourceExerciseRunId en vervolglogica voor nieuwe runs | Afgeleid / systeemkeuze | Enum | Beperkt | Eerste uitvoering is exact de bronvolgorde; herhaalruns na afronding worden gehusseld/random. |
| SCH-LLN-08-01-MOD02 | Verwijdermodal | Gedeelde oefening verwijderen | DeleteSharedExerciseModal | SharedExercises | Bevestiging vóór soft delete | Modal | Ja | Verwijderactie vereist expliciete bevestiging en mag historische runs niet verwijderen. |
9.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-08-01-01 | SRS-SHR-007 AC-SHR-007 | Het profielmenu-item Gedeelde oefeningen alleen tonen wanneer de ingelogde leerling minimaal één actieve, niet-verwijderde gedeelde oefening heeft ontvangen |
REQ-SCH-LLN-08-01-02 | SRS-SHR-007 AC-SHR-007 | In dit overzicht uitsluitend gedeelde oefeningen tonen waarvoor de ingelogde leerling de ontvanger is en waarvoor het shared-record niet uit het eigen overzicht is verwijderd |
REQ-SCH-LLN-08-01-03 | SRS-SHR-006 AC-SHR-006 | Alle zichtbare waarden in het overzicht dynamisch bepalen uit ontvangen gedeelde oefeningen, bijbehorende runstatussen en actieve filters; mockupwaarden geen hardcoded worden |
REQ-SCH-LLN-08-01-04 | SRS-RDM-006 SRS-RDM-002 SRS-RDM-001 SRS-SHR-006 AC-RDM-006 AC-RDM-002 AC-RDM-001 AC-SHR-006 | Samenvattingsaantallen tonen voor nieuw ontvangen, al gestarte en afgeronde gedeelde oefeningen binnen de zichtbare dataset van de leerling |
REQ-SCH-LLN-08-01-05 | SRS-SHR-001 AC-SHR-001 | Filteren ondersteunen op status, niveau, categorie en deler, waarbij filteropties alleen worden opgebouwd uit gedeelde oefeningen die voor de ingelogde leerling zichtbaar zijn |
REQ-SCH-LLN-08-01-06 | SRS-SHR-008 AC-SHR-008 | Per gedeelde oefening de snapshotwaarden van niveau, categorie en oefening tonen zoals die golden op het moment van delen |
REQ-SCH-LLN-08-01-07 | SRS-SHR-008 AC-SHR-008 | Het systeem mag snapshotwaarden van gedeelde oefeningen niet achteraf wijzigen op basis van latere hernoemingen, categoriemigraties of wijzigingen in de oorspronkelijke oefenconfiguratie |
REQ-SCH-LLN-08-01-08 | SRS-SHR-006 AC-SHR-006 | De status van een gedeelde oefening afleiden als Nieuw ontvangen, Al gestart of Afgerond op basis van het shared-record en de eigen run(s) van de ontvanger |
REQ-SCH-LLN-08-01-09 | SRS-SHR-006 AC-SHR-006 | Bij een nog niet gestarte gedeelde oefening de eerste run voor de ontvanger genereren in exact dezelfde vraagvolgorde als de bronrun waarin de oefening is gedeeld |
REQ-SCH-LLN-08-01-10 | SRS-SHR-006 AC-SHR-006 | Bij een al gestarte maar niet-afgeronde gedeelde oefening de bestaande run hervatten in plaats van een nieuwe run te genereren |
REQ-SCH-LLN-08-01-11 | SRS-SHR-006 AC-SHR-006 | Bij opnieuw maken na afronding dezelfde gedeelde inhoud gebruiken, maar een nieuwe eigen run voor de ontvanger genereren met gehusselde/random vraagvolgorde |
REQ-SCH-LLN-08-01-12 | SRS-SHR-006 AC-SHR-006 | Voorkomen dat starten, hervatten of opnieuw maken van een gedeelde oefening de oorspronkelijke bronrun of eerdere afgeronde runs overschrijft |
REQ-SCH-LLN-08-01-13 | SRS-NFR-AUD-001 SRS-SHR-006 AC-NFR-AUD-001 AC-SHR-006 | De geschiedenisactie alleen actief maken wanneer voor de gedeelde oefening minimaal één afgeronde runhistorie van de ontvanger beschikbaar is |
REQ-SCH-LLN-08-01-14 | SRS-NFR-AUD-001 SRS-SHR-006 AC-NFR-AUD-001 AC-SHR-006 | De geschiedenisactie disabled tonen met begrijpelijke tooltip of toelichting wanneer er nog geen afgeronde runhistorie beschikbaar is |
REQ-SCH-LLN-08-01-15 | SRS-SHR-007 AC-SHR-007 | Bij verwijderen van een gedeelde oefening eerst een bevestigingsmodal tonen |
REQ-SCH-LLN-08-01-16 | SRS-SHR-007 AC-SHR-007 | Verwijderen van een gedeelde oefening uitvoeren als verwijdering uit het eigen overzicht van de ontvanger, bijvoorbeeld via SharedExercises.IsDeleted, zonder afgeronde runs fysiek te verwijderen |
REQ-SCH-LLN-08-01-17 | SRS-SHR-007 AC-SHR-007 | Na verwijderen voorkomen dat de gedeelde oefening nog vanuit dit overzicht gestart, hervat of opnieuw gemaakt kan worden |
REQ-SCH-LLN-08-01-18 | SRS-SHR-007 AC-SHR-007 | Reeds afgeronde runs die uit een verwijderde gedeelde oefening zijn ontstaan beschikbaar houden via Geschiedenis alles |
REQ-SCH-LLN-08-01-19 | SRS-AUTH-004 SRS-SHR-006 AC-AUTH-004 AC-SHR-006 | Technische identifiers zoals GUID's, run-id's, shared-record-id's en module-id's niet zichtbaar tonen in de tabel, filters, modals of breadcrumb |
REQ-SCH-LLN-08-01-20 | SRS-AUTH-001 SRS-SHR-006 AC-AUTH-001 AC-SHR-006 | Directe URL-toegang server-side autoriseren zodat een leerling nooit gedeelde oefeningen van andere leerlingen kan zien of starten |
REQ-SCH-LLN-08-01-21 | SRS-SHR-001 AC-SHR-001 | Datum- en tijdwaarden uit UTC-bronnen lokaal en consistent tonen in de gebruikersinterface |
REQ-SCH-LLN-08-01-22 | SRS-SHR-006 AC-SHR-006 | Bij ontbrekende of niet meer laadbare technische module een begrijpelijke foutmelding tonen en voorkomen dat een nieuwe run half gegenereerd wordt |
9.7 Technische koppeling
Voor technische uitwerking zijn vooral relevant:
- 05 Autorisatie, policies en server-side contextcontrole voor server-side controle dat alleen eigen ontvangen gedeelde oefeningen zichtbaar en startbaar zijn.
- 10 Oefenruns, voortgang, resultaten, statistieken en PDF-brondata voor runs die ontstaan uit ontvangen gedeelde oefeningen en hun status.
- 12 Relatiebeheer, uitnodigingen en gedeelde oefeningen voor gedeelde-oefeningrecords, snapshots, verwijderen uit eigen overzicht en start-/hervatgedrag.
- 13 Berichten, systeemberichten, notificaties en privéberichten voor systeemberichten bij ontvangen gedeelde oefeningen.
- 17 Readmodels, tellers, badges, caching en materialisatie voor samenvattingen, statusfilters en voortgangsindicatoren voor gedeelde oefeningen.
- 24 Frontend, Blazor, routing, state en componentopbouw voor filterstate, acties, bevestigingsmodal en responsieve tabelopbouw.
- 25 Privacy, retentie, anonimisering en gegevensbescherming voor minimale zichtbaarheid van deler- en leerlinggegevens.