Skip to main content

UC-GEN-TIC-015 — Melding doorzetten naar docent

1. Kerngegevens

VeldWaarde
Usecase-IDUC-GEN-TIC-015
NaamMelding doorzetten naar docent
DomeinMeldingen
Primaire actorBeheerder
Secundaire actor(en)Systeem, meldingenservice, berichtensysteem, privéberichtservice, database, melder, docent
RolcontextIngelogde gebruiker met actieve beheerdercontext
Betrokken schermenSCH-BEH-02-01 — Meldingenoverzicht beheerder; SCH-GEN-02 — Berichtenoverzicht; SCH-GEN-04 — Open bericht
Gerelateerde usecasesUC-GEN-TIC-008 — Beheerdersoverzicht meldingen bekijken; UC-GEN-TIC-009 — Melding openen als beheerder; UC-GEN-TIC-010 — Beheerder koppelen of ontkoppelen; UC-GEN-TIC-013 — Melding oplossen of sluiten; UC-GEN-MSG-001 — Berichtenoverzicht bekijken; UC-GEN-MSG-003 — Bericht openen; UC-GEN-MSG-004 — Bericht beantwoorden
Primaire entiteitenTickets, TicketClosures, TicketResolutionTypes, TicketForwardedToTeacher, PrivateMessageThreads, PrivateMessages, SystemMessages, TicketHistory
Secundaire entiteiten / eventsTicketAssignments, TicketDiscussionMessages, PrivateMessageThreadParticipants, Users, UserRelationships, TicketTechnicalSnapshots, TicketForwardedToTeacher, TicketResolvedOrClosedByAdmin, TicketStatusChanged, PrivateMessageCreated, SystemMessageCreated, TicketForwardToTeacherFailed
Gerelateerde popupsPOP-GEN-TIC-NOT-AVAILABLE, POP-GEN-TIC-FORWARD-TEACHER-CONFIRM, POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED, POP-GEN-TIC-FORWARD-TEACHER-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust have

2. Omschrijving

Een beheerder zet een melding door naar een docent wanneer tijdens de behandeling blijkt dat de oorzaak niet door beheer zelf moet worden opgelost, maar voortkomt uit inhoud, moduleconfiguratie, oefenconfiguratie of een andere onderwijsinhoudelijke inrichting waarvoor een docent verantwoordelijk is.

Doorzetten naar docent is een samengestelde beheeractie. De melding wordt formeel gesloten met afsluitstatus Module configuratie, de melder ontvangt een systeembericht met een verwijzing naar dezelfde melding en de geselecteerde docent ontvangt een normaal privébericht binnen het centrale privéberichtendomein. Dat privébericht wordt door het systeem namens de melder aangemaakt. In de berichtenweergave krijgt alleen dat specifieke bericht een afwijkende afzenderweergave in de vorm OefenHub Beheerder namens de gebruiker. Latere reguliere antwoorden in dezelfde thread nemen deze afwijkende afzenderweergave niet automatisch over.

De actie mag alleen worden uitgevoerd vanuit een actieve behandelcontext. Een melding met status New mag dus niet direct worden doorgezet naar een docent. De melding moet eerst via UC-GEN-TIC-010 aan minimaal één beheerder gekoppeld worden, waardoor de melding inhoudelijk als in behandeling geldt. Daarmee blijft de betekenis van Nieuw zuiver: nieuw betekent nog niet opgepakt door beheer.

Deze usecase beschrijft niet de gewone gebruikersflow voor het opstellen van privéberichten. Het systeem maakt het privébericht technisch wel aan binnen dezelfde onderliggende privéberichtstructuur, zodat de docent het bericht terugvindt in het gewone berichtenoverzicht en eventueel binnen dezelfde thread kan antwoorden volgens het privéberichtendomein.

3. Scope

Deze usecase beschrijft:

  • het openen van de sectie Doorzetten naar docent in de beheerderdetailweergave;
  • het bepalen van docenten die op basis van de meldingcontext selecteerbaar zijn;
  • het kiezen van één docent door de beheerder;
  • het tonen van een waarschuwing dat de beheerder bewust moet beoordelen of de gekozen docent verantwoordelijk is voor de relevante oefening of configuratie;
  • het invoeren van een begeleidende toelichting voor de docent;
  • het server-side controleren van beheerderautorisatie, tickettoestand, actieve behandelcontext, geselecteerde docent en berichtverwerking;
  • het bevestigen van de samengestelde actie;
  • het formeel sluiten van de melding met afsluitstatus Module configuratie;
  • het vastleggen van de sluitregistratie in TicketClosures;
  • het vastleggen van de doorzetactie in TicketForwardedToTeacher;
  • het aanmaken van een systeembericht voor de melder met EntityType = Ticket en EntityId = TicketId;
  • het aanmaken of gebruiken van een privéberichtthread tussen melder en docent;
  • het aanmaken van een privébericht namens de melder, zichtbaar voor de docent;
  • het bijwerken van participantgebonden ongelezenstatus voor de docent;
  • het vastleggen van compacte auditregels in TicketHistory;
  • transactionele foutafhandeling wanneer één onderdeel van de samengestelde actie mislukt.

