# vandit0007/ops-pilot architecture

> Architecture diagram of the GitHub repository vandit0007/ops-pilot, 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/vandit0007/ops-pilot
- Repository: https://github.com/vandit0007/ops-pilot

## Overview

OpsPilot is an incident-management cockpit: users authenticate, view and manage an issue queue, and admins inspect operational telemetry. The graph preserves the documented list/Kanban workflow, least-loaded assignment, SLA detection, role controls, analytics, and audit trail. Some feature paths and wiring come from the README and tree; sampled source confirms the issue and authentication flows, while unsampled analytics and UI internals are shown only at their supported module paths.

Main entry points: [`frontend/src/pages/Dashboard.jsx`](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/pages/Dashboard.jsx) (Issue dashboard), [`backend/server.js`](https://github.com/vandit0007/ops-pilot/blob/main/backend/server.js) (Express API server), [`frontend/src/services/api.js`](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/api.js) (HTTP client), [`frontend/src/App.jsx`](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/App.jsx) (React application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web cockpit"]
  node_webapp["React application<br/>[App.jsx]"]
  node_auth_ui["Login and session<br/>[AuthContext.jsx]"]
  node_dashboard["Issue dashboard<br/>[Dashboard.jsx]"]
  node_board["Kanban board<br/>[KanbanBoard.jsx]"]
  node_issue_modal["Create issue"]
  node_analytics_ui["Telemetry dashboard<br/>[Analytics.jsx]"]
  node_issue_client["Issue API client<br/>[issueService.js]"]
  node_analytics_client["Analytics API client"]
  node_user_client["Team API client<br/>[userService.js]"]
  node_http_client["HTTP client<br/>[api.js]"]
end

subgraph group_api["API workflows"]
  node_api_server["Express API server<br/>[server.js]"]
  node_auth_routes["Authentication routes<br/>[authRoutes.js]"]
  node_auth_controller["Authentication<br/>[authController.js]"]
  node_issue_routes["Issue routes<br/>[issueRoutes.js]"]
  node_issue_controller["Issue workflow<br/>[issueController.js]"]
  node_auth_guard["JWT verification<br/>[authMiddleware.js]"]
  node_analytics_routes["Analytics routes<br/>[analyticsRoutes.js]"]
  node_analytics_controller["Analytics metrics"]
  node_user_routes["Team routes<br/>[userRoutes.js]"]
end

subgraph group_data["Operational data"]
  node_user_model[("Team accounts<br/>[User.js]")]
  node_issue_model[("Issues and SLA state<br/>[Issue.js]")]
  node_audit_model[("Audit trail<br/>[AuditLog.js]")]
end

node_engineer(("Engineer or admin"))
node_mongo[("MongoDB")]

node_engineer -->|"uses"| node_webapp
node_webapp -->|"provides session"| node_auth_ui
node_webapp -->|"routes to"| node_dashboard
node_webapp -->|"admin route"| node_analytics_ui
node_dashboard -->|"shows queue"| node_board
node_dashboard -->|"creates issues"| node_issue_modal
node_dashboard -->|"requests issues"| node_issue_client
node_analytics_ui -->|"requests metrics"| node_analytics_client
node_dashboard -->|"loads team"| node_user_client
node_auth_ui -->|"sends login"| node_http_client
node_issue_client -->|"sends issue requests"| node_http_client
node_analytics_client -->|"sends metric requests"| node_http_client
node_user_client -->|"sends team requests"| node_http_client
node_http_client -->|"HTTP requests"| node_api_server
node_api_server -->|"dispatches"| node_auth_routes
node_api_server -->|"dispatches"| node_issue_routes
node_api_server -->|"dispatches"| node_analytics_routes
node_api_server -->|"dispatches"| node_user_routes
node_auth_routes -->|"invokes"| node_auth_controller
node_auth_controller -->|"reads and creates"| node_user_model
node_issue_routes -->|"protects endpoints"| node_auth_guard
node_issue_routes -->|"invokes"| node_issue_controller
node_issue_controller -->|"loads and assigns"| node_user_model
node_issue_controller -->|"creates and updates"| node_issue_model
node_issue_controller -->|"records actions"| node_audit_model
node_analytics_routes -->|"protects endpoints"| node_auth_guard
node_analytics_routes -->|"invokes"| node_analytics_controller
node_user_routes -->|"protects endpoint"| node_auth_guard
node_user_routes -->|"reads team"| node_user_model
node_user_model -->|"persists accounts"| node_mongo
node_issue_model -->|"persists issues"| node_mongo
node_audit_model -->|"persists audit records"| node_mongo

click node_webapp "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/App.jsx"
click node_auth_ui "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/context/AuthContext.jsx"
click node_dashboard "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/pages/Dashboard.jsx"
click node_board "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/components/KanbanBoard.jsx"
click node_issue_modal "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/components/CreateIssueModal.jsx"
click node_analytics_ui "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/pages/Analytics.jsx"
click node_issue_client "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/issueService.js"
click node_analytics_client "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/analyticsService.js"
click node_user_client "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/userService.js"
click node_http_client "https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/api.js"
click node_api_server "https://github.com/vandit0007/ops-pilot/blob/main/backend/server.js"
click node_auth_routes "https://github.com/vandit0007/ops-pilot/blob/main/backend/routes/authRoutes.js"
click node_auth_controller "https://github.com/vandit0007/ops-pilot/blob/main/backend/controllers/authController.js"
click node_issue_routes "https://github.com/vandit0007/ops-pilot/blob/main/backend/routes/issueRoutes.js"
click node_issue_controller "https://github.com/vandit0007/ops-pilot/blob/main/backend/controllers/issueController.js"
click node_auth_guard "https://github.com/vandit0007/ops-pilot/blob/main/backend/middleware/authMiddleware.js"
click node_analytics_routes "https://github.com/vandit0007/ops-pilot/blob/main/backend/routes/analyticsRoutes.js"
click node_analytics_controller "https://github.com/vandit0007/ops-pilot/blob/main/backend/controllers/analyticsController.js"
click node_user_routes "https://github.com/vandit0007/ops-pilot/blob/main/backend/routes/userRoutes.js"
click node_user_model "https://github.com/vandit0007/ops-pilot/blob/main/backend/models/User.js"
click node_issue_model "https://github.com/vandit0007/ops-pilot/blob/main/backend/models/Issue.js"
click node_audit_model "https://github.com/vandit0007/ops-pilot/blob/main/backend/models/AuditLog.js"

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_webapp,node_auth_ui,node_dashboard,node_board,node_issue_modal,node_analytics_ui,node_issue_client,node_analytics_client,node_user_client,node_http_client toneBlue
class node_api_server,node_auth_routes,node_auth_controller,node_issue_routes,node_issue_controller,node_auth_guard,node_analytics_routes,node_analytics_controller,node_user_routes,node_mongo toneAmber
class node_user_model,node_issue_model,node_audit_model toneMint
class node_engineer toneIndigo
```

## Components

### Web cockpit

- [React application](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Login and session](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Issue dashboard](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/pages/Dashboard.jsx): `frontend/src/pages/Dashboard.jsx`
- [Kanban board](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/components/KanbanBoard.jsx): `frontend/src/components/KanbanBoard.jsx`
- [Create issue](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/components/CreateIssueModal.jsx): `frontend/src/components/CreateIssueModal.jsx`
- [Telemetry dashboard](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/pages/Analytics.jsx): `frontend/src/pages/Analytics.jsx`
- [Issue API client](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/issueService.js): `frontend/src/services/issueService.js`
- [Analytics API client](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/analyticsService.js): `frontend/src/services/analyticsService.js`
- [Team API client](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/userService.js): `frontend/src/services/userService.js`
- [HTTP client](https://github.com/vandit0007/ops-pilot/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`

### API workflows

- [Express API server](https://github.com/vandit0007/ops-pilot/blob/main/backend/server.js): `backend/server.js`
- [Authentication routes](https://github.com/vandit0007/ops-pilot/blob/main/backend/routes/authRoutes.js): `backend/routes/authRoutes.js`
- [Authentication](https://github.com/vandit0007/ops-pilot/blob/main/backend/controllers/authController.js): `backend/controllers/authController.js`
- [Issue routes](https://github.com/vandit0007/ops-pilot/blob/main/backend/routes/issueRoutes.js): `backend/routes/issueRoutes.js`
- [Issue workflow](https://github.com/vandit0007/ops-pilot/blob/main/backend/controllers/issueController.js): `backend/controllers/issueController.js`
- [JWT verification](https://github.com/vandit0007/ops-pilot/blob/main/backend/middleware/authMiddleware.js): `backend/middleware/authMiddleware.js`
- [Analytics routes](https://github.com/vandit0007/ops-pilot/blob/main/backend/routes/analyticsRoutes.js): `backend/routes/analyticsRoutes.js`
- [Analytics metrics](https://github.com/vandit0007/ops-pilot/blob/main/backend/controllers/analyticsController.js): `backend/controllers/analyticsController.js`
- [Team routes](https://github.com/vandit0007/ops-pilot/blob/main/backend/routes/userRoutes.js): `backend/routes/userRoutes.js`

### Operational data

- [Team accounts](https://github.com/vandit0007/ops-pilot/blob/main/backend/models/User.js): `backend/models/User.js`
- [Issues and SLA state](https://github.com/vandit0007/ops-pilot/blob/main/backend/models/Issue.js): `backend/models/Issue.js`
- [Audit trail](https://github.com/vandit0007/ops-pilot/blob/main/backend/models/AuditLog.js): `backend/models/AuditLog.js`

### Other components

- **Engineer or admin**
- **MongoDB**

## Connections

- Engineer or admin → React application: uses
- React application → Login and session: provides session
- React application → Issue dashboard: routes to
- React application → Telemetry dashboard: admin route
- Issue dashboard → Kanban board: shows queue
- Issue dashboard → Create issue: creates issues
- Issue dashboard → Issue API client: requests issues
- Telemetry dashboard → Analytics API client: requests metrics
- Issue dashboard → Team API client: loads team
- Login and session → HTTP client: sends login
- Issue API client → HTTP client: sends issue requests
- Analytics API client → HTTP client: sends metric requests
- Team API client → HTTP client: sends team requests
- HTTP client → Express API server: HTTP requests
- Express API server → Authentication routes: dispatches
- Express API server → Issue routes: dispatches
- Express API server → Analytics routes: dispatches
- Express API server → Team routes: dispatches
- Authentication routes → Authentication: invokes
- Authentication → Team accounts: reads and creates
- Issue routes → JWT verification: protects endpoints
- Issue routes → Issue workflow: invokes
- Issue workflow → Team accounts: loads and assigns
- Issue workflow → Issues and SLA state: creates and updates
- Issue workflow → Audit trail: records actions
- Analytics routes → JWT verification: protects endpoints
- Analytics routes → Analytics metrics: invokes
- Team routes → JWT verification: protects endpoint
- Team routes → Team accounts: reads team
- Team accounts → MongoDB: persists accounts
- Issues and SLA state → MongoDB: persists issues
- Audit trail → MongoDB: persists audit records
