How sergibonet/issueflow works
IssueFlow is a Symfony incident-management application. Its main workflow lets an agent submit a validated ticket form, persists the resulting ticket, and redirects to its detail view; users can also browse and filter tickets, while API clients can search or retrieve ticket data as JSON. The sampled code shows Doctrine-backed ticket queries, domain entities and an SLA calculator. The README describes an early course project, so the broader capabilities here come from the repository tree and sampled source, not a claim that every route or integration was inspected.
Main entry points: TicketController.php Ticket workflows · Ticket.php Ticket entity · ApiTicketController.php Ticket API · TicketRepository.php Ticket repository
Components 18
Web experience
- Browser pages
templates/ticket - Ticket workflows
src/Controller/TicketController.php - Ticket forms
src/Form/TicketType.php - Filter form
src/Form/TicketFilterType.php
JSON API
- Ticket API
src/Controller/ApiTicketController.php
Ticket domain
- Creation data
src/Form/Model/TicketCreateData.php - Search criteria
src/Form/Model/TicketSearchCriteria.php - Ticket entity
src/Entity/Ticket.php - Category entity
src/Entity/Category.php - User entity
src/Entity/User.php - Status and priority
src/model/TicketStatus.php - SLA contract
src/Contract/TicketSlaCalculatorInterface.php - SLA calculator
src/Service/TicketSlaCalculator.php
Persistence
- Catalog contract
src/Contract/TicketCatalogInterface.php - Ticket repository
src/Repository/TicketRepository.php - Doctrine database
Other components
- Agent or visitor
- API client
Connections 25
- Agent or visitor → Ticket workflows: uses routes
- Ticket workflows → Ticket forms: builds form
src/Controller/TicketController.php - Ticket workflows → Filter form: builds form
src/Controller/TicketController.php - Ticket forms → Creation data: binds data
src/Form/TicketType.php - Filter form → Search criteria: binds criteria
src/Form/TicketFilterType.php - Ticket workflows → Creation data: maps ticket
src/Form/Model/TicketCreateData.php - Ticket workflows → Ticket entity: persists ticket
src/Controller/TicketController.php - Ticket workflows → Catalog contract: searches and finds
src/Controller/TicketController.php - Ticket workflows → SLA contract: gets target
src/Controller/TicketController.php - Ticket workflows → Browser pages: renders views
src/Controller/TicketController.php - Ticket workflows → Ticket repository: dispatches catalog
src/Repository/TicketRepository.php - API client → Ticket API: calls endpoints
- Ticket API → Search criteria: sets filters
src/Controller/ApiTicketController.php - Ticket API → Ticket repository: searches and finds
src/Controller/ApiTicketController.php - Ticket API → SLA contract: gets target
src/Controller/ApiTicketController.php - Ticket API → Ticket entity: serializes fields
src/Controller/ApiTicketController.php - Ticket repository → Catalog contract: implements
src/Repository/TicketRepository.php - Ticket repository → Doctrine database: queries tickets
src/Repository/TicketRepository.php - Ticket workflows → Doctrine database: writes ticket
src/Controller/TicketController.php - SLA calculator → SLA contract: implements
src/Service/TicketSlaCalculator.php - SLA calculator → Ticket entity: calculates for
src/Service/TicketSlaCalculator.php - Ticket entity → Status and priority: uses values
src/Entity/Ticket.php - Ticket entity → Category entity: references category
src/Entity/Ticket.php - Ticket entity → User entity: references assignee
src/Entity/Ticket.php - Creation data → Ticket entity: constructs ticket
src/Form/Model/TicketCreateData.php