Deze usecase beschrijft niet:

  • het aanmaken van de oorspronkelijke melding;
  • het gewone oplossen of sluiten door beheer zonder doorzetting;
  • het plaatsen van een regulier extern bericht aan de melder;
  • het plaatsen van een intern beheerbericht;
  • het beheer van docentrelaties of niveauautorisaties;
  • het bepalen van de feitelijke inhoudelijke schuldvraag buiten de expliciete keuze van de beheerder;
  • het afhandelen van het latere gesprek tussen docent en gebruiker;
  • het generiek opstellen van privéberichten door eindgebruikers;
  • het wijzigen van oefenconfiguraties door de docent;
  • het beheren van systeemberichtsjablonen, popupteksten of seeddata.

4. Pre-condities

IDVoorwaarde
PRE-001De beheerder is ingelogd.
PRE-002De beheerder heeft een actieve beheerdercontext.
PRE-003De meldingenfunctionaliteit is sitebreed beschikbaar.
PRE-004De beheerderdetailweergave van de melding is geopend of er is een geldige ticketreferentie beschikbaar.
PRE-005De melding bestaat als Tickets-record.
PRE-006De melding mag door de beheerder in beheercontext gelezen en behandeld worden.
PRE-007De melding is niet functioneel gesloten.
PRE-008De melding heeft een actieve behandelcontext via minimaal één actieve beheerderkoppeling.
PRE-009De melding heeft niet de zuivere onbehandelde status New.
PRE-010De afsluitstatus Module configuratie bestaat als geldige waarde in TicketResolutionTypes.
PRE-011Er is minimaal één docent selecteerbaar op basis van de melder, rolcontext, leerlingcontext of actieve relevante docentrelatie die uit de meldingcontext volgt.
PRE-012Het berichtensysteem kan systeemberichten met EntityType = Ticket aanmaken.
PRE-013Het privéberichtendomein kan een normale privéberichtthread en een privébericht namens de melder aanmaken.
PRE-014De beheerder kan een begeleidende toelichting invoeren.
PRE-015De applicatie kan sluiting, doorzetregistratie, systeembericht, privébericht en history transactioneel verwerken.

5. Post-condities

IDResultaat
POST-001De melding is formeel gesloten via een nieuw TicketClosures-record.
POST-002De sluitregistratie gebruikt afsluitstatus Module configuratie.
POST-003Tickets.Status is gewijzigd naar Closed.
POST-004De actuele sluitregistratie bevat een concrete heropen-deadline volgens de geldende meldingeninstelling.
POST-005De melding wordt voor de melder gebruikersgericht als Opgelost weergegeven zolang de heropentermijn actief is.
POST-006Er is een TicketForwardedToTeacher-record aangemaakt met de gekozen docent, uitvoerende beheerder, tijdstip, toelichting en verwijzingen naar de relevante ticket- en berichtcontext.
POST-007De melder heeft een systeembericht ontvangen met verwijzing naar de melding via EntityType = Ticket en EntityId = TicketId.
POST-008Er is een normale privéberichtthread aangemaakt of hergebruikt tussen melder en docent.
POST-009Er is een privébericht aangemaakt dat voor de docent zichtbaar is als afkomstig van OefenHub Beheerder namens de melder.
POST-010De afwijkende namens-weergave geldt alleen voor dit specifieke privébericht.
POST-011De docent heeft een participantgebonden ongelezenstatus of tellerupdate voor het nieuwe privébericht.
POST-012De melder krijgt geen los privébericht van zichzelf als ongelezen actie, maar wordt via het systeembericht over de doorzetting geïnformeerd.
POST-013In TicketHistory zijn compacte auditregels vastgelegd voor de formele sluiting en de doorzetting naar docent.
POST-014Vrije toelichtingen worden niet volledig in TicketHistory gedupliceerd.
POST-015Actieve beheerderkoppelingen blijven historisch zichtbaar en worden door deze flow niet automatisch ontkoppeld.
POST-016Bij annuleren of fout ontstaat geen gedeeltelijke sluiting, geen gedeeltelijk privébericht, geen gedeeltelijk systeembericht en geen gedeeltelijke doorzetregistratie.

6. Trigger

