# jnvcprasad1507/task-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/jnvcprasad1507/task-management-system
- Repository: https://github.com/jnvcprasad1507/task-management-system

## Overview

The Task Management System lets authenticated users manage tasks and related activity, with administrators managing users and role-gated actions. The principal flow is browser interaction through React routes and API clients to FastAPI endpoints, then task services and persistence. The README also documents authentication, comments, attachments, notifications, dashboards, and profiles. The task path is supported by sampled source; other capabilities are represented from the README and tree, so uncertain internal call wiring is omitted.

Main entry points: [`backend/app/services`](https://github.com/jnvcprasad1507/task-management-system/tree/main/backend/app/services) (Domain services), [`backend/app/main.py`](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/main.py) (FastAPI app), [`backend/app/repositories/task_repository.py`](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/repositories/task_repository.py) (Task repository), [`frontend/src/routes/AppRoutes.tsx`](https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/routes/AppRoutes.tsx) (App routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_routes["App routes<br/>[AppRoutes.tsx]"]
  node_taskpages["Task pages<br/>[TaskListPage.tsx]"]
  node_taskhook["Task state<br/>[useTasks.ts]"]
  node_taskclient["Task API client<br/>[tasks.api.ts]"]
  node_authpages["Auth and profile<br/>[LoginPage.tsx]"]
  node_otherclients["Other API clients"]
end

subgraph group_api["API and domain"]
  node_backend["FastAPI app<br/>[main.py]"]
  node_taskroute["Task endpoints<br/>[tasks.py]"]
  node_authroute["Auth endpoints<br/>[auth.py]"]
  node_domainroutes["Domain endpoints"]
  node_taskservice["Task service<br/>[task_service.py]"]
  node_domainservices["Domain services"]
end

subgraph group_data["Persistence and security"]
  node_taskrepo["Task repository<br/>[task_repository.py]"]
  node_userrepo["User repository<br/>[user_repository.py]"]
  node_database[("PostgreSQL")]
  node_models["ORM models"]
  node_security["Auth security<br/>[security.py]"]
end

subgraph group_activity["Task activity"]
  node_notificationtasks["Notification creation"]
  node_audit["Audit logging<br/>[audit_service.py]"]
  node_files["Attachment handling"]
end

node_browser(("User"))

node_browser -->|"navigates"| node_routes
node_routes -->|"routes to"| node_taskpages
node_taskpages -->|"uses state"| node_taskhook
node_taskhook -->|"calls"| node_taskclient
node_taskclient -->|"HTTP REST"| node_backend
node_backend -->|"dispatches"| node_taskroute
node_taskroute -->|"calls"| node_taskservice
node_taskservice -->|"uses"| node_taskrepo
node_taskrepo -->|"queries and writes"| node_database
node_taskrepo -->|"queries"| node_models
node_browser -->|"uses"| node_authpages
node_authpages -->|"requests"| node_otherclients
node_otherclients -->|"HTTP REST"| node_backend
node_backend -->|"dispatches"| node_authroute
node_authroute -->|"handles auth"| node_domainservices
node_domainservices -->|"uses users"| node_userrepo
node_userrepo -->|"queries and writes"| node_database
node_domainservices -->|"hashes and signs"| node_security
node_backend -->|"dispatches"| node_domainroutes
node_domainroutes -->|"domain operations"| node_domainservices
node_domainservices -.->|"notification support"| node_notificationtasks
node_domainservices -.->|"audit support"| node_audit
node_domainservices -.->|"attachment support"| node_files

click node_routes "https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/routes/AppRoutes.tsx"
click node_taskpages "https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/pages/tasks/TaskListPage.tsx"
click node_taskhook "https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/hooks/useTasks.ts"
click node_taskclient "https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/api/tasks.api.ts"
click node_authpages "https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/pages/auth/LoginPage.tsx"
click node_otherclients "https://github.com/jnvcprasad1507/task-management-system/tree/main/frontend/src/api"
click node_backend "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/main.py"
click node_taskroute "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/api/routes/tasks.py"
click node_authroute "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/api/routes/auth.py"
click node_domainroutes "https://github.com/jnvcprasad1507/task-management-system/tree/main/backend/app/api/routes"
click node_taskservice "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/services/task_service.py"
click node_domainservices "https://github.com/jnvcprasad1507/task-management-system/tree/main/backend/app/services"
click node_taskrepo "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/repositories/task_repository.py"
click node_userrepo "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/repositories/user_repository.py"
click node_models "https://github.com/jnvcprasad1507/task-management-system/tree/main/backend/app/models"
click node_security "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/core/security.py"
click node_notificationtasks "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/background/notification_tasks.py"
click node_audit "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/services/audit_service.py"
click node_files "https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/services/attachment_service.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_routes,node_taskpages,node_taskhook,node_taskclient,node_authpages,node_otherclients,node_browser toneBlue
class node_backend,node_taskroute,node_authroute,node_domainroutes,node_taskservice,node_domainservices toneAmber
class node_taskrepo,node_userrepo,node_database,node_models,node_security toneMint
class node_notificationtasks,node_audit,node_files toneRose
```

## Components

### Web application

- [App routes](https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/routes/AppRoutes.tsx): `frontend/src/routes/AppRoutes.tsx`
- [Task pages](https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/pages/tasks/TaskListPage.tsx): `frontend/src/pages/tasks/TaskListPage.tsx`
- [Task state](https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/hooks/useTasks.ts): `frontend/src/hooks/useTasks.ts`
- [Task API client](https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/api/tasks.api.ts): `frontend/src/api/tasks.api.ts`
- [Auth and profile](https://github.com/jnvcprasad1507/task-management-system/blob/main/frontend/src/pages/auth/LoginPage.tsx): `frontend/src/pages/auth/LoginPage.tsx`
- [Other API clients](https://github.com/jnvcprasad1507/task-management-system/tree/main/frontend/src/api): `frontend/src/api`

### API and domain

- [FastAPI app](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/main.py): `backend/app/main.py`
- [Task endpoints](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/api/routes/tasks.py): `backend/app/api/routes/tasks.py`
- [Auth endpoints](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/api/routes/auth.py): `backend/app/api/routes/auth.py`
- [Domain endpoints](https://github.com/jnvcprasad1507/task-management-system/tree/main/backend/app/api/routes): `backend/app/api/routes`
- [Task service](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/services/task_service.py): `backend/app/services/task_service.py`
- [Domain services](https://github.com/jnvcprasad1507/task-management-system/tree/main/backend/app/services): `backend/app/services`

### Persistence and security

- [Task repository](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/repositories/task_repository.py): `backend/app/repositories/task_repository.py`
- [User repository](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/repositories/user_repository.py): `backend/app/repositories/user_repository.py`
- **PostgreSQL**
- [ORM models](https://github.com/jnvcprasad1507/task-management-system/tree/main/backend/app/models): `backend/app/models`
- [Auth security](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/core/security.py): `backend/app/core/security.py`

### Task activity

- [Notification creation](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/background/notification_tasks.py): `backend/app/background/notification_tasks.py`
- [Audit logging](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/services/audit_service.py): `backend/app/services/audit_service.py`
- [Attachment handling](https://github.com/jnvcprasad1507/task-management-system/blob/main/backend/app/services/attachment_service.py): `backend/app/services/attachment_service.py`

### Other components

- **User**

## Connections

- User → App routes: navigates
- App routes → Task pages: routes to
- Task pages → Task state: uses state
- Task state → Task API client: calls
- Task API client → FastAPI app: HTTP REST
- FastAPI app → Task endpoints: dispatches
- Task endpoints → Task service: calls
- Task service → Task repository: uses
- Task repository → PostgreSQL: queries and writes
- Task repository → ORM models: queries
- User → Auth and profile: uses
- Auth and profile → Other API clients: requests
- Other API clients → FastAPI app: HTTP REST
- FastAPI app → Auth endpoints: dispatches
- Auth endpoints → Domain services: handles auth
- Domain services → User repository: uses users
- User repository → PostgreSQL: queries and writes
- Domain services → Auth security: hashes and signs
- FastAPI app → Domain endpoints: dispatches
- Domain endpoints → Domain services: domain operations
- Domain services → Notification creation: notification support
- Domain services → Audit logging: audit support
- Domain services → Attachment handling: attachment support
