Skip to main content

UC-LLN-FP-001 — Leerling-frontpage bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-FP-001
NaamLeerling-frontpage bekijken
DomeinLeerling / Frontpage en niveaucontext
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, routeguard, autorisatielaag, database, frontpage-readmodel
RolcontextIngelogde gebruiker met rol Leerling en een geldige of te herstellen niveaucontext.
Betrokken schermenLeerling-frontpage, leerlingnavigatie, frontpageblokken, routeguard voor leerlingroutes.
Gerelateerde usecasesUC-LLN-FP-002 — Actieve niveaucontext toepassen; UC-LLN-FP-003 — Populaire categorieën en oefeningen tonen; UC-LLN-FP-004 — Recent geoefend tonen; UC-LLN-FP-005 — Verder-oefenenblok tonen; UC-LLN-TOEG-001 — Beschikbare categorieën bekijken; UC-GEN-ACC-002 — Inloggen en sessie verwerken; UC-GEN-NOT-001 — Systeemnotificatie tonen
Primaire entiteitenUsers, UserSettings, UserRoles, Roles, TeacherLevels, TeacherLevelCategories, Exercises, ExerciseRuns
Secundaire entiteiten / eventsFrontpage-readmodel, systeemnotificatiecontrole via UC-GEN-NOT-001
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een leerling na succesvolle account- en sessieverwerking de leerling-frontpage bekijkt. De frontpage is een overzichts- en oriëntatiepagina: zij toont compacte informatie en vervolgpunten, maar voert geen diep beheer uit en start geen oefening zonder aanvullende route- en toegangscontrole.

De leerling-frontpage wordt samengesteld op basis van de server-side sessiecontext, de actieve leerlingrol, de geldige niveaucontext, toegankelijke categorieën en oefenruns die voor de leerling relevant zijn. De pagina bevat onder meer categorienavigatie, populaire categorieën met oefeningen, recent geoefend, eventueel een verder-oefenenblok en compacte statistische samenvatting. Deze onderdelen zijn afgeleide weergaven op bestaande domeindata.

De frontpage zelf is geen bron van waarheid voor autorisatie. Directe routes, oude clientstate of browsercache mogen nooit bepalen welke categorieën, oefeningen of vervolgacties beschikbaar zijn. Na normaal laden van de frontpage mogen systeemnotificaties via de generieke systeemnotificatieflows worden gecontroleerd en getoond; deze usecase verwerkt die notificaties niet zelf.

3. Scope

Deze usecase omvat wel:

  • openen van de leerling-frontpage na geldige sessieverwerking
  • controleren dat de gebruiker een actieve leerlingcontext heeft
  • toepassen van een geldige niveaucontext
  • samenstellen van de zichtbare frontpageblokken als afgeleid readmodel
  • tonen van categorienavigatie en contextgerichte vervolgpunten
  • tonen van lege of beperkte toestanden wanneer er nog geen oefenactiviteit is
  • voorkomen dat systeemnotificaties het laden van de frontpage blokkeren

Deze usecase omvat niet:

  • instellen van een verplicht niveau; dat hoort bij UC-GEN-PROF-003
  • aanmaken of wijzigen van categorieën, oefeningen of niveaus
  • toekennen of intrekken van niveauautorisaties
  • starten, genereren of afronden van een oefening
  • uitwerken van resultaten, geschiedenis of PDF-export
  • uitwerken van systeemnotificaties; die lopen via UC-GEN-NOT-001 t/m UC-GEN-NOT-003
  • opslaan van een aparte frontpagecache of frontpagebronrecord

DRY-afbakening voor deze usecase: profielbeheer, docentbeheer, relatievorming, systeemnotificaties en oefenuitvoering blijven bij hun eigen usecases. Deze frontpageusecase gebruikt alleen de uitkomsten daarvan als input of vervolgcontext.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd.
PRE-002De gebruiker heeft de rol Leerling als actieve rolcontext.
PRE-003De backend kan de actuele account- en sessiecontext server-side bepalen.
PRE-004De relevante frontpage-, niveau- en oefendata zijn beschikbaar voor uitlezing.
PRE-005Routeguard en autorisatielaag vertrouwen niet op clientstate als autorisatiebron.
PRE-006Bestaande profiel- en accountflows zijn beschikbaar voor herstel van ontbrekende context.

5. Post-condities