De usecase start wanneer een beheerder in de beheerderdetailweergave van een behandelbare melding de sectie Doorzetten naar docent gebruikt en de actie kiest om de melding te sluiten en door te zetten naar een docent.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderBeheerderdetailweergaveOpent een melding in beheercontext.Het systeem toont de beheerderdetailweergave met de sectie Doorzetten naar docent wanneer de tickettoestand dit toestaat.UC-GEN-TIC-009.
2SysteemAutorisatie- en ticketserviceControleert sessie, beheerdercontext en objecttoegang.Alleen bevoegde beheerders mogen de actie gebruiken.Server-side autorisatie.
3SysteemTicketserviceControleert dat de melding bestaat en niet functioneel gesloten is.De actie wordt alleen aangeboden of verwerkt voor behandelbare meldingen.Tickets.Status is niet Closed.
4SysteemTicketserviceControleert dat een actieve behandelcontext bestaat.Bij status New of ontbrekende actieve beheerderkoppeling is doorzetten niet toegestaan.Eerst UC-GEN-TIC-010.
5BeheerderSectie Doorzetten naar docentOpent de doorzetsectie.Het systeem toont de keuze voor een docent en een veld voor begeleidende toelichting.Schermcomponent in SCH-BEH-02-01.
6SysteemRelatie- en ticketscopeBepaalt selecteerbare docenten.Alleen docenten die functioneel bij de melder, leerlingcontext of relevante onderwijscontext horen worden getoond.Actieve relevante docentrelatie of afgeleide meldingcontext.
7SysteemSectie Doorzetten naar docentToont een waarschuwing bij de docentkeuze.De beheerder wordt erop gewezen dat de gekozen docent daadwerkelijk verantwoordelijk moet zijn voor de relevante oefening of configuratie en dat gedeelde oefencontext zorgvuldig beoordeeld moet worden.Functionele waarschuwing, tekst centraal in scherm/popupbron.
8BeheerderSectie Doorzetten naar docentSelecteert één docent.Het systeem registreert de selectie in de niet-opgeslagen formulierstate.TeacherUserId.
9BeheerderSectie Doorzetten naar docentVoert een begeleidende toelichting in.Het systeem valideert nog niet definitief, maar kan inline basisvalidatie tonen.Toelichting verplicht.
10BeheerderSectie Doorzetten naar docentKiest de actie Sluit en zet door naar docent.Het systeem voert server-side validatie uit op ticket, docent, toelichting, behandelcontext en berichtendomeinen.Geen opslag vóór geldige validatie.
11SysteemTicketserviceValideert dat afsluitstatus Module configuratie beschikbaar is.De afsluitstatus wordt voorbereid voor de sluitregistratie.TicketResolutionTypes.Code = ModuleConfiguration of equivalente technische code.
12SysteemBerichtensysteemValideert dat systeembericht aan melder kan worden aangemaakt.De systeemverwijzing naar de melding wordt voorbereid.EntityType = Ticket, EntityId = TicketId.
13SysteemPrivéberichtserviceValideert dat een privébericht naar de geselecteerde docent namens de melder kan worden aangemaakt.De thread- en berichtmutatie wordt voorbereid.Normale private message infrastructuur.
14SysteemPopupcomponentToont bevestigingspopup.De beheerder krijgt de mogelijkheid de samengestelde actie bewust te bevestigen of te annuleren.POP-GEN-TIC-FORWARD-TEACHER-CONFIRM.
15BeheerderPopupcomponentBevestigt de actie.Het systeem start de definitieve transactie.Vanaf hier is atomiciteit verplicht.
16SysteemDatabaseStart een transactie.Alle mutaties worden samen verwerkt.Transactionele consistentie.
17SysteemTicketserviceMaakt een formele sluitregistratie aan.Er ontstaat een TicketClosures-record met afsluitstatus Module configuratie, actor, tijdstip, toelichting of sluitcontext en heropen-deadline.TicketClosures.
18SysteemTicketserviceWijzigt de ticketstatus.Tickets.Status wordt Closed.Formele sluiting.
19SysteemTicketserviceLegt de doorzetting vast.Er ontstaat een TicketForwardedToTeacher-record met ticket, docent, beheerder, tijdstip, begeleidende toelichting en koppelingen naar berichtcontext.TicketForwardedToTeacher.
20SysteemBerichtensysteemMaakt een systeembericht voor de melder aan.De melder wordt geïnformeerd dat beheer de melding als docentconfiguratie heeft beoordeeld en kan doorklikken naar de melding.SystemMessages, EntityType = Ticket.
21SysteemPrivéberichtserviceZoekt of maakt een privéberichtthread tussen melder en docent.Bestaande thread wordt hergebruikt wanneer functioneel passend; anders ontstaat een nieuwe thread met deelnemers.PrivateMessageThreads, PrivateMessageThreadParticipants.
22SysteemPrivéberichtserviceMaakt het privébericht aan namens de melder.De docent ontvangt een normaal privébericht met technische namens-referentie naar de melder en uitvoerende beheerder.PrivateMessages.
23SysteemPrivéberichtserviceWerkt readstate/ongelezenstatus bij.Het bericht wordt voor de docent ongelezen of verhoogt diens teller. De melder krijgt geen eigen ongelezenactie voor dit namens-bericht.Participantgebonden status.
24SysteemHistoryserviceLegt compacte audit vast.Minimaal sluiting met Module configuratie en doorzetting naar docent worden auditbaar geregistreerd.TicketHistory.
25SysteemDatabaseCommit de transactie.Alle wijzigingen worden definitief opgeslagen.Atomiciteit.
26SysteemBeheerderdetailweergaveVerverst de melding.De melding wordt als gesloten getoond met doorzetinformatie en afsluitstatus Module configuratie.Beheerderweergave.
27DocentBerichtenoverzichtZiet het nieuwe privébericht.De docent kan het bericht openen via het reguliere berichtendomein.UC-GEN-MSG-001 en UC-GEN-MSG-003.
28MelderBerichtenoverzicht / meldingdetailZiet het systeembericht en de gesloten melding.De melder kan de melding openen en de oplossing/sluitcontext raadplegen.UC-GEN-TIC-003 en UC-GEN-MSG-003.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011-3De melding bestaat niet meer of kan niet veilig geladen worden.Het systeem toont een veilige niet-beschikbaarmelding.POP-GEN-TIC-NOT-AVAILABLEGeen.
ALT-0022De gebruiker heeft geen actieve beheerdercontext.Het systeem weigert de beheeractie.Generieke toegang-geweigerd-afhandeling.Geen.
ALT-0032De meldingenfunctionaliteit is uitgeschakeld.Het systeem blokkeert de beheeractie via generieke featureafhandeling.Generieke featuremelding.Geen.
ALT-0043De melding is al functioneel gesloten.Het systeem toont de doorzetactie niet of weigert verwerking server-side.POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED.Geen.
ALT-0054De melding heeft status New of heeft geen actieve beheerderkoppeling.Het systeem blokkeert doorzetten en verwijst functioneel naar eerst oppakken via beheerderkoppeling.POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED.Geen.
ALT-0066Er zijn geen selecteerbare docenten beschikbaar.Het systeem schakelt de definitieve actie uit of toont een niet-toegestaanmelding.POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED.Geen.
ALT-0078-10De beheerder kiest geen docent.Het systeem weigert de definitieve actie en toont veldvalidatie.Inline validatie.Geen.
ALT-0088-13De gekozen docent is niet langer actief of niet langer geldig binnen de meldingcontext.Het systeem herberekent de selectie server-side en blokkeert verwerking.POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED.Geen.
ALT-0099-10De begeleidende toelichting ontbreekt of bevat alleen whitespace.Het systeem weigert de definitieve actie en toont veldvalidatie.Inline validatie.Geen.
ALT-0109-10De begeleidende toelichting bevat onveilige of niet-toegestane inhoud.Het systeem sanitizet of weigert de invoer volgens centrale tekstregels.Inline validatie of veilige foutmelding.Geen bij weigeren; gesanitized opslag bij toegestane correctie.
ALT-01110-13De afsluitstatus Module configuratie is technisch niet beschikbaar.Het systeem blokkeert de actie omdat de formele sluitregistratie niet correct kan worden gemaakt.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen.
ALT-01212Het systeembericht aan de melder kan niet worden voorbereid.Het systeem blokkeert verwerking omdat de samengestelde actie niet volledig kan worden uitgevoerd.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen.
ALT-01313Het privébericht aan de docent kan niet worden voorbereid.Het systeem blokkeert verwerking omdat de docentcommunicatie onderdeel is van de samengestelde actie.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen.
ALT-01414De beheerder annuleert de bevestigingspopup.Het systeem sluit de popup en behoudt de actuele tickettoestand.Geen of popup sluit.Geen.
ALT-01517Het TicketClosures-record kan niet worden opgeslagen.Het systeem rolt de transactie terug.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen blijvende mutatie.
ALT-01618De ticketstatus kan niet naar Closed worden gezet.Het systeem rolt de transactie terug.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen blijvende mutatie.
ALT-01719De TicketForwardedToTeacher-registratie kan niet worden opgeslagen.Het systeem rolt de transactie terug.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen blijvende mutatie.
ALT-01820Het systeembericht aan de melder kan niet worden aangemaakt.Het systeem rolt de volledige transactie terug.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen blijvende mutatie.
ALT-01921-23De privéberichtthread, het privébericht of de ongelezenstatus kan niet worden opgeslagen.Het systeem rolt de volledige transactie terug.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen blijvende mutatie.
ALT-02024De historyregistratie kan niet worden aangemaakt.Het systeem rolt de volledige transactie terug, omdat audit verplicht is.POP-GEN-TIC-FORWARD-TEACHER-FAILED.Geen blijvende mutatie.
ALT-02110-25De melding is ondertussen door een andere beheerder gewijzigd of gesloten.Het systeem baseert zich op de actuele server-side status en blokkeert de actie wanneer de toestand niet meer geldig is.POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED of POP-GEN-TIC-NOT-AVAILABLE.Geen.
ALT-02215De beheerder klikt herhaald op bevestigen.Het systeem verwerkt maximaal één doorzetactie voor dezelfde actuele behandeltoestand.Geen popup of POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED.Maximaal één samengestelde doorzetmutatie.
ALT-02326De beheerderdetailweergave kan na succesvolle verwerking niet direct verversen.De brondata blijft correct opgeslagen en wordt bij opnieuw laden zichtbaar.Generieke niet-technische foutmelding of geen popup.Mutatie blijft staan.

