Skip to main content

UC-LLN-DEL-002 — Ontvangen gedeelde oefeningen bekijken

1. Kerngegevens​

VeldWaarde
Usecase-IDUC-LLN-DEL-002
NaamOntvangen gedeelde oefeningen bekijken
DomeinLeerling
SubdomeinGedeelde oefeningen
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, autorisatielaag, database
RolcontextIngelogde gebruiker met actieve leerlingrolcontext.
Betrokken schermenOntvangen gedeelde oefeningen; berichtenoverzicht als mogelijke ingang; leerlingnavigatie.
Gerelateerde usecasesUC-LLN-DEL-001; UC-LLN-DEL-003; UC-LLN-DEL-004; UC-LLN-DEL-005; UC-GEN-MSG-003
Primaire entiteitenSharedExercises, Users, ExerciseRuns
Secundaire entiteiten / eventsSystemMessages, ExerciseModules, snapshotvelden, afgeleide overzichtsstatus
Gerelateerde popupsPOP-LLN-DEL-SHARED-NOT-AVAILABLE
PopupregisterCentrale bron; deze usecase verwijst uitsluitend naar PopupKey.
MoSCoWMust

2. Omschrijving​

Deze usecase beschrijft hoe een leerling het eigen overzicht met ontvangen gedeelde oefeningen bekijkt. Een ontvangen gedeelde oefening is een administratief record dat door een deelactie van een andere leerling is ontstaan. Alleen bekijken maakt geen nieuwe ExerciseRun aan.

Het overzicht wordt server-side gefilterd op de ingelogde leerling als ontvanger. Systeemberichten kunnen naar dit overzicht of naar een specifiek ontvangen item verwijzen, maar de mailbox is niet de bron van waarheid voor het gedeelde-oefeningenrecord.

3. Scope​

3.1 Binnen scope​

  • Tonen van ontvangen gedeelde oefeningen voor de ingelogde leerling.
  • Uitsluiten van items die door de ontvanger uit het overzicht zijn verwijderd.
  • Tonen van historische snapshotgegevens.
  • Tonen van afgeleide status en beschikbare vervolgacties.
  • Veilig afhandelen van niet-beschikbare of technisch niet-startbare gedeelde inhoud.

3.2 Buiten scope​

  • Delen van een oefening door de afzender.
  • Starten of opnieuw maken van een gedeelde oefening.
  • Verwijderen uit het ontvangen overzicht.
  • Vriendschap vormen of beëindigen.
  • Vraagbeantwoording, resultaatdetail, statistieken en PDF-export.
  • Mailboxleesstatus verwerken buiten de generieke berichtenusecase.

4. Pre-condities​

IDVoorwaarde
PRE-001De gebruiker is ingelogd met een actieve leerlingrolcontext.
PRE-002De OefenHub-sessiecontext is server-side geldig opgebouwd.
PRE-003Het systeem kan het interne Users.Id van de leerling bepalen.
PRE-004De gedeelde-oefeningenfunctionaliteit is beschikbaar voor de leerlingomgeving.
PRE-005Routeparameters of browserstate bepalen niet welke leerlingdata wordt gelezen.

5. Post-condities​

IDResultaat
POST-001De leerling ziet uitsluitend eigen ontvangen gedeelde oefeningen.
POST-002Alleen niet-verwijderde ontvangen items zijn zichtbaar in het overzicht.
POST-003Door bekijken ontstaat geen nieuwe ExerciseRun.
POST-004De bronrun van de afzender blijft ongewijzigd.
POST-005Relaties, uitnodigingen, profielgegevens en autorisaties blijven ongewijzigd.

6. Trigger​

De leerling opent het overzicht met ontvangen gedeelde oefeningen via de leerlingnavigatie of via een toegestane verwijzing vanuit een systeembericht.

