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