9. Business rules

IDRegel
BR-001Alleen gebruikers met actieve beheerdercontext mogen een melding doorzetten naar een docent.
BR-002Doorzetten naar docent is alleen toegestaan voor meldingen die nog niet functioneel gesloten zijn.
BR-003Doorzetten naar docent vereist een actieve behandelcontext met minimaal één actieve beheerderkoppeling.
BR-004Een melding met status New mag niet rechtstreeks naar een docent worden doorgezet.
BR-005De beheerder moet eerst beoordelen dat de oorzaak ligt in inhoud, moduleconfiguratie, oefenconfiguratie of docentgebonden inrichting.
BR-006De beheerder moet precies één docent kiezen uit de server-side geldige docentselectie.
BR-007Selecteerbare docenten worden server-side bepaald op basis van de melder, rolcontext, leerlingcontext en actieve relevante docentrelaties die uit de meldingcontext volgen.
BR-008De beheerder moet een begeleidende toelichting voor de docent invoeren.
BR-009De actie moet expliciet bevestigd worden voordat mutaties worden opgeslagen.
BR-010Doorzetten naar docent sluit de melding formeel.
BR-011De formele sluiting gebruikt afsluitstatus Module configuratie.
BR-012Doorzetten naar docent zet Tickets.Status naar Closed.
BR-013Doorzetten naar docent maakt een TicketForwardedToTeacher-record aan.
BR-014De melder ontvangt een systeembericht met verwijzing naar dezelfde melding.
BR-015Het systeembericht gebruikt EntityType = Ticket en EntityId = TicketId.
BR-016De docent ontvangt een normaal privébericht binnen het centrale privéberichtendomein.
BR-017Het privébericht wordt namens de melder aangemaakt en toont voor dit specifieke bericht de afwijkende afzenderweergave OefenHub Beheerder namens de gebruiker.
BR-018De namens-weergave geldt alleen voor het door het systeem aangemaakte doorzetbericht en niet automatisch voor latere reguliere antwoorden in dezelfde thread.
BR-019Doorzetten naar docent maakt geen apart nieuw berichttype aan.
BR-020Doorzetten naar docent gebruikt geen losse database-URL als verwijzing voor het systeembericht.
BR-021De docent krijgt participantgebonden ongelezenstatus voor het nieuw ontvangen privébericht.
BR-022De melder krijgt geen ongelezen privéberichtactie voor het namens hem of haar aangemaakte bericht; de melder wordt via systeembericht geïnformeerd.
BR-023De doorzetactie wordt auditbaar vastgelegd in TicketHistory.
BR-024Vrije toelichtingstekst hoort in de formele doorzet- of berichtcontext en wordt niet volledig als vrije tekst in TicketHistory gedupliceerd.
BR-025Actieve beheerderkoppelingen worden door doorzetten naar docent niet automatisch ontkoppeld.
BR-026Doorzetten naar docent mag geen nieuwe melding aanmaken.
BR-027Doorzetten naar docent mag geen TicketReopenRequests aanmaken.
BR-028De samengestelde actie moet transactioneel zijn; sluiting, doorzetregistratie, systeembericht, privébericht en history mogen niet gedeeltelijk ontstaan.

