UC-GEN-TIC-001 — Melding indienen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-GEN-TIC-001 |
| Naam | Melding indienen |
| Domein | Meldingen |
| Primaire actor | Ingelogde gebruiker |
| Secundaire actor(en) | Systeem, meldingenservice, berichtensysteem, technische-contextcomponent, beheerder als latere behandelaar |
| Rolcontext | Iedere ingelogde gebruiker die toegang heeft tot de normale applicatie en waarvoor de meldingenfunctionaliteit beschikbaar is |
| Betrokken schermen | SCH-GEN-06-01 — Meldingen |
| Gerelateerde usecases | UC-GEN-TIC-002 — Mijn meldingen bekijken; UC-GEN-TIC-003 — Melding details bekijken; UC-GEN-MSG-001 — Berichtenoverzicht bekijken; UC-GEN-MSG-003 — Bericht openen |
| Primaire entiteiten | Tickets, TicketTechnicalSnapshots, TicketHistory, SystemMessages |
| Secundaire entiteiten / events | Users, Roles, TicketStatuses, TicketCategories, SiteFeatureToggles, SystemMessageTemplates, TicketCreated, TicketTechnicalSnapshotCaptured, SystemMessageCreated, TicketCreateFailed |
| Gerelateerde popups | POP-GEN-TIC-CREATE, POP-GEN-TIC-CREATE-FAILED |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must have |
2. Omschrijving
De gebruiker dient vanuit de pagina Meldingen een nieuwe melding in wanneer er sprake is van een technisch probleem, inhoudelijke fout, wijzigingsverzoek of overige situatie waarbij opvolging binnen OefenHub nodig is. De actie Nieuwe melding maken opent een formuliermodal waarin de gebruiker een categorie kiest en minimaal onderwerp en beschrijving invult.
Tijdens het indienen verzamelt het systeem automatisch technische en contextuele gegevens, zoals de actuele pagina, browser- of platforminformatie, rolmomentopname en andere relevante technische metadata. Deze gegevens zijn niet als handmatige invoervelden zichtbaar voor de gebruiker, maar worden opgeslagen als snapshot voor beheerdersanalyse. De snapshot wordt later niet live herberekend.
Na succesvol indienen ontstaat een nieuw Tickets-record met status New, zonder gekoppelde beheerder. Daarnaast worden de technische snapshot, een compacte historyregel en een systeembericht voor de melder vastgelegd. Het systeembericht verwijst via EntityType = Ticket en EntityId = Ticket.Id naar de aangemaakte melding, zodat de gebruiker de melding later vanuit het berichtenoverzicht kan openen.
3. Scope
Deze usecase beschrijft:
- het openen van de nieuwe-meldingmodal vanuit de pagina Meldingen;
- het kiezen van een meldingcategorie;
- het invullen van onderwerp en beschrijving;
- het annuleren van de melding zonder opslag;
- het server-side valideren van sessie, featurestatus, categorie, onderwerp en beschrijving;
- het veilig verwerken van tekstinvoer;
- het automatisch vastleggen van technische en contextuele metadata als snapshot;
- het transactioneel aanmaken van een melding met status
New; - het vastleggen van een
TicketHistory-regel voor het aanmaken van de melding; - het aanmaken van een systeembericht voor de melder met verwijzing naar de nieuwe melding;
- het tonen of verversen van de nieuwe melding in de gebruikerscontext;
- foutpaden voor ontbrekende rechten, ongeldige invoer, uitgeschakelde meldingenfunctionaliteit en technische opslagfouten;
- popupverwijzingen naar centrale popupkeys.
Deze usecase beschrijft niet:
- het bekijken van de lijst met eigen meldingen;
- het openen van de meldingdetailpagina;
- het reageren op een bestaande melding;
- het sluiten van een eigen melding;
- het accepteren van een oplossing;
- het heropenen van een melding;
- beheerderflows zoals koppelen, intern discussiëren, extern bericht plaatsen, oplossen, sluiten of doorzetten naar docent;
- het doorzoeken of filteren van het beheerdersoverzicht;
- het toevoegen van bijlagen;
- automatische samenvoeging van dubbele meldingen;
- het beheren van meldingcategorieën, statussen, systeemberichtsjablonen of popupdefinities.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is ingelogd. |
| PRE-002 | De gebruiker heeft toegang tot de normale applicatiecontext waarin het profielmenu en de pagina Meldingen beschikbaar zijn. |
| PRE-003 | De meldingenfunctionaliteit is sitebreed beschikbaar. |
| PRE-004 | De gebruiker opent de pagina Meldingen vanuit het profielmenu of via een gelijkwaardige geldige route. |
| PRE-005 | Het systeem kan de actuele gebruiker, rolcontext en technische requestcontext bepalen. |
| PRE-006 | De toegestane meldingcategorieën zijn beschikbaar: Technisch probleem, Inhoudelijke fout, Wijziging aanvragen en Overig. |
| PRE-007 | De meldingenservice kan een uniek meldingsnummer of functionele referentie genereren. |
| PRE-008 | De berichtenservice kan een systeembericht met EntityType = Ticket aanmaken voor de melder. |
| PRE-009 | De opslag voor Tickets, TicketTechnicalSnapshots, TicketHistory en SystemMessages is beschikbaar binnen dezelfde functionele transactie of binnen een betrouwbaar transactioneel verwerkingspatroon. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | Bij annuleren wordt geen Tickets-record, snapshot, historyregel of systeembericht aangemaakt. |
| POST-002 | Bij succesvol indienen bestaat precies één nieuwe melding voor de ingelogde gebruiker. |
| POST-003 | De nieuwe melding heeft de processtatus New. |
| POST-004 | De nieuwe melding heeft geen actieve beheerderkoppeling. |
| POST-005 | De gekozen categorie, het onderwerp, de beschrijving, de melder, de rolmomentopname en het aanmaakmoment zijn opgeslagen of herleidbaar vastgelegd volgens het ticketdatamodel. |
| POST-006 | De technische context van het moment van melden is vastgelegd als snapshot en wordt niet achteraf live herberekend. |
| POST-007 | Er is minimaal één TicketHistory-regel vastgelegd waaruit blijkt dat de gebruiker de melding heeft aangemaakt. |
| POST-008 | De melder ontvangt een systeembericht dat verwijst naar de aangemaakte melding. |
| POST-009 | Het systeembericht gebruikt EntityType = Ticket en EntityId van de aangemaakte melding. |
| POST-010 | De melding wordt zichtbaar in de gebruikerscontext voor eigen meldingen. |
| POST-011 | Er ontstaat geen TicketAssignment, TicketClosure, TicketReopenRequest of interne discussie. |
| POST-012 | Bij validatiefout of autorisatieblokkade wordt geen melding aangemaakt. |
| POST-013 | Bij technische fout wordt geen gedeeltelijke of inconsistent zichtbare melding bewaard. |
| POST-014 | Technische details zoals stacktraces, databasefouten of interne identifiers worden niet aan de gebruiker getoond. |
6. Trigger
De gebruiker kiest op de pagina Meldingen de actie Nieuwe melding maken.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Gebruiker | SCH-GEN-06-01 — Meldingen | Opent de pagina Meldingen. | Het systeem toont de gebruikerscontext voor meldingen. | Alleen ingelogde gebruikers hebben toegang. |
| 2 | Gebruiker | SCH-GEN-06-01 — Meldingen | Kiest Nieuwe melding maken. | Het systeem opent POP-GEN-TIC-CREATE. | De actie opent een formuliermodal; de modal is een custom popup vanwege meerdere invoervelden. |
| 3 | Systeem | Backend | Controleert sessie, route, featurestatus en basisautorisatie. | Alleen bij geldige context blijft de invoerflow beschikbaar. | Frontendzichtbaarheid is geen autorisatiebewijs. |
| 4 | Systeem | POP-GEN-TIC-CREATE | Toont categorie, onderwerp, beschrijving en verzend-/annuleeractie. | De gebruiker kan de melding invullen. | Categorieën komen uit de gesloten waardelijst. |
| 5 | Gebruiker | POP-GEN-TIC-CREATE | Kiest een categorie. | Het systeem bewaart de keuze in de formulierstaat. | Toegestane waarden: Technisch probleem, Inhoudelijke fout, Wijziging aanvragen, Overig. |
| 6 | Gebruiker | POP-GEN-TIC-CREATE | Vult onderwerp en beschrijving in. | Het formulier bewaart de invoer tot verzenden of annuleren. | Niet-verzonden invoer wordt niet als concept opgeslagen. |
| 7 | Gebruiker | POP-GEN-TIC-CREATE | Kiest Melding indienen. | Het systeem start de server-side aanmaakactie. | Client-side validatie is ondersteunend; server-side validatie blijft leidend. |
| 8 | Systeem | Backend | Controleert opnieuw sessie, featurestatus en autorisatie. | Alleen bij geldige context gaat de mutatie door. | Directe of gemanipuleerde requests worden server-side geweigerd. |
| 9 | Systeem | Backend | Valideert categorie, onderwerp en beschrijving. | Ongeldige invoer blokkeert indienen. | Na sanitizing moet bruikbare tekst overblijven. |
| 10 | Systeem | Backend | Verzamelt technische en contextuele metadata. | Snapshotdata wordt klaargezet voor opslag. | Bijvoorbeeld actuele pagina, browserinformatie, IP-adres waar toegestaan, rolmomentopname en laatst-gezieninformatie. |
| 11 | Systeem | Backend | Genereert een functionele meldingsreferentie. | De melding krijgt een unieke gebruikersgerichte referentie. | Een zichtbare referentie zoals MEL-2026-041 is voorbeeldvorm en geen hardcoded waarde. |
| 12 | Systeem | Database | Maakt het Tickets-record aan. | De melding wordt opgeslagen met status New. | CreatedByUserId is de ingelogde gebruiker. |
| 13 | Systeem | Database | Slaat de technische snapshot op. | De snapshot wordt gekoppeld aan de melding. | Snapshotwaarden zijn momentopname, geen live afleiding. |
| 14 | Systeem | Database | Legt een TicketHistory-regel vast. | De aanmaakactie wordt auditbaar. | Geschiedenis blijft compact en verwijst naar de actie, niet naar volledige vrije tekst. |
| 15 | Systeem | Berichtensysteem | Maakt een systeembericht voor de melder aan. | De gebruiker krijgt een bericht dat de melding is aangemaakt. | EntityType = Ticket; EntityId = Ticket.Id. |
| 16 | Systeem | SCH-GEN-06-01 — Meldingen | Werkt de gebruikerscontext bij. | De nieuwe melding is zichtbaar in de eigen meldingenlijst of via de opvolgende gebruikersroute. | De melding valt onder de eigen gebruikercontext. |
| 17 | Gebruiker | SCH-GEN-06-01 — Meldingen | Ziet dat de melding is ingediend. | De gebruiker kan later via eigen meldingen of het systeembericht doorklikken naar de meldingdetailpagina. | Detailweergave valt onder UC-GEN-TIC-003. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 1-3 | De gebruiker is niet ingelogd of de sessie is verlopen. | De generieke loginflow of sessieafhandeling wordt gestart. | Geen domeinspecifieke meldingenpopup. | Geen. |
| ALT-002 | 1-3 | De gebruiker is ingelogd maar heeft geen toegang tot de route. | Het systeem weigert toegang via generieke autorisatieafhandeling. | Geen domeinspecifieke meldingenpopup. | Geen. |
| ALT-003 | 2-3 | De meldingenfunctionaliteit is sitebreed uitgeschakeld. | De actie is niet beschikbaar of wordt server-side geweigerd. | Generieke niet-beschikbaar- of toegangsfout; geen ticketmutatie. | Geen. |
| ALT-004 | 4-6 | De gebruiker sluit de modal of kiest annuleren zonder te verzenden. | Het systeem sluit de modal en keert terug naar de pagina Meldingen. | Geen popup vereist. | Geen. |
| ALT-005 | 7-9 | Categorie ontbreekt of heeft geen toegestane waarde. | Het systeem blokkeert indienen en toont veldvalidatie. | Inline validatie binnen POP-GEN-TIC-CREATE. | Geen. |
| ALT-006 | 7-9 | Onderwerp ontbreekt of is ongeldig. | Het systeem blokkeert indienen en toont veldvalidatie. | Inline validatie binnen POP-GEN-TIC-CREATE. | Geen. |
| ALT-007 | 7-9 | Beschrijving ontbreekt of blijft na sanitizing leeg. | Het systeem blokkeert indienen en toont veldvalidatie. | Inline validatie binnen POP-GEN-TIC-CREATE. | Geen. |
| ALT-008 | 7-9 | Invoer bevat actieve inhoud, scripts of onveilige markup. | Het systeem verwijdert of weigert onveilige inhoud volgens de sanitizingregels. | Inline validatie of veilige herweergave. | Geen zolang de resterende invoer ongeldig is. |
| ALT-009 | 10 | Niet alle technische snapshotwaarden kunnen worden bepaald. | Het systeem slaat de beschikbare snapshotwaarden op en registreert ontbrekende waarden als leeg of onbekend volgens technische regels. | Geen blokkade voor de gebruiker wanneer de kernmelding geldig is. | Ticket kan doorgaan; snapshot is gedeeltelijk. |
| ALT-010 | 11-15 | Databasefout tijdens aanmaken van melding, snapshot, history of systeembericht. | De transactie wordt teruggedraaid of de verwerking wordt als mislukt behandeld zodat geen inconsistent zichtbare melding ontstaat. | POP-GEN-TIC-CREATE-FAILED. | Geen gedeeltelijke functionele mutatie. |
| ALT-011 | 15 | Systeembericht kan niet worden aangemaakt. | Het systeem behandelt de aanmaak als mislukt of verwerkt dit via een betrouwbaar herstelmechanisme dat geen onherleidbare melding oplevert. | POP-GEN-TIC-CREATE-FAILED wanneer de gebruiker actie moet ondernemen. | Geen inconsistent zichtbare melding. |
| ALT-012 | 12 | Er bestaat al een vergelijkbare melding over dezelfde situatie. | Het systeem maakt de nieuwe melding alsnog aan wanneer de invoer geldig is. | Geen automatische samenvoegmelding. | Nieuwe melding ontstaat. |
| ALT-013 | 7-15 | De gebruiker verzendt hetzelfde formulier twee keer kort achter elkaar. | Het systeem voorkomt dubbele verwerking via request-, command- of UI-bescherming, of behandelt een tweede identieke verwerking veilig. | Geen technische details zichtbaar. | Maximaal één bedoelde melding per verzendactie. |
| ALT-014 | 16-17 | De UI kan na succesvol indienen niet direct verversen. | De melding blijft opgeslagen; bij herladen of opnieuw openen van Meldingen is deze zichtbaar. | Geen blocking popup noodzakelijk. | Ticket, snapshot, history en systeembericht blijven bestaan. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-GEN-TIC-001-001 | Een melding indienen is alleen toegestaan voor een ingelogde gebruiker. |
| BR-UC-GEN-TIC-001-002 | De meldingenfunctionaliteit moet beschikbaar zijn op het moment dat de gebruiker de flow start en op het moment van indienen. |
| BR-UC-GEN-TIC-001-003 | De actie Nieuwe melding maken opent een formuliermodal met meerdere velden en wordt daarom als custom popup behandeld. |
| BR-UC-GEN-TIC-001-004 | De gebruiker moet precies één toegestane meldingcategorie kiezen. |
| BR-UC-GEN-TIC-001-005 | De toegestane categorieën zijn Technisch probleem, Inhoudelijke fout, Wijziging aanvragen en Overig. |
| BR-UC-GEN-TIC-001-006 | Onderwerp en beschrijving zijn verplicht. |
| BR-UC-GEN-TIC-001-007 | Gebruikersinvoer wordt veilig gesanitized of geëncodeerd voordat deze wordt opgeslagen of weergegeven. |
| BR-UC-GEN-TIC-001-008 | Bijlagen zijn binnen de initiële scope niet toegestaan bij het indienen van een melding. |
| BR-UC-GEN-TIC-001-009 | Technische context wordt automatisch verzameld en niet als handmatig invulveld aan de gebruiker gevraagd. |
| BR-UC-GEN-TIC-001-010 | De technische context wordt als momentopname opgeslagen en later niet live herberekend. |
| BR-UC-GEN-TIC-001-011 | Een nieuwe melding krijgt bij aanmaak de backendstatus New. |
| BR-UC-GEN-TIC-001-012 | Een nieuwe melding heeft direct na aanmaak geen actieve beheerderkoppeling. |
| BR-UC-GEN-TIC-001-013 | De aanmaak van de melding moet auditbaar zijn via TicketHistory. |
| BR-UC-GEN-TIC-001-014 | Na succesvolle aanmaak ontvangt de melder een systeembericht met verwijzing naar de melding. |
| BR-UC-GEN-TIC-001-015 | Het systeembericht gebruikt geen losse URL als bron van waarheid, maar een functionele verwijzing via EntityType = Ticket en EntityId. |
| BR-UC-GEN-TIC-001-016 | Het systeem voegt vergelijkbare of dubbele meldingen binnen de huidige scope niet automatisch samen. |
| BR-UC-GEN-TIC-001-017 | De melding wordt zichtbaar voor de melder zelf en voor beheerders; andere reguliere gebruikers mogen de melding niet zien. |
| BR-UC-GEN-TIC-001-018 | Technische foutdetails worden niet aan de gebruiker getoond. |
| BR-UC-GEN-TIC-001-019 | Annuleren van de invoerflow mag geen ticket-, history-, snapshot- of systeemberichtmutatie veroorzaken. |
Centrale business rules die hierbij horen:
| BusinessRule-ID | Toepassing |
|---|---|
BR-GEN-SEC-001 | Alle afgeschermde acties vereisen server-side rol-, relatie- of objectcontrole. |
BR-GEN-TIC-001 | Iedere ingelogde gebruiker met toegang tot de normale applicatie mag een melding indienen wanneer de meldingenfunctionaliteit beschikbaar is. |
BR-GEN-TIC-002 | Een nieuwe melding krijgt status New zolang er geen actieve beheerderkoppeling bestaat. |
BR-GEN-TIC-003 | Technische context bij een melding wordt als snapshot opgeslagen en niet achteraf live herberekend. |
BR-GEN-TIC-004 | Meldingmutaties moeten auditbaar zijn via TicketHistory. |
BR-GEN-TIC-005 | Systeemberichten uit het meldingenproces verwijzen via EntityType = Ticket en EntityId. |
BR-GEN-TIC-006 | Meldingcategorieën zijn gesloten functionele waarden en geen vrije gebruikersinvoer. |
BR-GEN-POP-001 | Niet-custom popupinhoud staat in het popupregister; custom popups verwijzen naar een codegedreven renderer. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Route naar Meldingen | Mag nooit als autorisatiebewijs worden gebruikt; server-side controle blijft verplicht. |
SiteFeatureToggles.TicketsEnabled | Moet actief zijn bij openen en bij indienen. |
| Gebruiker | Moet bestaan, ingelogd zijn en een geldige applicatiecontext hebben. |
| Rolmomentopname | Wordt automatisch bepaald op het moment van indienen en tekstueel of relationeel herleidbaar opgeslagen. |
| Categorie | Verplicht; alleen Technisch probleem, Inhoudelijke fout, Wijziging aanvragen of Overig. |
| Onderwerp | Verplicht; veilig encoden bij weergave; lengtebegrenzing moet in TO/SRS technisch worden vastgelegd. |
| Beschrijving | Verplicht; na sanitizing moet bruikbare inhoud overblijven. |
| Rich-text of vrije tekst | Actieve inhoud zoals scripts of onveilige markup wordt verwijderd of geweigerd. |
| Bijlagen | Niet toegestaan binnen de huidige scope; uploadvelden of meegezonden bijlagepayloads worden geweigerd. |
| Technische snapshot | Wordt automatisch opgebouwd; ontbrekende niet-kritieke snapshotwaarden blokkeren het indienen niet wanneer de melding zelf geldig is. |
Tickets.CreatedByUserId | Moet gelijk zijn aan de ingelogde gebruiker. |
Tickets.Status | Wordt bij aanmaak op New gezet. |
Tickets.Category | Moet overeenkomen met de gekozen gesloten waardelijstwaarde. |
TicketTechnicalSnapshots.TicketId | Moet verwijzen naar de nieuw aangemaakte melding. |
TicketHistory.TicketId | Moet verwijzen naar de nieuw aangemaakte melding. |
SystemMessages.RecipientUserId | Moet de melder zijn. |
SystemMessages.EntityType | Moet Ticket zijn voor het aanmaaksysteembericht. |
SystemMessages.EntityId | Moet verwijzen naar de aangemaakte melding. |
| Datum- en tijdwaarden | Worden in UTC opgeslagen en lokaal weergegeven. |
| Foutmeldingen | Mogen geen technische identifiers, stacktraces of interne databasenaamgeving bevatten. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 3 | Read | SiteFeatureToggles, Users, rolcontext | Controleren of de gebruiker de meldingenflow mag gebruiken. |
| 4-6 | Geen opslag | Formulierstaat | Invoer wordt alleen in de modalstaat bewaard tot indienen of annuleren. |
| 8-9 | Read / validatie | TicketCategories, gebruikercontext | Controleren van categorie, onderwerp, beschrijving en invoerveiligheid. |
| 10 | Read / snapshotvoorbereiding | technische requestcontext | Verzamelen van metadata voor TicketTechnicalSnapshots. |
| 11 | Proces | meldingsreferentie | Genereren van een unieke functionele meldingsreferentie. |
| 12 | Database | Tickets | Nieuwe melding aanmaken met melder, categorie, onderwerp, beschrijving, status New en aanmaakgegevens. |
| 12 | Event | TicketCreated | Functionele melding is aangemaakt. |
| 13 | Database | TicketTechnicalSnapshots | Technische en contextuele momentopname opslaan bij de melding. |
| 13 | Event | TicketTechnicalSnapshotCaptured | Snapshot is vastgelegd. |
| 14 | Database | TicketHistory | Compacte auditregel vastleggen voor het aanmaken van de melding. |
| 14 | Event | TicketHistoryRecorded | Historyregel is vastgelegd. |
| 15 | Database | SystemMessages | Systeembericht voor de melder aanmaken met verwijzing naar de melding. |
| 15 | Event | SystemMessageCreated | Systeembericht is aangemaakt. |
| 16 | Read / UI-update | eigen meldingenreadmodel | De nieuwe melding wordt zichtbaar in de eigen gebruikerscontext. |
| ALT-010 | Event / logging | TicketCreateFailed | Aanmaken is technisch mislukt; geen gedeeltelijke functionele mutatie blijft zichtbaar. |
| ALT-011 | Event / logging | TicketCreateFailed | Systeembericht of transactieonderdeel is mislukt. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
TicketAssignments | Een nieuwe melding krijgt nog geen gekoppelde beheerder. |
TicketClosures | Indienen is geen sluit- of oplossingsactie. |
TicketReopenRequests | Indienen is geen heropenactie. |
TicketForwardedToTeacher | Doorzetten naar docent hoort bij een latere beheerflow. |
TicketDiscussionMessages | De oorspronkelijke melding wordt opgeslagen als meldinginhoud; er ontstaat nog geen discussiebericht. |
TicketResolutionTypes | Er is nog geen oplossing of afsluitstatus. |
PrivateMessageThreads | Indienen van een melding maakt geen privéberichtthread aan. |
PrivateMessages | Indienen van een melding verstuurt geen privébericht. |
UserRelationships | De flow maakt, wijzigt of beëindigt geen relatie. |
ExerciseRuns | De flow raakt geen oefenrun. |
SystemMessageTemplates | Systeemberichtsjablonen worden alleen gebruikt; niet gewijzigd. |
SiteFeatureToggles | Featurestatus wordt alleen gelezen. |
| Bijlage-entiteiten | Bijlagen zijn binnen de huidige scope niet toegestaan. |
13. State diagram — ticketstatus bij indienen
14. Decision flow — melding indienen
15. Data lifecycle diagram — nieuwe melding
16. Sequence diagrammen
16.1 Melding succesvol indienen
16.2 Melding indienen met validatiefout
16.3 Melding indienen met technische fout
17. Popupverwijzingen
| PopupKey | Moment | Variant | Doel |
|---|---|---|---|
POP-GEN-TIC-CREATE | Direct nadat de gebruiker Nieuwe melding maken kiest. | Custom | Formuliermodal voor het indienen van een melding met categorie, onderwerp en beschrijving. |
POP-GEN-TIC-CREATE-FAILED | Wanneer het indienen technisch of transactioneel mislukt. | InfoOnly | Duidelijk maken dat de melding niet is aangemaakt zonder technische details prijs te geven. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | De pagina Meldingen moet een actie Nieuwe melding maken bevatten die een formuliermodal opent. |
| Functioneel Ontwerp | Het formulier moet minimaal categorie, onderwerp en beschrijving bevatten. |
| Functioneel Ontwerp | De categorieën zijn Technisch probleem, Inhoudelijke fout, Wijziging aanvragen en Overig. |
| Functioneel Ontwerp | Bijlagen worden niet aangeboden bij het indienen van een melding. |
| Functioneel Ontwerp | Na succesvol indienen moet de melding voor de gebruiker terugvindbaar zijn in de eigen meldingencontext en via een systeembericht. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. De aanmaakactie moet als command worden verwerkt met server-side authenticatie-, feature- en autorisatiecontrole. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. De technische context moet bij indienen automatisch worden verzameld en als snapshot worden opgeslagen. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Het aanmaken van ticket, snapshot, history en systeembericht moet transactioneel of consistent-herstelbaar worden verwerkt. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Het systeembericht moet naar EntityType = Ticket en EntityId = Ticket.Id verwijzen en niet naar een losse URL. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Tekstinvoer moet server-side worden gevalideerd, gesanitized en veilig geëncodeerd voordat opslag of rendering plaatsvindt. |
| Software Requirements Specification | Een ingelogde gebruiker moet een melding kunnen indienen wanneer de meldingenfunctionaliteit beschikbaar is. |
| Software Requirements Specification | Het systeem moet een nieuwe melding aanmaken met status New en zonder beheerderkoppeling. |
| Software Requirements Specification | Het systeem moet automatisch technische context vastleggen bij het indienen van een melding. |
| Software Requirements Specification | Het systeem moet de melder via een systeembericht naar de aangemaakte melding kunnen laten navigeren. |
| Software Requirements Specification | Het systeem moet bij validatiefouten en technische fouten voorkomen dat gedeeltelijke of ongeldige meldingen ontstaan. |
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-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-GEN-TIC-001-001 | SRS-TIC-002 AC-TIC-002 | Een ingelogde gebruiker de mogelijkheid bieden om vanuit Meldingen een nieuwe melding te starten wanneer de meldingenfunctionaliteit beschikbaar is |
REQ-UC-GEN-TIC-001-002 | SRS-TIC-001 SRS-CAT-001 AC-TIC-001 AC-CAT-001 | Voor het indienen van een melding een formuliermodal tonen met minimaal categorie, onderwerp en beschrijving |
REQ-UC-GEN-TIC-001-003 | SRS-TIC-002 SRS-CAT-001 AC-TIC-002 AC-CAT-001 | De categorie beperken tot Technisch probleem, Inhoudelijke fout, Wijziging aanvragen en Overig |
REQ-UC-GEN-TIC-001-004 | SRS-TIC-001 AC-TIC-001 | Onderwerp en beschrijving verplicht stellen bij het indienen van een melding |
REQ-UC-GEN-TIC-001-005 | SRS-AUTH-001 SRS-TIC-002 SRS-NFR-SEC-001 AC-AUTH-001 AC-TIC-002 AC-NFR-SEC-001 | Gebruikersinvoer server-side valideren, sanitizen en veilig verwerken |
REQ-UC-GEN-TIC-001-006 | SRS-MSG-001 SRS-TIC-002 SRS-NFR-AUD-001 AC-MSG-001 AC-TIC-002 AC-NFR-AUD-001 | Bij annuleren van de nieuwe-meldingflow geen ticket-, snapshot-, history- of systeemberichtmutatie uitvoeren |
REQ-UC-GEN-TIC-001-007 | SRS-AUTH-001 SRS-TIC-001 AC-AUTH-001 AC-TIC-001 | Server-side controleren dat de gebruiker op het moment van indienen bevoegd is om een melding aan te maken |
REQ-UC-GEN-TIC-001-008 | SRS-TIC-002 AC-TIC-002 | Een nieuwe melding opslaan met status New |
REQ-UC-GEN-TIC-001-009 | SRS-TIC-001 SRS-ADM-001 AC-TIC-001 AC-ADM-001 | Bij aanmaak van een melding geen actieve beheerderkoppeling aanmaken |
REQ-UC-GEN-TIC-001-010 | SRS-TIC-002 SRS-NFR-AUD-001 AC-TIC-002 AC-NFR-AUD-001 | De technische en contextuele gegevens van het moment van melden als snapshot kunnen vastleggen |
REQ-UC-GEN-TIC-001-011 | SRS-TIC-001 SRS-NFR-AUD-001 AC-TIC-001 AC-NFR-AUD-001 | Minimaal een historyregel vastleggen voor het aanmaken van de melding |
REQ-UC-GEN-TIC-001-012 | SRS-MSG-001 SRS-TIC-001 AC-MSG-001 AC-TIC-001 | Na succesvolle aanmaak een systeembericht voor de melder kunnen aanmaken |
REQ-UC-GEN-TIC-001-013 | SRS-MSG-001 SRS-TIC-002 AC-MSG-001 AC-TIC-002 | Het systeembericht voor een aangemaakte melding moet verwijzen met EntityType = Ticket en EntityId van de melding |
REQ-UC-GEN-TIC-001-014 | SRS-TIC-002 AC-TIC-002 | De nieuwe melding zichtbaar maken in de eigen meldingencontext van de melder |
REQ-UC-GEN-TIC-001-015 | SRS-TIC-001 AC-TIC-001 | Voorkomen dat reguliere gebruikers meldingen van andere gebruikers kunnen aanmaken, wijzigen of bekijken via deze flow |
REQ-UC-GEN-TIC-001-016 | SRS-TIC-002 SRS-SHR-001 SRS-NFR-LOG-001 AC-TIC-002 AC-SHR-001 AC-NFR-LOG-001 | Bij technische fouten geen gedeeltelijke of inconsistent zichtbare melding bewaren |
REQ-UC-GEN-TIC-001-017 | SRS-TIC-006 AC-TIC-006 | Bij foutpaden geen technische identifiers, stacktraces of interne databasenaamgeving tonen aan de gebruiker |
REQ-UC-GEN-TIC-001-018 | SRS-AUTH-001 SRS-TIC-001 AC-AUTH-001 AC-TIC-001 | Bijlagen bij het indienen van een melding weigeren of buiten de gebruikersinterface houden |
REQ-UC-GEN-TIC-001-019 | SRS-TIC-001 AC-TIC-001 | Vergelijkbare meldingen niet automatisch samenvoegen tijdens het indienen |
REQ-UC-GEN-TIC-001-020 | SRS-TIC-002 AC-TIC-002 | Datum- en tijdwaarden rond de aanmaak van meldingen in UTC opslaan en lokaal tonen waar relevant |