IDResultaat
POST-001De leerling ziet alleen informatie die binnen de actuele server-side context zichtbaar mag zijn.
POST-002Er is geen nieuwe frontpage-, sessie- of cache-entiteit aangemaakt.
POST-003Ontbrekende of ongeldige context leidt niet tot misleidende frontpageweergave.
POST-004Vervolgacties blijven onderhevig aan eigen server-side toegangscontrole.
POST-005Er zijn geen rollen, relaties, autorisaties, oefeningen of oefenruns aangemaakt of gewijzigd.
POST-006Eventuele lege staten zijn veilig en verwijzen niet naar ongeautoriseerde inhoud.

6. Trigger

De usecase start wanneer een ingelogde leerling naar de leerling-frontpage navigeert of na login automatisch op de leerling-frontpage uitkomt.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingLeerling-frontpageOpent de leerlingomgeving.Frontend vraagt de frontpagecontext op.Geen clientstate als bron voor autorisatie.
2OefenHub frontendFrontpagecomponentStuurt een request voor de frontpageweergave.Backend ontvangt sessiecontext en optionele routecontext.UserId en rolcontext komen uit de server-side sessie.
3OefenHub backendRouteguard / autorisatielaagControleert actieve gebruiker en rol.Alleen een actieve leerlingcontext mag de leerling-frontpage laden.Leerlingrol mag niet met ouder/docent/beheerder gecombineerd zijn.
4OefenHub backendNiveaucontextresolverPast de actuele niveaucontext toe.Geldige context wordt gebruikt; ontbrekende context leidt naar bestaande profiel-/accountflow.UC-LLN-FP-002.
5OefenHub backendOefenaanbod-readmodelBepaalt beschikbare categorieën.Alleen toegankelijke categorieën worden opgenomen.UC-LLN-TOEG-001.
6OefenHub backendFrontpage readmodelBepaalt populaire categorieën en oefeningen.Blok wordt gevuld of veilig leeg gelaten.UC-LLN-FP-003.
7OefenHub backendFrontpage readmodelBepaalt recent geoefend.Maximaal drie recente afgeronde runs worden opgenomen.UC-LLN-FP-004.
8OefenHub backendFrontpage readmodelBepaalt of verder-oefenenblok relevant is.Blok wordt alleen opgenomen bij een hervatbare niet-afgeronde run.UC-LLN-FP-005.
9OefenHub backendFrontpage readmodelBepaalt compacte statistieksamenvatting.Aantallen worden afgeleid uit bestaande exercise-run-data.Geen aparte frontpagetabel.
10OefenHub frontendLeerling-frontpageRendert de samengestelde frontpage.Leerling ziet overzicht, context en vervolgpunten.Geen datamutatie.
11OefenHub frontendSysteemnotificatiecomponentStart na normaal laden de notificatiecontrole.Eventuele notificaties lopen via generieke notificatieusecases.Frontpage wordt niet geblokkeerd door notificaties.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013Gebruiker heeft geen actieve leerlingrolFrontpage wordt niet geladen; account-/contextafhandeling neemt over.Niet van toepassingGeen
ALT-0024Niveaucontext ontbreektSysteem leidt naar bestaande verplichte-niveauflow of onvolledige-accountflow.Niet van toepassingGeen
ALT-0035Geen categorieën beschikbaarFrontpage toont een veilige lege of beperkte staat.Componentmelding / lege staatGeen
ALT-0047Geen afgeronde runsRecent-geoefendblok wordt leeg gelaten of met neutrale toelichting getoond.Componentmelding / lege staatGeen
ALT-0058Geen hervatbare runVerder-oefenenblok wordt niet getoond.Niet van toepassingGeen
ALT-00610Verouderde clientcache bevat oude frontpage-informatieBackendresponse overschrijft clientweergave met actuele context.Niet van toepassingGeen

9. Business rules

IDRegel
BR-001De leerling-frontpage is een overzichts- en oriëntatiepagina en voert geen beheeracties uit.
BR-002Alle frontpageblokken worden afgeleid uit bestaande domeindata.
BR-003De frontpage mag geen aparte bron van autorisatie zijn.
BR-004Systeemnotificaties worden pas na normaal laden van de frontpage gecontroleerd.
BR-005Een directe frontendweergave mag geen categorie, oefening of run beschikbaar maken zonder server-side controle.
BR-006Lege of beperkte frontpagetoestanden zijn toegestaan wanneer de leerling nog geen toegankelijke inhoud of geschiedenis heeft.
BR-007Frontendweergave mag nooit zwaarder wegen dan server-side autorisatie.
BR-008Een frontpageblok mag geen persoonsgegevens of technische identifiers tonen die niet functioneel nodig zijn.
BR-009Een lege staat mag geen automatische domeinmutatie veroorzaken.
BR-010Alle teller- en samenvattingswaarden moeten eenduidig zijn afgeleid uit bronrecords en filters.