10. Datavalidatie

Veld / objectValidatie
TicketId / ticketreferentieVerplicht, geldig formaat en bestaand Tickets-record.
Actieve gebruikerMoet ingelogd zijn en actieve beheerdercontext hebben.
Featurestatus meldingenMeldingenfunctionaliteit moet beschikbaar zijn.
Beschikbaarheid meldingDe melding moet in beheercontext veilig geopend en behandeld kunnen worden.
Tickets.StatusMag niet Closed zijn en mag niet onbehandeld New blijven voor deze actie.
Actieve beheerderkoppelingMinimaal één actieve TicketAssignments-koppeling moet bestaan.
ResolutionTypeIdMoet verwijzen naar de geldige afsluitstatus Module configuratie.
Selecteerbare docentenlijstWordt server-side opgebouwd op basis van de relevante melding- en relatiecontext.
TeacherUserIdVerplicht, bestaand actief gebruikersaccount met docentrol en geldig binnen de doorzetcontext.
Begeleidende toelichtingVerplicht, niet leeg, niet alleen whitespace en begrensd volgens de geldende maximale tekstlengte.
ToelichtingstekstAlleen toegestane veilige tekst/opmaak is toegestaan; invoer wordt server-side gesanitized en veilig geëncodeerd.
SystemMessages.EntityTypeMoet Ticket zijn voor het systeembericht aan de melder.
SystemMessages.EntityIdMoet het concrete TicketId bevatten.
PrivéberichtthreadMoet bestaan of aangemaakt kunnen worden tussen melder en geselecteerde docent.
Namens-referentieHet privébericht moet technisch kunnen verwijzen naar de melder namens wie het bericht is aangemaakt en naar de beheerder die de actie uitvoerde.
Readstate docentHet nieuwe privébericht moet voor de docent als ongelezen kunnen worden geregistreerd.
Actor bij mutatieDe uitvoerende beheerder wordt vastgelegd bij sluiting, doorzetregistratie en history.
TijdstippenWorden server-side in UTC vastgelegd.
Transactionele verwerkingSluitregistratie, statuswijziging, doorzetregistratie, systeembericht, privébericht en history moeten consistent samen verwerkt worden.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
17CreateTicketClosuresFormele sluitregistratie met TicketId, ResolutionTypeId = ModuleConfiguration, uitvoerende beheerder, tijdstip, toelichting/sluitcontext en ReopenDeadlineUtc.
17EventTicketResolvedOrClosedByAdminDomeinevent of afgeleide eventregistratie voor formele sluiting door beheer via doorzetten.
18UpdateTicketsStatus wordt gewijzigd naar Closed; laatste wijzigingsmetadata wordt bijgewerkt.
18EventTicketStatusChangedStatusovergang naar Closed wordt geregistreerd.
19CreateTicketForwardedToTeacherDoorzetregistratie met ticket, gekozen docent, uitvoerende beheerder, tijdstip, toelichting en relevante berichtverwijzingen.
19EventTicketForwardedToTeacherDomeinevent of afgeleide eventregistratie voor doorzetten naar docent.
20CreateSystemMessagesSysteembericht voor de melder met verwijzing naar de melding via EntityType = Ticket en EntityId = TicketId.
20EventSystemMessageCreatedEvent of afgeleide registratie voor melding aan melder.
21Create/ReadPrivateMessageThreadsBestaande thread tussen melder en docent wordt hergebruikt of nieuwe thread wordt aangemaakt.
21Create/UpdatePrivateMessageThreadParticipantsDeelnemers voor melder en docent worden vastgelegd of geactiveerd voor de thread.
22CreatePrivateMessagesPrivébericht aan docent wordt aangemaakt met namens-referentie naar de melder en uitvoerende beheerder.
22EventPrivateMessageCreatedEvent of afgeleide registratie voor het aangemaakte privébericht.
23UpdatePrivateMessageThreadParticipants / readstateOngelezenstatus of laatste gelezen positie van de docent wordt bijgewerkt zodat het bericht als nieuw zichtbaar is.
24CreateTicketHistoryCompacte auditregel voor formele sluiting met Module configuratie.
24CreateTicketHistoryCompacte auditregel voor doorzetten naar de gekozen docent.
24EventTicketHistoryRecordedEvent of afgeleide registratie voor verplichte history.
ALT-015 t/m ALT-020EventTicketForwardToTeacherFailedAlleen wanneer fout- of technische events worden geregistreerd.

