# saicharanreddy01/enterprise-ticket-management-system architecture

> Architecture diagram of the GitHub repository saicharanreddy01/enterprise-ticket-management-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/saicharanreddy01/enterprise-ticket-management-system
- Repository: https://github.com/saicharanreddy01/enterprise-ticket-management-system

## Overview

Ticketmaster is a full-stack IT service-management and help-desk application. A requester or agent uses the browser to create and manage tickets; the REST layer delegates lifecycle work to ticket services, which route tickets, assign SLA timing, and persist records. Distinct product branches include ticket collaboration and attachments, self-service knowledge and CSAT, reporting, security/MFA, and integrations. The README documents these capabilities, but source excerpts are partial, so links for unsampled subsystems are shown only where the tree and documented API scope support them.

Main entry points: [`ticketmaster/src/main/java/com/enterprise/ticketmaster/controller`](https://github.com/saicharanreddy01/enterprise-ticket-management-system/tree/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller) (Feature APIs), [`ticketmaster/src/main/java/com/enterprise/ticketmaster/repository`](https://github.com/saicharanreddy01/enterprise-ticket-management-system/tree/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/repository) (Application database), [`ticketmaster/src/main/java/com/enterprise/ticketmaster/service/TicketService.java`](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/TicketService.java) (Ticket lifecycle), [`ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/TicketController.java`](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/TicketController.java) (Ticket API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experience"]
  node_console["Ticket console<br/>[tickets-console.js]"]
  node_createui["Ticket creation<br/>[ticket-create.js]"]
  node_detailui["Ticket detail<br/>[ticket-detail.js]"]
  node_dashboard["Dashboard and reports"]
  node_adminui["Admin settings"]
  node_securityui["Security settings"]
end

subgraph group_api["API and security"]
  node_auth["Authentication API"]
  node_ticketapi["Ticket API"]
  node_otherapi["Feature APIs"]
  node_security["JWT and access controls"]
end

subgraph group_tickets["Ticket operations"]
  node_ticketservice["Ticket lifecycle<br/>[TicketService.java]"]
  node_routing["Routing and assignment"]
  node_sla["SLA and escalation"]
  node_history["History and comments"]
  node_attachments["Attachment storage"]
end

subgraph group_productivity["Service capabilities"]
  node_knowledge["Knowledge and triage"]
  node_ai["AI triage"]
  node_presence["Agent presence"]
  node_notifications["Notifications and email"]
  node_webhooks["Webhook dispatch"]
end

subgraph group_state["Persistence"]
  node_database[("Application database")]
end

node_requesters(("Requesters and agents"))
node_mail["SMTP service"]
node_groq["Groq-compatible API"]

node_requesters -->|"use tickets"| node_console
node_requesters -->|"raise incidents"| node_createui
node_requesters -->|"view details"| node_detailui
node_console -->|"search and update"| node_ticketapi
node_createui -->|"submit ticket"| node_ticketapi
node_detailui -->|"manage ticket"| node_ticketapi
node_dashboard -->|"request reports"| node_otherapi
node_adminui -->|"configure services"| node_otherapi
node_securityui -->|"manage security"| node_auth
node_requesters -->|"sign in"| node_auth
node_ticketapi -->|"delegate lifecycle"| node_ticketservice
node_ticketservice -->|"route ticket"| node_routing
node_ticketservice -->|"assign SLA"| node_sla
node_ticketservice -->|"read and write"| node_database
node_routing -->|"load rules and workload"| node_database
node_sla -->|"read SLA data"| node_database
node_otherapi -->|"manage articles"| node_knowledge
node_otherapi -->|"request triage"| node_ai
node_otherapi -->|"track viewers"| node_presence
node_otherapi -->|"access audit history"| node_history
node_otherapi -->|"store and retrieve files"| node_attachments
node_otherapi -->|"manage webhooks"| node_webhooks
node_otherapi -->|"manage notifications"| node_notifications
node_knowledge -->|"read and write articles"| node_database
node_history -->|"read history"| node_database
node_attachments -->|"store attachment metadata"| node_database
node_attachments -.->|"persist file data"| node_database
node_notifications -->|"send email"| node_mail
node_webhooks -.->|"notify by email"| node_mail
node_ai -.->|"request AI assistance"| node_groq

click node_console "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/tickets-console.js"
click node_createui "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/ticket-create.js"
click node_detailui "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/ticket-detail.js"
click node_dashboard "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/dashboard-reports.js"
click node_adminui "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/settings-sla-routing-kb.js"
click node_securityui "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/settings-admin-security.js"
click node_auth "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/AuthController.java"
click node_ticketapi "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/TicketController.java"
click node_otherapi "https://github.com/saicharanreddy01/enterprise-ticket-management-system/tree/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller"
click node_security "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/config/SecurityConfig.java"
click node_ticketservice "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/TicketService.java"
click node_routing "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/RoutingEngineService.java"
click node_sla "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/SlaManagementService.java"
click node_history "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/TicketHistoryController.java"
click node_attachments "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/LocalStorageService.java"
click node_knowledge "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/KnowledgeArticleService.java"
click node_ai "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/TriageAssistService.java"
click node_presence "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/PresenceService.java"
click node_notifications "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/event/NotificationEventListener.java"
click node_webhooks "https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/WebhookDispatchService.java"
click node_database "https://github.com/saicharanreddy01/enterprise-ticket-management-system/tree/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/repository"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_console,node_createui,node_detailui,node_dashboard,node_adminui,node_securityui toneBlue
class node_auth,node_ticketapi,node_otherapi,node_security toneAmber
class node_ticketservice,node_routing,node_sla,node_history,node_attachments,node_requesters,node_groq toneMint
class node_knowledge,node_ai,node_presence,node_notifications,node_webhooks toneRose
class node_database,node_mail toneIndigo
```

## Components

### Web experience

- [Ticket console](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/tickets-console.js): `ticketmaster/src/main/resources/static/js/tickets-console.js`
- [Ticket creation](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/ticket-create.js): `ticketmaster/src/main/resources/static/js/ticket-create.js`
- [Ticket detail](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/ticket-detail.js): `ticketmaster/src/main/resources/static/js/ticket-detail.js`
- [Dashboard and reports](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/dashboard-reports.js): `ticketmaster/src/main/resources/static/js/dashboard-reports.js`
- [Admin settings](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/settings-sla-routing-kb.js): `ticketmaster/src/main/resources/static/js/settings-sla-routing-kb.js`
- [Security settings](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/resources/static/js/settings-admin-security.js): `ticketmaster/src/main/resources/static/js/settings-admin-security.js`

### API and security

- [Authentication API](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/AuthController.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/AuthController.java`
- [Ticket API](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/TicketController.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/TicketController.java`
- [Feature APIs](https://github.com/saicharanreddy01/enterprise-ticket-management-system/tree/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller): `ticketmaster/src/main/java/com/enterprise/ticketmaster/controller`
- [JWT and access controls](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/config/SecurityConfig.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/config/SecurityConfig.java`

### Ticket operations

- [Ticket lifecycle](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/TicketService.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/service/TicketService.java`
- [Routing and assignment](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/RoutingEngineService.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/service/RoutingEngineService.java`
- [SLA and escalation](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/SlaManagementService.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/service/SlaManagementService.java`
- [History and comments](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/TicketHistoryController.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/controller/TicketHistoryController.java`
- [Attachment storage](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/LocalStorageService.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/service/LocalStorageService.java`

### Service capabilities

- [Knowledge and triage](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/KnowledgeArticleService.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/service/KnowledgeArticleService.java`
- [AI triage](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/TriageAssistService.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/service/TriageAssistService.java`
- [Agent presence](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/PresenceService.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/service/PresenceService.java`
- [Notifications and email](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/event/NotificationEventListener.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/event/NotificationEventListener.java`
- [Webhook dispatch](https://github.com/saicharanreddy01/enterprise-ticket-management-system/blob/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/service/WebhookDispatchService.java): `ticketmaster/src/main/java/com/enterprise/ticketmaster/service/WebhookDispatchService.java`

### Persistence

- [Application database](https://github.com/saicharanreddy01/enterprise-ticket-management-system/tree/main/ticketmaster/src/main/java/com/enterprise/ticketmaster/repository): `ticketmaster/src/main/java/com/enterprise/ticketmaster/repository`

### Other components

- **Requesters and agents**
- **SMTP service**
- **Groq-compatible API**

## Connections

- Requesters and agents → Ticket console: use tickets
- Requesters and agents → Ticket creation: raise incidents
- Requesters and agents → Ticket detail: view details
- Ticket console → Ticket API: search and update
- Ticket creation → Ticket API: submit ticket
- Ticket detail → Ticket API: manage ticket
- Dashboard and reports → Feature APIs: request reports
- Admin settings → Feature APIs: configure services
- Security settings → Authentication API: manage security
- Requesters and agents → Authentication API: sign in
- Ticket API → Ticket lifecycle: delegate lifecycle
- Ticket lifecycle → Routing and assignment: route ticket
- Ticket lifecycle → SLA and escalation: assign SLA
- Ticket lifecycle → Application database: read and write
- Routing and assignment → Application database: load rules and workload
- SLA and escalation → Application database: read SLA data
- Feature APIs → Knowledge and triage: manage articles
- Feature APIs → AI triage: request triage
- Feature APIs → Agent presence: track viewers
- Feature APIs → History and comments: access audit history
- Feature APIs → Attachment storage: store and retrieve files
- Feature APIs → Webhook dispatch: manage webhooks
- Feature APIs → Notifications and email: manage notifications
- Knowledge and triage → Application database: read and write articles
- History and comments → Application database: read history
- Attachment storage → Application database: store attachment metadata
- Attachment storage → Application database: persist file data
- Notifications and email → SMTP service: send email
- Webhook dispatch → SMTP service: notify by email
- AI triage → Groq-compatible API: request AI assistance