10. Datavalidatie

Veld / objectValidatie
SessiegebruikerMoet server-side bekend, actief en ingelogd zijn.
RolcontextMoet een actieve leerlingrol bevatten.
NiveaucontextMoet geldig zijn of naar bestaande herstel-/keuzeflow leiden.
FrontpageblokkenMogen alleen records tonen die binnen de actuele context zichtbaar zijn.
StatistiekwaardenMoeten afgeleid zijn uit exact gedefinieerde records en filters.
FrontpagecontextMoet per request opnieuw uit server-side context worden afgeleid.
ClientstateMag alleen ondersteunend zijn en nooit autorisatie bepalen.
Lege staatMoet functioneel neutraal zijn en geen verborgen of ongeautoriseerde data lekken.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
Gehele usecaseGeen domeinmutatieNiet van toepassingDe usecase leest bestaande bronrecords en stelt een transient readmodel samen; er wordt geen functioneel domeinevent vastgelegd.

12. Geen datamutaties

EntiteitReden
UsersDe frontpage wijzigt het account niet.
UserSettingsDe frontpage past geen niveaukeuze of voorkeuren aan.
ExerciseRunsDe frontpage start, hervat of rondt geen oefening af.
SystemMessagesFrontpageweergave maakt geen mailbox-systeemberichten aan.
FrontpagecacheEr wordt geen aparte persistente frontpagecache gemodelleerd.
UserRolesFrontpagecontext wijzigt geen roltoekenningen.
SystemNotificationsNotificaties worden in generieke notificatieusecases verwerkt.

13. State diagram

Niet van toepassing. Deze usecase wijzigt geen persistent statusobject. De weergegeven frontpage- of bloktoestand is afgeleid uit account-, niveau-, oefen- en rungegevens en vormt geen zelfstandige lifecycle.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Leerling-frontpage samenstellen

16.2 Context ontbreekt of is ongeldig

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingGehele usecaseDeze usecase gebruikt routeguard-, component- of lege-staatgedrag en introduceert geen popupregister-popup.

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

DoeldocumentAfleiding
Functioneel OntwerpFunctioneel Ontwerp beschrijft de leerling-frontpage, actieve niveaucontext, frontpageblokken, lege toestanden en zichtbare vervolgacties.
Technisch OntwerpTechnisch Ontwerp: rolflows, readmodels, tellers en badges en frontend-compositie beschrijft de technische afbakening, server-side brondata, autorisatie en UI-compositie voor deze usecase.
Software Requirements SpecificationSoftware Requirements Specification bevat centrale eisen en acceptatiecriteria voor contextcontrole, frontpageweergave, readmodels en veilige lege toestanden.
Database-informatieDatabase-informatie blijft bron voor onderliggende tabellen, readmodelbronnen en soft-link/snapshotregels; deze usecases introduceren geen eigen frontpagetabel.
OntwerpbronnenOntwerpbronnen bevatten aanvullende businessregels voor frontpageblokken, contextafleiding en zichtbare acties.

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-FP-001-001SRS-LRN-009
AC-LRN-009
De leerling-frontpage alleen tonen aan een ingelogde gebruiker met actieve leerlingcontext
REQ-UC-LLN-FP-001-002SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-LRN-009
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-LRN-009
De leerling-frontpage samenstellen uit bestaande domeindata en afgeleide readmodelwaarden
REQ-UC-LLN-FP-001-003SRS-AUTH-001
SRS-CAT-001
SRS-LRN-002
SRS-LRN-007
AC-AUTH-001
AC-CAT-001
AC-LRN-002
AC-LRN-007
Categorienavigatie, populaire categorieën, recent geoefend en verder-oefenencontext server-side begrenzen tot de actuele leerlingcontext
REQ-UC-LLN-FP-001-004SRS-AUTH-001
SRS-LRN-009
AC-AUTH-001
AC-LRN-009
De frontpage niet gebruiken als bron voor autorisatiebeslissingen
REQ-UC-LLN-FP-001-005SRS-LRN-009
SRS-POP-002
AC-LRN-009
AC-POP-002
Systeemnotificaties pas na normaal laden van de frontpage laten controleren via de generieke notificatieflows