12. Geen datamutaties

EntiteitReden
TicketReopenRequestsDoorzetten naar docent is een sluit- en doorzetflow, geen heropenflow.
TicketAssignmentsActieve beheerderkoppelingen blijven ongewijzigd; deze flow ontkoppelt geen beheerders.
TicketTechnicalSnapshotsDe technische momentopname van het moment van melden wordt alleen gelezen.
TicketDiscussionMessagesDe begeleidende toelichting wordt niet als regulier ticketdiscussiebericht gedupliceerd.
TicketResolutionTypesDe afsluitstatus Module configuratie wordt alleen gelezen en niet beheerd.
UserRelationshipsDocentrelaties worden alleen gebruikt om geldige selectie te bepalen; deze usecase maakt of wijzigt geen relaties.
LevelAuthorizationsDoorzetten naar docent wijzigt geen leerlingautorisaties.
ExerciseRunsDe meldingafhandeling wijzigt geen oefenruns of resultaten.
ExerciseModules / ExercisesDe docent kan later inhoud of configuratie beoordelen, maar deze usecase wijzigt geen oefenmodule of oefening.
Nieuw Tickets-recordDoorzetten sluit de bestaande melding en maakt geen nieuwe melding aan.

13. State diagram — doorzetten naar docent

14. Decision flow — melding doorzetten naar docent

15. Data lifecycle diagram — doorzetten naar docent

16. Sequence diagrammen

16.1 Melding sluiten en doorzetten naar docent

16.2 Doorzetten wordt geblokkeerd bij status Nieuw

16.3 Transactionele fout bij privébericht aan docent

17. Popupverwijzingen

PopupKeyMomentVariantDoel
POP-GEN-TIC-NOT-AVAILABLEWanneer de melding niet bestaat, niet beschikbaar is of niet geopend mag worden.InfoOnlyVoorkomen dat een beheerder handelt op een ontbrekende of ontoegankelijke melding.
POP-GEN-TIC-FORWARD-TEACHER-CONFIRMVlak vóór definitief sluiten en doorzetten naar docent.ConfirmBevestigen dat de beheerder de melding formeel sluit, afsluitstatus Module configuratie gebruikt en een privébericht namens de melder aan de docent laat sturen.
POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWEDWanneer doorzetten niet toegestaan is, bijvoorbeeld bij status Nieuw, ontbrekende behandelcontext, gesloten melding, ontbrekende docent of ongeldige docentselectie.InfoOnlyUitleggen dat de doorzetactie niet kan worden uitgevoerd.
POP-GEN-TIC-FORWARD-TEACHER-FAILEDWanneer sluiting, doorzetregistratie, systeembericht, privébericht of history transactioneel mislukt.InfoOnlyVeilige foutmelding tonen zonder technische details.

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

