# shivamsingh5112004/devtrack architecture

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

- Interactive diagram: https://gitdiagram.com/shivamsingh5112004/devtrack
- Repository: https://github.com/shivamsingh5112004/devtrack

## Overview

DevTrack is a project and issue tracking application with a React frontend and an Express API. Users work through the frontend; the backend exposes user, project, issue/comment, and dashboard routes, with controllers applying domain rules and Mongoose models representing persisted entities. The sampled server and route files show backend dispatch, and controller references show model usage. The frontend-to-backend connection is not visible in the provided excerpts, so it is shown as unverified; dashboard and some middleware implementations were not sampled.

Main entry points: [`backend/server.js`](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/server.js) (API server), [`backend/controllers/issueController.js`](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/issueController.js) (Issue management), [`backend/models/Project.js`](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/Project.js) (Project records), [`backend/models/Issue.js`](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/Issue.js) (Issue records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_frontend["DevTrack UI<br/>[App.jsx]"]
end

subgraph group_api["API runtime"]
  node_server["API server<br/>[server.js]"]
  node_dbconnect["DB connection<br/>[db.js]"]
  node_error["Error handler<br/>[errorMiddleware.js]"]
end

subgraph group_identity["Users and access"]
  node_user_routes["User routes<br/>[userRoutes.js]"]
  node_user_auth["Authentication<br/>[authMiddleware.js]"]
  node_admin_auth["Admin authorization<br/>[adminMiddleware.js]"]
  node_user_ctrl["User management<br/>[userController.js]"]
  node_user_model[("User records<br/>[User.js]")]
end

subgraph group_work["Project and issue work"]
  node_project_routes["Project routes<br/>[projectRoutes.js]"]
  node_project_ctrl["Project management"]
  node_project_model[("Project records<br/>[Project.js]")]
  node_issue_routes["Issue and comment routes<br/>[issueRoutes.js]"]
  node_issue_ctrl["Issue management<br/>[issueController.js]"]
  node_issue_model[("Issue records<br/>[Issue.js]")]
  node_comment_ctrl["Comment management"]
  node_comment_model[("Comment records<br/>[Comment.js]")]
  node_dashboard_routes["Dashboard routes<br/>[dashboardRoutes.js]"]
  node_dashboard_ctrl["Dashboard summaries"]
end

node_user(("User"))

node_user -->|"uses"| node_frontend
node_frontend -.->|"API requests"| node_server
node_server -->|"connects"| node_dbconnect
node_server -->|"mounts routes"| node_user_routes
node_server -->|"mounts routes"| node_project_routes
node_server -->|"mounts routes"| node_issue_routes
node_server -->|"mounts routes"| node_dashboard_routes
node_server -->|"handles errors"| node_error
node_user_routes -->|"dispatches to"| node_user_ctrl
node_user_routes -->|"protects routes"| node_user_auth
node_user_routes -->|"gates admin actions"| node_admin_auth
node_user_ctrl -->|"reads and writes"| node_user_model
node_user_ctrl -->|"checks and updates"| node_project_model
node_user_ctrl -->|"checks and updates"| node_issue_model
node_project_routes -->|"dispatches to"| node_project_ctrl
node_project_routes -->|"protects routes"| node_user_auth
node_project_ctrl -->|"reads and writes"| node_project_model
node_project_ctrl -->|"validates members"| node_user_model
node_project_ctrl -->|"deletes project issues"| node_issue_model
node_issue_routes -->|"dispatches issue actions"| node_issue_ctrl
node_issue_routes -->|"dispatches comments"| node_comment_ctrl
node_issue_routes -->|"protects routes"| node_user_auth
node_issue_ctrl -->|"reads and writes"| node_issue_model
node_issue_ctrl -->|"validates project"| node_project_model
node_issue_ctrl -->|"validates assignee"| node_user_model
node_issue_ctrl -->|"deletes issue comments"| node_comment_model
node_comment_ctrl -->|"reads and writes"| node_comment_model
node_comment_ctrl -->|"checks issue"| node_issue_model
node_comment_ctrl -->|"checks membership"| node_project_model
node_dashboard_routes -->|"dispatches to"| node_dashboard_ctrl
node_dashboard_ctrl -->|"reads projects"| node_project_model
node_dashboard_ctrl -->|"reads issues"| node_issue_model

click node_frontend "https://github.com/shivamsingh5112004/devtrack/blob/main/frontend/src/App.jsx"
click node_server "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/server.js"
click node_dbconnect "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/config/db.js"
click node_error "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/middleware/errorMiddleware.js"
click node_user_routes "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/routes/userRoutes.js"
click node_user_auth "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/middleware/authMiddleware.js"
click node_admin_auth "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/middleware/adminMiddleware.js"
click node_user_ctrl "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/userController.js"
click node_user_model "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/User.js"
click node_project_routes "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/routes/projectRoutes.js"
click node_project_ctrl "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/projectController.js"
click node_project_model "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/Project.js"
click node_issue_routes "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/routes/issueRoutes.js"
click node_issue_ctrl "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/issueController.js"
click node_issue_model "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/Issue.js"
click node_comment_ctrl "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/commentController.js"
click node_comment_model "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/Comment.js"
click node_dashboard_routes "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/routes/dashboardRoutes.js"
click node_dashboard_ctrl "https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/dashboardController.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_frontend,node_user toneBlue
class node_server,node_dbconnect,node_error toneAmber
class node_user_routes,node_user_auth,node_admin_auth,node_user_ctrl,node_user_model toneMint
class node_project_routes,node_project_ctrl,node_project_model,node_issue_routes,node_issue_ctrl,node_issue_model,node_comment_ctrl,node_comment_model,node_dashboard_routes,node_dashboard_ctrl toneRose
```

## Components

### Web client

- [DevTrack UI](https://github.com/shivamsingh5112004/devtrack/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`

### API runtime

- [API server](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/server.js): `backend/server.js`
- [DB connection](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/config/db.js): `backend/config/db.js`
- [Error handler](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/middleware/errorMiddleware.js): `backend/middleware/errorMiddleware.js`

### Users and access

- [User routes](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/routes/userRoutes.js): `backend/routes/userRoutes.js`
- [Authentication](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/middleware/authMiddleware.js): `backend/middleware/authMiddleware.js`
- [Admin authorization](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/middleware/adminMiddleware.js): `backend/middleware/adminMiddleware.js`
- [User management](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/userController.js): `backend/controllers/userController.js`
- [User records](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/User.js): `backend/models/User.js`

### Project and issue work

- [Project routes](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/routes/projectRoutes.js): `backend/routes/projectRoutes.js`
- [Project management](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/projectController.js): `backend/controllers/projectController.js`
- [Project records](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/Project.js): `backend/models/Project.js`
- [Issue and comment routes](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/routes/issueRoutes.js): `backend/routes/issueRoutes.js`
- [Issue management](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/issueController.js): `backend/controllers/issueController.js`
- [Issue records](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/Issue.js): `backend/models/Issue.js`
- [Comment management](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/commentController.js): `backend/controllers/commentController.js`
- [Comment records](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/models/Comment.js): `backend/models/Comment.js`
- [Dashboard routes](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/routes/dashboardRoutes.js): `backend/routes/dashboardRoutes.js`
- [Dashboard summaries](https://github.com/shivamsingh5112004/devtrack/blob/main/backend/controllers/dashboardController.js): `backend/controllers/dashboardController.js`

### Other components

- **User**

## Connections

- User → DevTrack UI: uses
- DevTrack UI → API server: API requests
- API server → DB connection: connects (evidence: `backend/server.js`)
- API server → User routes: mounts routes (evidence: `backend/server.js`)
- API server → Project routes: mounts routes (evidence: `backend/server.js`)
- API server → Issue and comment routes: mounts routes (evidence: `backend/server.js`)
- API server → Dashboard routes: mounts routes (evidence: `backend/server.js`)
- API server → Error handler: handles errors (evidence: `backend/server.js`)
- User routes → User management: dispatches to (evidence: `backend/routes/userRoutes.js`)
- User routes → Authentication: protects routes (evidence: `backend/routes/userRoutes.js`)
- User routes → Admin authorization: gates admin actions (evidence: `backend/routes/userRoutes.js`)
- User management → User records: reads and writes (evidence: `backend/controllers/userController.js`)
- User management → Project records: checks and updates (evidence: `backend/controllers/userController.js`)
- User management → Issue records: checks and updates (evidence: `backend/controllers/userController.js`)
- Project routes → Project management: dispatches to (evidence: `backend/routes/projectRoutes.js`)
- Project routes → Authentication: protects routes (evidence: `backend/routes/projectRoutes.js`)
- Project management → Project records: reads and writes (evidence: `backend/controllers/projectController.js`)
- Project management → User records: validates members (evidence: `backend/controllers/projectController.js`)
- Project management → Issue records: deletes project issues (evidence: `backend/controllers/projectController.js`)
- Issue and comment routes → Issue management: dispatches issue actions (evidence: `backend/routes/issueRoutes.js`)
- Issue and comment routes → Comment management: dispatches comments (evidence: `backend/routes/issueRoutes.js`)
- Issue and comment routes → Authentication: protects routes (evidence: `backend/routes/issueRoutes.js`)
- Issue management → Issue records: reads and writes (evidence: `backend/controllers/issueController.js`)
- Issue management → Project records: validates project (evidence: `backend/controllers/issueController.js`)
- Issue management → User records: validates assignee (evidence: `backend/controllers/issueController.js`)
- Issue management → Comment records: deletes issue comments (evidence: `backend/controllers/issueController.js`)
- Comment management → Comment records: reads and writes (evidence: `backend/controllers/commentController.js`)
- Comment management → Issue records: checks issue (evidence: `backend/controllers/commentController.js`)
- Comment management → Project records: checks membership (evidence: `backend/controllers/commentController.js`)
- Dashboard routes → Dashboard summaries: dispatches to (evidence: `backend/routes/dashboardRoutes.js`)
- Dashboard summaries → Project records: reads projects (evidence: `backend/controllers/dashboardController.js`)
- Dashboard summaries → Issue records: reads issues (evidence: `backend/controllers/dashboardController.js`)
