# ravitharun/project-management-system architecture

> Architecture diagram of the GitHub repository ravitharun/project-management-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/ravitharun/project-management-system
- Repository: https://github.com/ravitharun/project-management-system

## Overview

This is a MERN project-management and team-collaboration platform. The principal workflow is that a user enters through the React application, selects a workspace, and manages project tasks; the Express backend handles API requests and persists domain records in MongoDB. Task creation can also create a Google Calendar event for a connected assignee. The README documents additional branches for sprints, automation, analytics, notifications, files, and real-time collaboration. Some of those branches are represented by their documented routes or source directories; unsampled implementation details and wiring are not inferred.

Main entry points: [`Server/server.js`](https://github.com/ravitharun/project-management-system/blob/main/Server/server.js) (Express server), [`Server/controller/WorkSpaceTask-Controller.js`](https://github.com/ravitharun/project-management-system/blob/main/Server/controller/WorkSpaceTask-Controller.js) (Task controller), [`Ui/src/Routes/AppRouter.tsx`](https://github.com/ravitharun/project-management-system/blob/main/Ui/src/Routes/AppRouter.tsx) (App router), [`Server/service/google-Calendar.service.js`](https://github.com/ravitharun/project-management-system/blob/main/Server/service/google-Calendar.service.js) (Calendar service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web application"]
  node_router["App router<br/>[AppRouter.tsx]"]
  node_workspaceui["Workspace UI<br/>[ViewWorkspace.tsx]"]
  node_taskui["Task UI<br/>[TaskLayout.tsx]"]
  node_clientapis["Client services"]
end

subgraph group_api["Backend API"]
  node_server["Express server<br/>[server.js]"]
  node_authroutes["Authentication routes<br/>[AuthRoutes.js]"]
  node_authcontroller["Authentication controller<br/>[Auth.js]"]
  node_workspaceroutes["Workspace routes<br/>[CreateWorkSpace.js]"]
  node_taskroutes["Task routes"]
end

subgraph group_domain["Project workflows"]
  node_taskcontroller["Task controller"]
  node_workspacecontroller["Workspace controller<br/>[WorkSpace.js]"]
  node_calendarservice["Calendar service"]
  node_sprints["Sprint management<br/>[SprintRouter.js]"]
  node_automation["Automation rules"]
  node_analytics["Analytics<br/>[AnalytcsRouter.js]"]
  node_notifications["Notifications"]
  node_activity["Activity logging"]
  node_resources["Project resources"]
end

subgraph group_infra["State and integrations"]
  node_taskdata[("Task records<br/>[WorkSapceTask.js]")]
  node_workspacedata[("Workspace records<br/>[Workspace.js]")]
  node_googlecalendar["Google Calendar"]
  node_socket["Live collaboration<br/>[scoket.js]"]
  node_redis[("Redis<br/>[redis.js]")]
end

node_user(("Team member"))

node_user -->|"uses"| node_router
node_router -->|"routes to"| node_workspaceui
node_router -->|"routes to"| node_taskui
node_workspaceui -->|"requests data"| node_clientapis
node_taskui -->|"requests data"| node_clientapis
node_clientapis -->|"calls API"| node_server
node_server -->|"mounts"| node_authroutes
node_authroutes -->|"dispatches"| node_authcontroller
node_server -->|"mounts"| node_workspaceroutes
node_server -->|"mounts"| node_taskroutes
node_server -->|"mounts"| node_sprints
node_server -->|"mounts"| node_automation
node_server -->|"mounts"| node_analytics
node_server -->|"mounts"| node_notifications
node_server -->|"mounts"| node_resources
node_taskcontroller -->|"reads and writes"| node_taskdata
node_taskcontroller -->|"reads"| node_workspacedata
node_workspacecontroller -->|"manages"| node_workspacedata
node_taskcontroller -->|"creates event"| node_calendarservice
node_calendarservice -->|"inserts event"| node_googlecalendar
node_calendarservice -->|"stores event ID"| node_taskdata
node_server -->|"initializes"| node_socket
node_server -->|"connects"| node_redis

click node_router "https://github.com/ravitharun/project-management-system/blob/main/Ui/src/Routes/AppRouter.tsx"
click node_workspaceui "https://github.com/ravitharun/project-management-system/blob/main/Ui/src/Components/Task/TaskBoard/ViewWorkspace.tsx"
click node_taskui "https://github.com/ravitharun/project-management-system/blob/main/Ui/src/Components/Task/TaskLayout.tsx"
click node_clientapis "https://github.com/ravitharun/project-management-system/tree/main/Ui/src/services"
click node_server "https://github.com/ravitharun/project-management-system/blob/main/Server/server.js"
click node_authroutes "https://github.com/ravitharun/project-management-system/blob/main/Server/routes/AuthRoutes.js"
click node_authcontroller "https://github.com/ravitharun/project-management-system/blob/main/Server/controller/Auth.js"
click node_workspaceroutes "https://github.com/ravitharun/project-management-system/blob/main/Server/routes/CreateWorkSpace.js"
click node_taskroutes "https://github.com/ravitharun/project-management-system/blob/main/Server/routes/WorkSpaceTask_router.js"
click node_taskcontroller "https://github.com/ravitharun/project-management-system/blob/main/Server/controller/WorkSpaceTask-Controller.js"
click node_workspacecontroller "https://github.com/ravitharun/project-management-system/blob/main/Server/controller/WorkSpace.js"
click node_taskdata "https://github.com/ravitharun/project-management-system/blob/main/Server/Models/WorkSapceTask.js"
click node_workspacedata "https://github.com/ravitharun/project-management-system/blob/main/Server/Models/Workspace.js"
click node_calendarservice "https://github.com/ravitharun/project-management-system/blob/main/Server/service/google-Calendar.service.js"
click node_sprints "https://github.com/ravitharun/project-management-system/blob/main/Server/routes/SprintRouter.js"
click node_automation "https://github.com/ravitharun/project-management-system/blob/main/Server/routes/Automation-Rule-Router.js"
click node_analytics "https://github.com/ravitharun/project-management-system/blob/main/Server/routes/AnalytcsRouter.js"
click node_notifications "https://github.com/ravitharun/project-management-system/blob/main/Server/routes/NotificatonsRouter.js"
click node_activity "https://github.com/ravitharun/project-management-system/blob/main/Server/controller/Activity-Controller.js"
click node_socket "https://github.com/ravitharun/project-management-system/blob/main/Server/scoket.js"
click node_redis "https://github.com/ravitharun/project-management-system/blob/main/Server/config/redis.js"
click node_resources "https://github.com/ravitharun/project-management-system/blob/main/Server/routes/FileUploadsProjectRouter.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_router,node_workspaceui,node_taskui,node_clientapis toneBlue
class node_server,node_authroutes,node_authcontroller,node_workspaceroutes,node_taskroutes toneAmber
class node_taskcontroller,node_workspacecontroller,node_calendarservice,node_sprints,node_automation,node_analytics,node_notifications,node_activity,node_resources toneMint
class node_taskdata,node_workspacedata,node_googlecalendar,node_socket,node_redis toneRose
class node_user toneIndigo
```

## Components

### Web application

- [App router](https://github.com/ravitharun/project-management-system/blob/main/Ui/src/Routes/AppRouter.tsx): `Ui/src/Routes/AppRouter.tsx`
- [Workspace UI](https://github.com/ravitharun/project-management-system/blob/main/Ui/src/Components/Task/TaskBoard/ViewWorkspace.tsx): `Ui/src/Components/Task/TaskBoard/ViewWorkspace.tsx`
- [Task UI](https://github.com/ravitharun/project-management-system/blob/main/Ui/src/Components/Task/TaskLayout.tsx): `Ui/src/Components/Task/TaskLayout.tsx`
- [Client services](https://github.com/ravitharun/project-management-system/tree/main/Ui/src/services): `Ui/src/services`

### Backend API

- [Express server](https://github.com/ravitharun/project-management-system/blob/main/Server/server.js): `Server/server.js`
- [Authentication routes](https://github.com/ravitharun/project-management-system/blob/main/Server/routes/AuthRoutes.js): `Server/routes/AuthRoutes.js`
- [Authentication controller](https://github.com/ravitharun/project-management-system/blob/main/Server/controller/Auth.js): `Server/controller/Auth.js`
- [Workspace routes](https://github.com/ravitharun/project-management-system/blob/main/Server/routes/CreateWorkSpace.js): `Server/routes/CreateWorkSpace.js`
- [Task routes](https://github.com/ravitharun/project-management-system/blob/main/Server/routes/WorkSpaceTask_router.js): `Server/routes/WorkSpaceTask_router.js`

### Project workflows

- [Task controller](https://github.com/ravitharun/project-management-system/blob/main/Server/controller/WorkSpaceTask-Controller.js): `Server/controller/WorkSpaceTask-Controller.js`
- [Workspace controller](https://github.com/ravitharun/project-management-system/blob/main/Server/controller/WorkSpace.js): `Server/controller/WorkSpace.js`
- [Calendar service](https://github.com/ravitharun/project-management-system/blob/main/Server/service/google-Calendar.service.js): `Server/service/google-Calendar.service.js`
- [Sprint management](https://github.com/ravitharun/project-management-system/blob/main/Server/routes/SprintRouter.js): `Server/routes/SprintRouter.js`
- [Automation rules](https://github.com/ravitharun/project-management-system/blob/main/Server/routes/Automation-Rule-Router.js): `Server/routes/Automation-Rule-Router.js`
- [Analytics](https://github.com/ravitharun/project-management-system/blob/main/Server/routes/AnalytcsRouter.js): `Server/routes/AnalytcsRouter.js`
- [Notifications](https://github.com/ravitharun/project-management-system/blob/main/Server/routes/NotificatonsRouter.js): `Server/routes/NotificatonsRouter.js`
- [Activity logging](https://github.com/ravitharun/project-management-system/blob/main/Server/controller/Activity-Controller.js): `Server/controller/Activity-Controller.js`
- [Project resources](https://github.com/ravitharun/project-management-system/blob/main/Server/routes/FileUploadsProjectRouter.js): `Server/routes/FileUploadsProjectRouter.js`

### State and integrations

- [Task records](https://github.com/ravitharun/project-management-system/blob/main/Server/Models/WorkSapceTask.js): `Server/Models/WorkSapceTask.js`
- [Workspace records](https://github.com/ravitharun/project-management-system/blob/main/Server/Models/Workspace.js): `Server/Models/Workspace.js`
- **Google Calendar**
- [Live collaboration](https://github.com/ravitharun/project-management-system/blob/main/Server/scoket.js): `Server/scoket.js`
- [Redis](https://github.com/ravitharun/project-management-system/blob/main/Server/config/redis.js): `Server/config/redis.js`

### Other components

- **Team member**

## Connections

- Team member → App router: uses
- App router → Workspace UI: routes to
- App router → Task UI: routes to
- Workspace UI → Client services: requests data
- Task UI → Client services: requests data
- Client services → Express server: calls API
- Express server → Authentication routes: mounts
- Authentication routes → Authentication controller: dispatches
- Express server → Workspace routes: mounts
- Express server → Task routes: mounts
- Express server → Sprint management: mounts
- Express server → Automation rules: mounts
- Express server → Analytics: mounts
- Express server → Notifications: mounts
- Express server → Project resources: mounts
- Task controller → Task records: reads and writes
- Task controller → Workspace records: reads
- Workspace controller → Workspace records: manages
- Task controller → Calendar service: creates event
- Calendar service → Google Calendar: inserts event
- Calendar service → Task records: stores event ID
- Express server → Live collaboration: initializes
- Express server → Redis: connects