DoeldocumentAfleiding
Functioneel OntwerpBeschrijft doorzetten naar docent als samengestelde beheeractie vanuit de sectie Doorzetten naar docent op de beheerderdetailweergave.
Functioneel OntwerpBeschrijft dat doorzetten naar docent alleen mag vanuit een actieve behandelcontext en dus niet rechtstreeks vanuit status Nieuw.
Functioneel OntwerpBeschrijft dat de beheerder een docent kiest uit een server-side bepaalde geldige docentselectie.
Functioneel OntwerpBeschrijft dat de beheerder een begeleidende toelichting invoert en bewust bevestigt dat de gekozen docent verantwoordelijk kan zijn voor de relevante oefening of configuratie.
Functioneel OntwerpBeschrijft dat de melding formeel wordt gesloten met afsluitstatus Module configuratie en dat de melder een systeembericht ontvangt.
Functioneel OntwerpBeschrijft dat de docent een regulier privébericht ontvangt dat namens de melder door OefenHub Beheerder is geplaatst.
Technisch OntwerpTechnisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijft de transactionele verwerking uit voor TicketClosures, Tickets.Status, TicketForwardedToTeacher, SystemMessages, PrivateMessageThreads, PrivateMessages, readstate en TicketHistory.
Technisch OntwerpTechnisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijf hoe het privébericht namens de melder technisch wordt opgeslagen zonder apart berichttype en met afwijkende afzenderweergave alleen voor dat bericht.
Technisch OntwerpTechnisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijf hoe selecteerbare docenten server-side uit melder-, leerling-, relatie- en ticketcontext worden afgeleid.
Technisch OntwerpTechnisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijf dat systeemberichten naar tickets via EntityType = Ticket en EntityId = TicketId verwijzen.
Software Requirements SpecificationBeschrijft requirements voor actieve behandelcontext, geldige docentselectie, verplichte toelichting, bevestiging, formele sluiting, systeembericht, privébericht namens melder, audit en transactionele consistentie.
Database-informatieControleer dat TicketForwardedToTeacher voldoende verwijzingen kan vastleggen naar ticket, docent, beheerder, toelichting, sluiting en aangemaakt privébericht.
Database-informatieControleer dat PrivateMessages of de bijbehorende metadata de namens-weergave kan ondersteunen zonder apart berichttype.
PopupregisterNeem POP-GEN-TIC-FORWARD-TEACHER-CONFIRM, POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED en POP-GEN-TIC-FORWARD-TEACHER-FAILED op; hergebruik POP-GEN-TIC-NOT-AVAILABLE.
SysteemberichtenbeheerNeem een systeemberichtsjabloon op voor de melder bij doorzetten naar docent met verwijzing naar de melding.

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-GEN-TIC-015-001SRS-TIC-003
SRS-TCH-001
SRS-ADM-001
AC-TIC-003
AC-TCH-001
AC-ADM-001
Alleen gebruikers met actieve beheerdercontext toestaan om een melding naar een docent door te zetten
REQ-UC-GEN-TIC-015-002SRS-AUTH-001
SRS-TIC-003
SRS-ADM-002
SRS-ADM-001
AC-AUTH-001
AC-TIC-003
AC-ADM-002
AC-ADM-001
Vóór verwerking server-side controleren of de melding bestaat en door de beheerder behandeld mag worden
REQ-UC-GEN-TIC-015-003SRS-TIC-002
AC-TIC-002
Voorkomen dat een functioneel gesloten melding via deze flow opnieuw wordt doorgezet
REQ-UC-GEN-TIC-015-004SRS-TIC-002
SRS-TCH-001
AC-TIC-002
AC-TCH-001
Voorkomen dat een melding met status Nieuw rechtstreeks naar een docent wordt doorgezet
REQ-UC-GEN-TIC-015-005SRS-TIC-003
SRS-TCH-001
SRS-ADM-001
AC-TIC-003
AC-TCH-001
AC-ADM-001
Doorzetten naar docent alleen toestaan wanneer minimaal één actieve beheerderkoppeling bestaat
REQ-UC-GEN-TIC-015-006SRS-AUTH-001
SRS-REL-001
SRS-TIC-002
SRS-LRN-009
SRS-TCH-001
AC-AUTH-001
AC-REL-001
AC-TIC-002
AC-LRN-009
AC-TCH-001
Selecteerbare docenten server-side bepalen op basis van de relevante melder-, leerling-, relatie- en ticketcontext
REQ-UC-GEN-TIC-015-007SRS-AUTH-004
SRS-TIC-002
SRS-TCH-001
AC-AUTH-004
AC-TIC-002
AC-TCH-001
Vereisen dat precies één geldige docent wordt geselecteerd
REQ-UC-GEN-TIC-015-008SRS-TIC-002
SRS-TCH-001
AC-TIC-002
AC-TCH-001
Voorkomen dat een niet-actieve, niet-docent of niet-relevante gebruiker als doorzetdocent wordt gekozen
REQ-UC-GEN-TIC-015-009SRS-TIC-002
SRS-TCH-001
AC-TIC-002
AC-TCH-001
Een begeleidende toelichting verplicht stellen bij doorzetten naar docent
REQ-UC-GEN-TIC-015-010SRS-AUTH-001
SRS-TIC-002
SRS-NFR-SEC-001
AC-AUTH-001
AC-TIC-002
AC-NFR-SEC-001
De begeleidende toelichting server-side valideren, sanitizen en veilig renderen
REQ-UC-GEN-TIC-015-011SRS-TIC-002
SRS-POP-001
AC-TIC-002
AC-POP-001
Vlak vóór definitieve verwerking een bevestigingspopup tonen
REQ-UC-GEN-TIC-015-012SRS-TIC-007
SRS-TCH-001
AC-TIC-007
AC-TCH-001
De melding formeel sluiten wanneer zij naar een docent wordt doorgezet
REQ-UC-GEN-TIC-015-013SRS-TIC-007
SRS-MOD-003
AC-TIC-007
AC-MOD-003
Voor deze sluiting afsluitstatus Module configuratie gebruiken
REQ-UC-GEN-TIC-015-014SRS-TIC-001
AC-TIC-001
Een TicketClosures-record aanmaken met actor, tijdstip, afsluitstatus, sluitcontext en heropen-deadline
REQ-UC-GEN-TIC-015-015SRS-TIC-002
AC-TIC-002
Tickets.Status naar Closed wijzigen bij succesvolle doorzetting
REQ-UC-GEN-TIC-015-016SRS-TIC-004
AC-TIC-004
De melder de melding gebruikersgericht als Opgelost tonen zolang de heropentermijn actief is
REQ-UC-GEN-TIC-015-017SRS-TIC-001
AC-TIC-001
Een TicketForwardedToTeacher-record aanmaken bij succesvolle doorzetting
REQ-UC-GEN-TIC-015-018SRS-AUTH-004
SRS-TIC-003
SRS-TCH-001
SRS-ADM-001
SRS-NFR-AUD-001
AC-AUTH-004
AC-TIC-003
AC-TCH-001
AC-ADM-001
AC-NFR-AUD-001
In TicketForwardedToTeacher minimaal ticket, geselecteerde docent, uitvoerende beheerder, tijdstip en toelichting vastleggen
REQ-UC-GEN-TIC-015-019SRS-MSG-001
SRS-TIC-002
SRS-TCH-001
AC-MSG-001
AC-TIC-002
AC-TCH-001
De melder een systeembericht sturen wanneer een melding naar een docent wordt doorgezet
REQ-UC-GEN-TIC-015-020SRS-MSG-001
SRS-TIC-002
AC-MSG-001
AC-TIC-002
Dit systeembericht koppelen met EntityType = Ticket en EntityId = TicketId
REQ-UC-GEN-TIC-015-021SRS-MSG-001
SRS-TIC-001
SRS-TCH-001
AC-MSG-001
AC-TIC-001
AC-TCH-001
Een normale privéberichtthread tussen melder en docent aanmaken of hergebruiken
REQ-UC-GEN-TIC-015-022SRS-AUTH-004
SRS-MSG-001
SRS-TIC-001
SRS-TCH-001
AC-AUTH-004
AC-MSG-001
AC-TIC-001
AC-TCH-001
Een privébericht aan de geselecteerde docent aanmaken namens de melder
REQ-UC-GEN-TIC-015-023SRS-MSG-001
SRS-TIC-002
SRS-NFR-AUD-001
AC-MSG-001
AC-TIC-002
AC-NFR-AUD-001
Voor dit privébericht technisch kunnen vastleggen namens welke gebruiker het bericht is verzonden
REQ-UC-GEN-TIC-015-024SRS-MSG-001
SRS-TIC-003
SRS-ADM-001
SRS-NFR-AUD-001
AC-MSG-001
AC-TIC-003
AC-ADM-001
AC-NFR-AUD-001
Voor dit privébericht technisch kunnen vastleggen welke beheerder de namens-verzending heeft uitgevoerd
REQ-UC-GEN-TIC-015-025SRS-MSG-001
SRS-TIC-003
SRS-ADM-001
AC-MSG-001
AC-TIC-003
AC-ADM-001
Dit specifieke privébericht in de berichtenweergave tonen als afkomstig van OefenHub Beheerder namens de melder
REQ-UC-GEN-TIC-015-026SRS-MSG-001
SRS-TIC-002
SRS-LRN-003
AC-MSG-001
AC-TIC-002
AC-LRN-003
De namens-weergave niet automatisch toepassen op latere reguliere antwoorden binnen dezelfde thread
REQ-UC-GEN-TIC-015-027SRS-MSG-006
SRS-TIC-002
SRS-TCH-001
AC-MSG-006
AC-TIC-002
AC-TCH-001
Het aangemaakte privébericht voor de docent als ongelezen beschikbaar maken
REQ-UC-GEN-TIC-015-028SRS-MSG-006
SRS-TIC-003
AC-MSG-006
AC-TIC-003
Het namens de melder aangemaakte bericht niet als eigen ongelezen actie voor de melder behandelen
REQ-UC-GEN-TIC-015-029SRS-TIC-002
SRS-TCH-001
SRS-NFR-AUD-001
AC-TIC-002
AC-TCH-001
AC-NFR-AUD-001
Doorzetten naar docent auditbaar vastleggen in TicketHistory
REQ-UC-GEN-TIC-015-030SRS-TIC-007
SRS-MOD-003
SRS-NFR-AUD-001
AC-TIC-007
AC-MOD-003
AC-NFR-AUD-001
De formele sluiting met afsluitstatus Module configuratie auditbaar vastleggen
REQ-UC-GEN-TIC-015-031SRS-TIC-002
SRS-NFR-AUD-001
AC-TIC-002
AC-NFR-AUD-001
Vrije toelichtingsteksten niet volledig in TicketHistory dupliceren
REQ-UC-GEN-TIC-015-032SRS-TIC-001
SRS-TCH-001
AC-TIC-001
AC-TCH-001
Bij doorzetten naar docent geen TicketReopenRequests aanmaken
REQ-UC-GEN-TIC-015-033SRS-TIC-001
SRS-TCH-001
AC-TIC-001
AC-TCH-001
Bij doorzetten naar docent geen nieuwe melding aanmaken
REQ-UC-GEN-TIC-015-034SRS-AUTH-001
SRS-REL-001
SRS-TIC-001
SRS-CAT-001
SRS-TCH-002
AC-AUTH-001
AC-REL-001
AC-TIC-001
AC-CAT-001
AC-TCH-002
Bij doorzetten naar docent geen docentrelatie of niveauautorisatie aanmaken of wijzigen
REQ-UC-GEN-TIC-015-035SRS-MSG-001
SRS-TIC-007
SRS-TCH-001
SRS-NFR-AUD-001
AC-MSG-001
AC-TIC-007
AC-TCH-001
AC-NFR-AUD-001
Doorzetten naar docent transactioneel uitvoeren met sluitregistratie, statuswijziging, doorzetregistratie, systeembericht, privébericht, readstate en history
REQ-UC-GEN-TIC-015-036SRS-MSG-001
SRS-TIC-007
SRS-SHR-001
SRS-NFR-AVL-001
AC-MSG-001
AC-TIC-007
AC-SHR-001
AC-NFR-AVL-001
Bij mislukte transactionele verwerking geen gedeeltelijke sluiting, gedeeltelijke doorzetregistratie of gedeeltelijke berichtverwerking zichtbaar maken
REQ-UC-GEN-TIC-015-037SRS-TIC-002
AC-TIC-002
Bij niet-beschikbare melding POP-GEN-TIC-NOT-AVAILABLE gebruiken
REQ-UC-GEN-TIC-015-038SRS-TIC-002
AC-TIC-002
Bij niet-toegestane doorzetting POP-GEN-TIC-FORWARD-TEACHER-NOT-ALLOWED gebruiken
REQ-UC-GEN-TIC-015-039SRS-TIC-002
AC-TIC-002
Vlak vóór definitieve doorzetting POP-GEN-TIC-FORWARD-TEACHER-CONFIRM gebruiken
REQ-UC-GEN-TIC-015-040SRS-TIC-002
AC-TIC-002
Bij technische of transactionele fout POP-GEN-TIC-FORWARD-TEACHER-FAILED gebruiken