7. Normale processtroom​

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingOntvangen gedeelde oefeningenOpent het overzicht.Frontend vraagt overzichtsdata op.PRE-001.
2BackendAutorisatielaagControleert sessie en leerlingrol.Alleen leerlingcontext krijgt toegang.PRE-002.
3BackendDatabaseBepaalt ontvanger uit sessie.Route-user-id wordt genegeerd.BR-002.
4BackendDatabaseLaadt SharedExercises voor de ontvanger.Alleen eigen records worden geselecteerd.BR-003.
5BackendDatabaseFiltert ontvangerverwijdering uit.Verborgen items komen niet in het overzicht.BR-004.
6BackendReadmodelVerrijkt met snapshotcontext en afgeleide status.Historische labels en acties zijn beschikbaar.BR-005, BR-006.
7FrontendOverzichtToont lijst.Leerling ziet start-, opnieuw-maak- of verwijderactie waar toegestaan.Geen mutatie.

8. Alternatieve en exceptionele processtromen​

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Geen actieve leerlingcontext.Routeguard of backend blokkeert toegang.Generieke toegangafhandeling.Geen.
ALT-0024Geen ontvangen gedeelde oefeningen.Overzicht toont lege toestand.Geen popup vereist.Geen.
ALT-0035Alle ontvangen items zijn verwijderd uit overzicht.Overzicht toont lege toestand.Geen popup vereist.Geen.
ALT-0046Snapshotgegevens zijn gedeeltelijk incompleet.Systeem toont veilige fallback zonder technische identifiers.Inline melding indien nodig.Geen.
ALT-0056Onderliggende broninhoud is niet startbaar.Item blijft zichtbaar met veilige niet-beschikbaarstatus of uitgeschakelde startactie.POP-LLN-DEL-SHARED-NOT-AVAILABLE bij interactie.Geen.
ALT-0061Ingang vanuit systeembericht verwijst naar niet-toegankelijk item.Systeem toont niet-beschikbaarafhandeling zonder data te lekken.POP-LLN-DEL-SHARED-NOT-AVAILABLE.Geen domeinmutatie.
ALT-0074Databasequery faalt.Systeem toont veilige foutafhandeling.Generieke foutafhandeling.Geen.

9. Business rules​

IDRegel
BR-001Alleen een actieve leerlingrolcontext mag het overzicht openen.
BR-002De ontvanger wordt altijd bepaald uit de server-side sessiecontext.
BR-003Het overzicht toont uitsluitend gedeelde oefeningen voor de huidige leerling.
BR-004Ontvangerverwijderde items worden niet in het overzicht getoond.
BR-005Snapshotlabels worden niet herschreven door naamwijzigingen of categoriemigraties.
BR-006De zichtbare status is afgeleid uit het gedeelde record en gekoppelde ontvangerruns.
BR-007Alleen bekijken maakt geen ExerciseRun aan.
BR-008Een beëindigde vriendschap verwijdert een reeds ontvangen gedeelde oefening niet automatisch.
BR-009Systeemberichten zijn navigatie-ingang en geen gedeelde-oefeningenrecord.
BR-010Technische identifiers zoals GUIDs worden niet aan de leerling getoond.

10. Datavalidatie​

Veld / objectValidatie
SessiecontextBevat actief intern Users.Id en actieve leerlingrol.
OntvangerKomt overeen met de ingelogde leerling.
SharedExercisesRecords worden gefilterd op ontvanger en zichtbaarheid voor ontvanger.
RouteparameterMag niet bepalen welke leerlingdata wordt gelezen.
Snapshot niveauMag historisch zijn en hoeft niet overeen te komen met actuele niveaucontext.
Snapshot categorieMag historisch zijn en hoeft niet overeen te komen met actuele centrale categorie-indeling.
Snapshot oefeningMag historisch zijn en hoeft niet overeen te komen met actuele oefeningnaam.
BronrunverwijzingWordt niet als technische identifier getoond.

11. Datamutaties en events​

Niet van toepassing. Deze usecase leest ontvangen gedeelde oefeningen en afgeleide statusinformatie, maar schrijft geen gedeelde-oefeningenrecord, ExerciseRun, relatie, uitnodiging, profielgegeven of autorisatie.

12. Geen datamutaties​

