# sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system architecture

> Architecture diagram of the GitHub repository sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system
- Repository: https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system

## Overview

IntelliDesk is an AI-assisted IT helpdesk: employees submit tickets, the API classifies and prioritizes them, assigns an agent, and tracks lifecycle and SLA state; agents and admins work tickets and review analytics. The React client provides role-based views and calls the FastAPI API. Documented capabilities also include similar-ticket and knowledge-base suggestions, audit history, and SLA-breach escalation. Some routers and ML modules were not sampled, so their placement follows the README; uncertain implementation-level links are omitted.

Main entry points: [`backend/app/services/ticket_service.py`](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/services/ticket_service.py) (Ticket lifecycle), [`backend/app/main.py`](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/main.py) (FastAPI app), [`frontend/src/App.jsx`](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/App.jsx) (Role-based routes), [`frontend/src/api/client.js`](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/api/client.js) (HTTP client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app_ui["Role-based routes<br/>[App.jsx]"]
  node_auth_ui["Session context<br/>[AuthContext.jsx]"]
  node_submit_ui["Ticket submission<br/>[SubmitTicket.jsx]"]
  node_work_ui["Ticket work views<br/>[TicketDetail.jsx]"]
  node_analytics_ui["Analytics view<br/>[Analytics.jsx]"]
  node_api_client["HTTP client<br/>[client.js]"]
end

subgraph group_api["API and access"]
  node_api_app["FastAPI app<br/>[main.py]"]
  node_auth_router["Authentication<br/>[auth.py]"]
  node_ticket_router["Ticket endpoints<br/>[tickets.py]"]
  node_users_router["User endpoints<br/>[users.py]"]
  node_analytics_router["Analytics endpoint<br/>[analytics.py]"]
  node_auth_core["JWT and passwords<br/>[auth.py]"]
end

subgraph group_ticket_ops["Ticket operations"]
  node_ticket_service["Ticket lifecycle<br/>[ticket_service.py]"]
end

subgraph group_intelligence["Triage and SLA"]
  node_classifier["Classification<br/>[classifier.py]"]
  node_similarity["Similar and KB suggestions<br/>[similarity.py]"]
  node_sla_engine["SLA escalation<br/>[sla_engine.py]"]
end

subgraph group_state["Persistent state"]
  node_database[("SQL database<br/>[database.py]")]
  node_models["Domain records<br/>[models.py]"]
end

node_employee(("Employee"))
node_agent_admin(("Agent / admin"))

node_employee -->|"uses"| node_app_ui
node_agent_admin -->|"uses"| node_app_ui
node_app_ui -->|"routes"| node_submit_ui
node_app_ui -->|"routes"| node_work_ui
node_app_ui -->|"routes"| node_analytics_ui
node_app_ui -->|"provides session"| node_auth_ui
node_auth_ui -->|"requests auth"| node_api_client
node_submit_ui -->|"submits ticket"| node_api_client
node_work_ui -->|"loads and updates"| node_api_client
node_analytics_ui -->|"fetches analytics"| node_api_client
node_api_client -->|"HTTP requests"| node_api_app
node_api_app -->|"registers"| node_auth_router
node_api_app -->|"registers"| node_ticket_router
node_api_app -->|"registers"| node_users_router
node_api_app -->|"registers"| node_analytics_router
node_auth_router -->|"hashes and issues tokens"| node_auth_core
node_ticket_router -->|"delegates ticket work"| node_ticket_service
node_ticket_router -->|"requests suggestions"| node_ticket_service
node_ticket_service -->|"classifies"| node_classifier
node_ticket_service -->|"finds suggestions"| node_similarity
node_ticket_service -->|"reads and writes"| node_database
node_ticket_service -->|"uses records"| node_models
node_analytics_router -->|"aggregates ticket data"| node_database
node_analytics_router -->|"queries records"| node_models
node_sla_engine -->|"scans and updates"| node_database
node_sla_engine -->|"queries records"| node_models
node_sla_engine -->|"logs history"| node_ticket_service
node_api_app -->|"starts and stops"| node_sla_engine

click node_app_ui "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/App.jsx"
click node_auth_ui "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/context/AuthContext.jsx"
click node_submit_ui "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/pages/SubmitTicket.jsx"
click node_work_ui "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/pages/TicketDetail.jsx"
click node_analytics_ui "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/pages/Analytics.jsx"
click node_api_client "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/api/client.js"
click node_api_app "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/main.py"
click node_auth_router "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/routers/auth.py"
click node_ticket_router "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/routers/tickets.py"
click node_users_router "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/routers/users.py"
click node_analytics_router "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/routers/analytics.py"
click node_auth_core "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/auth.py"
click node_ticket_service "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/services/ticket_service.py"
click node_classifier "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/ml/classifier.py"
click node_similarity "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/ml/similarity.py"
click node_sla_engine "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/services/sla_engine.py"
click node_database "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/database.py"
click node_models "https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/models.py"

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_app_ui,node_auth_ui,node_submit_ui,node_work_ui,node_analytics_ui,node_api_client toneBlue
class node_api_app,node_auth_router,node_ticket_router,node_users_router,node_analytics_router,node_auth_core toneAmber
class node_ticket_service toneMint
class node_classifier,node_similarity,node_sla_engine toneRose
class node_database,node_models,node_employee,node_agent_admin toneIndigo
```

## Components

### Web client

- [Role-based routes](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Session context](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Ticket submission](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/pages/SubmitTicket.jsx): `frontend/src/pages/SubmitTicket.jsx`
- [Ticket work views](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/pages/TicketDetail.jsx): `frontend/src/pages/TicketDetail.jsx`
- [Analytics view](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/pages/Analytics.jsx): `frontend/src/pages/Analytics.jsx`
- [HTTP client](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/frontend/src/api/client.js): `frontend/src/api/client.js`

### API and access

- [FastAPI app](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/main.py): `backend/app/main.py`
- [Authentication](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/routers/auth.py): `backend/app/routers/auth.py`
- [Ticket endpoints](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/routers/tickets.py): `backend/app/routers/tickets.py`
- [User endpoints](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/routers/users.py): `backend/app/routers/users.py`
- [Analytics endpoint](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/routers/analytics.py): `backend/app/routers/analytics.py`
- [JWT and passwords](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/auth.py): `backend/app/auth.py`

### Ticket operations

- [Ticket lifecycle](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/services/ticket_service.py): `backend/app/services/ticket_service.py`

### Triage and SLA

- [Classification](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/ml/classifier.py): `backend/app/ml/classifier.py`
- [Similar and KB suggestions](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/ml/similarity.py): `backend/app/ml/similarity.py`
- [SLA escalation](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/services/sla_engine.py): `backend/app/services/sla_engine.py`

### Persistent state

- [SQL database](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/database.py): `backend/app/database.py`
- [Domain records](https://github.com/sahiithiii/intellidesk-ai-assisted-it-service-ticketing-system/blob/main/backend/app/models.py): `backend/app/models.py`

### Other components

- **Employee**
- **Agent / admin**

## Connections

- Employee → Role-based routes: uses
- Agent / admin → Role-based routes: uses
- Role-based routes → Ticket submission: routes
- Role-based routes → Ticket work views: routes
- Role-based routes → Analytics view: routes
- Role-based routes → Session context: provides session
- Session context → HTTP client: requests auth
- Ticket submission → HTTP client: submits ticket
- Ticket work views → HTTP client: loads and updates
- Analytics view → HTTP client: fetches analytics
- HTTP client → FastAPI app: HTTP requests
- FastAPI app → Authentication: registers
- FastAPI app → Ticket endpoints: registers
- FastAPI app → User endpoints: registers
- FastAPI app → Analytics endpoint: registers
- Authentication → JWT and passwords: hashes and issues tokens
- Ticket endpoints → Ticket lifecycle: delegates ticket work
- Ticket endpoints → Ticket lifecycle: requests suggestions
- Ticket lifecycle → Classification: classifies
- Ticket lifecycle → Similar and KB suggestions: finds suggestions
- Ticket lifecycle → SQL database: reads and writes
- Ticket lifecycle → Domain records: uses records
- Analytics endpoint → SQL database: aggregates ticket data
- Analytics endpoint → Domain records: queries records
- SLA escalation → SQL database: scans and updates
- SLA escalation → Domain records: queries records
- SLA escalation → Ticket lifecycle: logs history
- FastAPI app → SLA escalation: starts and stops
