# murari123-byte/workflowpro-enterprise-project-task-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/murari123-byte/workflowpro-enterprise-project-task-management-system
- Repository: https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system

## Overview

WorkFlowPro is a project-and-task management application: users authenticate in the React client, then manage projects, memberships, assigned tasks, workflow transitions, and progress reports through a gateway and three Spring services. Auth owns accounts, roles, and tokens; Project and Task own their respective business data and call one another or Auth over REST for cross-service checks. Each service has its own database. The graph preserves documented dashboard, search, history, and administration capabilities. Internal edges are limited to excerpted calls; broader routing and storage relationships are based on the README.

Main entry points: [`frontend/src/App.tsx`](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/App.tsx) (React application), [`api-gateway/src/main/java/com/workflowpro/gateway/ApiGatewayApplication.java`](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/api-gateway/src/main/java/com/workflowpro/gateway/ApiGatewayApplication.java) (API gateway), [`project-service/src/main/java/com/workflowpro/project/service/ProjectService.java`](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/project-service/src/main/java/com/workflowpro/project/service/ProjectService.java) (Project and membership), [`task-service/src/main/java/com/workflowpro/task/service/TaskService.java`](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/task-service/src/main/java/com/workflowpro/task/service/TaskService.java) (Task workflow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_webapp["React application<br/>[App.tsx]"]
  node_project_views["Project views<br/>[ProjectsPage.tsx]"]
  node_task_views["Task views<br/>[TasksPage.tsx]"]
  node_dashboard["Dashboard<br/>[DashboardPage.tsx]"]
end

subgraph group_entry["API entry"]
  node_api_gateway["API gateway"]
end

subgraph group_identity["Identity and users"]
  node_auth_api["Auth API"]
  node_user_api["User API"]
  node_auth_logic["Auth and tokens<br/>[AuthService.java]"]
  node_user_logic["User administration<br/>[UserService.java]"]
  node_auth_db[("Auth database")]
end

subgraph group_projects["Project management"]
  node_project_api["Project API"]
  node_project_logic["Project and membership"]
  node_project_db[("Project database")]
end

subgraph group_tasks["Task management"]
  node_task_api["Task API"]
  node_task_logic["Task workflow<br/>[TaskService.java]"]
  node_task_db[("Task database")]
end

node_user(("User"))

node_user -->|"uses"| node_webapp
node_webapp -->|"routes to"| node_project_views
node_webapp -->|"routes to"| node_task_views
node_webapp -->|"routes to"| node_dashboard
node_webapp -->|"calls"| node_api_gateway
node_api_gateway -->|"routes auth"| node_auth_api
node_api_gateway -->|"routes users"| node_user_api
node_api_gateway -->|"routes projects"| node_project_api
node_api_gateway -->|"routes tasks"| node_task_api
node_auth_api -.->|"handles auth"| node_auth_logic
node_user_api -->|"handles users"| node_user_logic
node_auth_logic -->|"persists identity"| node_auth_db
node_user_logic -->|"persists users"| node_auth_db
node_project_api -->|"handles projects"| node_project_logic
node_project_logic -->|"persists projects"| node_project_db
node_project_logic -->|"checks task count"| node_task_logic
node_project_logic -->|"checks users"| node_user_logic
node_task_api -->|"handles tasks"| node_task_logic
node_task_logic -->|"persists tasks"| node_task_db
node_task_logic -->|"checks membership"| node_project_logic
node_task_logic -->|"looks up assignees"| node_user_logic

click node_webapp "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/App.tsx"
click node_project_views "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/pages/ProjectsPage.tsx"
click node_task_views "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/pages/TasksPage.tsx"
click node_dashboard "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/pages/DashboardPage.tsx"
click node_api_gateway "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/api-gateway/src/main/java/com/workflowpro/gateway/ApiGatewayApplication.java"
click node_auth_api "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/auth-service/src/main/java/com/workflowpro/auth/controller/AuthController.java"
click node_user_api "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/auth-service/src/main/java/com/workflowpro/auth/controller/UserController.java"
click node_auth_logic "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/auth-service/src/main/java/com/workflowpro/auth/service/AuthService.java"
click node_user_logic "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/auth-service/src/main/java/com/workflowpro/auth/service/UserService.java"
click node_project_api "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/project-service/src/main/java/com/workflowpro/project/controller/ProjectController.java"
click node_project_logic "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/project-service/src/main/java/com/workflowpro/project/service/ProjectService.java"
click node_task_api "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/task-service/src/main/java/com/workflowpro/task/controller/TaskController.java"
click node_task_logic "https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/task-service/src/main/java/com/workflowpro/task/service/TaskService.java"

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_project_views,node_task_views,node_dashboard,node_user toneBlue
class node_api_gateway toneAmber
class node_auth_api,node_user_api,node_auth_logic,node_user_logic,node_auth_db toneMint
class node_project_api,node_project_logic,node_project_db toneRose
class node_task_api,node_task_logic,node_task_db toneIndigo
```

## Components

### Web client

- [React application](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Project views](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/pages/ProjectsPage.tsx): `frontend/src/pages/ProjectsPage.tsx`
- [Task views](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/pages/TasksPage.tsx): `frontend/src/pages/TasksPage.tsx`
- [Dashboard](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/frontend/src/pages/DashboardPage.tsx): `frontend/src/pages/DashboardPage.tsx`

### API entry

- [API gateway](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/api-gateway/src/main/java/com/workflowpro/gateway/ApiGatewayApplication.java): `api-gateway/src/main/java/com/workflowpro/gateway/ApiGatewayApplication.java`

### Identity and users

- [Auth API](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/auth-service/src/main/java/com/workflowpro/auth/controller/AuthController.java): `auth-service/src/main/java/com/workflowpro/auth/controller/AuthController.java`
- [User API](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/auth-service/src/main/java/com/workflowpro/auth/controller/UserController.java): `auth-service/src/main/java/com/workflowpro/auth/controller/UserController.java`
- [Auth and tokens](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/auth-service/src/main/java/com/workflowpro/auth/service/AuthService.java): `auth-service/src/main/java/com/workflowpro/auth/service/AuthService.java`
- [User administration](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/auth-service/src/main/java/com/workflowpro/auth/service/UserService.java): `auth-service/src/main/java/com/workflowpro/auth/service/UserService.java`
- **Auth database**

### Project management

- [Project API](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/project-service/src/main/java/com/workflowpro/project/controller/ProjectController.java): `project-service/src/main/java/com/workflowpro/project/controller/ProjectController.java`
- [Project and membership](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/project-service/src/main/java/com/workflowpro/project/service/ProjectService.java): `project-service/src/main/java/com/workflowpro/project/service/ProjectService.java`
- **Project database**

### Task management

- [Task API](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/task-service/src/main/java/com/workflowpro/task/controller/TaskController.java): `task-service/src/main/java/com/workflowpro/task/controller/TaskController.java`
- [Task workflow](https://github.com/murari123-byte/workflowpro-enterprise-project-task-management-system/blob/main/task-service/src/main/java/com/workflowpro/task/service/TaskService.java): `task-service/src/main/java/com/workflowpro/task/service/TaskService.java`
- **Task database**

### Other components

- **User**

## Connections

- User → React application: uses
- React application → Project views: routes to (evidence: `frontend/src/App.tsx`)
- React application → Task views: routes to (evidence: `frontend/src/App.tsx`)
- React application → Dashboard: routes to (evidence: `frontend/src/App.tsx`)
- React application → API gateway: calls
- API gateway → Auth API: routes auth
- API gateway → User API: routes users
- API gateway → Project API: routes projects
- API gateway → Task API: routes tasks
- Auth API → Auth and tokens: handles auth (evidence: `auth-service/src/main/java/com/workflowpro/auth/controller/AuthController.java`)
- User API → User administration: handles users (evidence: `auth-service/src/main/java/com/workflowpro/auth/controller/UserController.java`)
- Auth and tokens → Auth database: persists identity
- User administration → Auth database: persists users
- Project API → Project and membership: handles projects (evidence: `project-service/src/main/java/com/workflowpro/project/controller/ProjectController.java`)
- Project and membership → Project database: persists projects
- Project and membership → Task workflow: checks task count (evidence: `project-service/src/main/java/com/workflowpro/project/service/ProjectService.java`)
- Project and membership → User administration: checks users (evidence: `project-service/src/main/java/com/workflowpro/project/service/ProjectService.java`)
- Task API → Task workflow: handles tasks (evidence: `task-service/src/main/java/com/workflowpro/task/controller/TaskController.java`)
- Task workflow → Task database: persists tasks
- Task workflow → Project and membership: checks membership (evidence: `task-service/src/main/java/com/workflowpro/task/service/TaskService.java`)
- Task workflow → User administration: looks up assignees (evidence: `task-service/src/main/java/com/workflowpro/task/service/TaskService.java`)