EntiteitReden
SharedExercisesBekijken wijzigt het record niet.
ExerciseRunsDoor bekijken ontstaat geen ontvangerrun.
Bronrun van afzenderBlijft ongewijzigd.
UserRelationshipsRelaties worden alleen gelezen waar relevant voor context, niet gewijzigd.
RelationshipInvitationsUitnodigingen vallen buiten deze flow.
SystemMessagesLeesstatus of berichtopening valt onder het generieke berichtendomein.
UserSettingsVoorkeuren worden niet gewijzigd.

13. State diagram​

Niet van toepassing als zelfstandig statusmodel. De overzichtsstatus is een afgeleide waarde uit het gedeelde record, zichtbaarheid voor ontvanger en gekoppelde ontvangerruns.

14. Decision flow​

15. Data lifecycle diagram​

16. Sequence diagrammen​

16.1 Overzicht openen​

16.2 Ongeldige verwijzing vanuit systeembericht​

17. Popupverwijzingen​

PopupKeyMomentToepassing
POP-LLN-DEL-SHARED-NOT-AVAILABLEEen gedeeld item is niet beschikbaar of niet toegankelijk.Veilige uitleg zonder technische details of data van anderen te tonen.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification​

DoeldocumentAfleiding
Functioneel OntwerpGedeelde oefeningen beschrijft het ontvangen overzicht, lege staten en zichtbare acties.
Technisch OntwerpOefenruns, voortgang, resultaten, statistieken en PDF-brondata beschrijft ontvangen gedeelde oefeningen als practice-brondata.
Technisch OntwerpReadmodels, tellers, badges, caching en materialisatie beschrijft readmodels en tellers voor het ontvangen overzicht.
Technisch OntwerpFrontend Blazor, routing, state en componentopbouw beschrijft page composition, lege staten en contextveilige UI-state.
Software Requirements SpecificationBorgt de centrale requirements voor overzicht, filters, zichtbaarheid, lege staten en autorisatie.

19. SRS-trace​

Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.

Usecase-afleidingDektUsecasecontext
REQ-UC-LLN-DEL-002-001SRS-LRN-009
SRS-SHR-001
AC-LRN-009
AC-SHR-001
Ontvangen gedeelde oefeningen alleen tonen aan de bedoelde ontvanger
REQ-UC-LLN-DEL-002-002SRS-AUTH-001
SRS-LRN-009
SRS-SHR-001
AC-AUTH-001
AC-LRN-009
AC-SHR-001
De ontvanger bepalen uit server-side sessiecontext
REQ-UC-LLN-DEL-002-003SRS-RDM-001
SRS-RDM-006
SRS-LRN-009
SRS-SHR-001
AC-RDM-001
AC-RDM-006
AC-LRN-009
AC-SHR-001
Door overzichtsweergave geen ExerciseRun aanmaken
REQ-UC-LLN-DEL-002-004SRS-RDM-001
SRS-LRN-009
SRS-SHR-004
SRS-SHR-007
AC-RDM-001
AC-LRN-009
AC-SHR-004
AC-SHR-007
Door de ontvanger verwijderde items uitsluiten uit het overzicht
REQ-UC-LLN-DEL-002-005SRS-LRN-009
SRS-SHR-008
AC-LRN-009
AC-SHR-008
Historische snapshotgegevens kunnen tonen
REQ-UC-LLN-DEL-002-006SRS-AUTH-001
SRS-LRN-009
SRS-SHR-001
AC-AUTH-001
AC-LRN-009
AC-SHR-001
Vervolgacties server-side bepalen
REQ-UC-LLN-DEL-002-007SRS-LRN-009
SRS-SHR-001
SRS-NFR-SEC-001
AC-LRN-009
AC-SHR-001
AC-NFR-SEC-001
Niet-beschikbare gedeelde oefeningen veilig afhandelen
REQ-UC-LLN-DEL-002-008SRS-MSG-001
SRS-LRN-009
SRS-SHR-002
SRS-SHR-005
AC-MSG-001
AC-LRN-009
AC-SHR-002
AC-SHR-005
Systeemberichten behandelen als ingang en niet als bronrecord