# alihayek8/task-management-system architecture

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

## Overview

TaskFlow is a project-and-task management application: users authenticate, manage projects, track project tasks across Kanban statuses, and view dashboard and profile information. The graph follows documented frontend features through their API services and backend controllers to domain services and repositories. Some frontend component wiring and unsampled backend behavior are represented only where the README or module roles support it; no specific dashboard aggregation flow is assumed.

Main entry points: [`backend/src/main/java/com/taskmanagementsystem/backend/security/JwtAuthFilter.java`](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/security/JwtAuthFilter.java) (JWT filter), [`backend/src/main/java/com/taskmanagementsystem/backend/repository/UserRepository.java`](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/repository/UserRepository.java) (User repository), [`backend/src/main/java/com/taskmanagementsystem/backend/service/TaskService.java`](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/service/TaskService.java) (Task service), [`backend/src/main/java/com/taskmanagementsystem/backend/service/AuthService.java`](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/service/AuthService.java) (Auth service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["User interface"]
  node_auth_ui["Auth pages<br/>[auth.component.ts]"]
  node_dashboard["Dashboard"]
  node_projects_ui["Projects list"]
  node_project_form["Project form"]
  node_task_board["Task board"]
  node_task_form["Task form"]
  node_profile_ui["Profile page"]
  node_auth_client["Auth service<br/>[auth.service.ts]"]
  node_project_client["Project service<br/>[project.service.ts]"]
  node_task_client["Task service<br/>[task.service.ts]"]
  node_user_client["User service<br/>[user.service.ts]"]
end

subgraph group_api["Backend API"]
  node_auth_api["Auth controller"]
  node_project_api["Project controller"]
  node_task_api["Task controller"]
  node_user_api["User controller"]
end

subgraph group_domain["Domain and persistence"]
  node_auth_domain["Auth service<br/>[AuthService.java]"]
  node_project_domain["Project service"]
  node_task_domain["Task service<br/>[TaskService.java]"]
  node_user_repo["User repository"]
  node_project_repo["Project repository"]
  node_task_repo["Task repository"]
  node_database[("PostgreSQL")]
end

subgraph group_security["Authentication"]
  node_security_config["Security config"]
  node_jwt_filter["JWT filter<br/>[JwtAuthFilter.java]"]
  node_jwt_util["JWT utility<br/>[JwtUtil.java]"]
end

node_user(("User"))

node_user -->|"uses"| node_auth_ui
node_user -->|"views"| node_dashboard
node_user -->|"manages"| node_projects_ui
node_user -->|"updates"| node_profile_ui
node_auth_ui -->|"submits credentials"| node_auth_client
node_projects_ui -->|"loads projects"| node_project_client
node_project_form -->|"saves project"| node_project_client
node_task_board -->|"loads and updates"| node_task_client
node_task_form -->|"saves task"| node_task_client
node_profile_ui -->|"reads and edits"| node_user_client
node_auth_client -->|"HTTP requests"| node_auth_api
node_project_client -->|"HTTP requests"| node_project_api
node_task_client -->|"HTTP requests"| node_task_api
node_user_client -->|"HTTP requests"| node_user_api
node_auth_api -->|"delegates"| node_auth_domain
node_project_api -->|"delegates"| node_project_domain
node_task_api -->|"delegates"| node_task_domain
node_user_api --> node_user_repo
node_auth_domain -->|"reads and saves"| node_user_repo
node_auth_domain -->|"generates token"| node_jwt_util
node_project_domain -->|"reads and writes"| node_project_repo
node_project_domain -->|"looks up owner"| node_user_repo
node_task_domain -->|"reads and writes"| node_task_repo
node_task_domain -->|"looks up project"| node_project_repo
node_task_domain -->|"looks up assignee"| node_user_repo
node_user_repo -->|"persists users"| node_database
node_project_repo -->|"persists projects"| node_database
node_task_repo -->|"persists tasks"| node_database
node_security_config -->|"configures filter"| node_jwt_filter
node_jwt_filter -->|"validates token"| node_jwt_util
node_jwt_filter -->|"loads user"| node_user_repo
node_jwt_filter -->|"guards requests"| node_auth_api
node_jwt_filter -->|"guards requests"| node_project_api
node_jwt_filter -->|"guards requests"| node_task_api
node_jwt_filter -->|"guards requests"| node_user_api

click node_auth_ui "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/auth/auth.component.ts"
click node_dashboard "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/dashboard/dashboard.component.ts"
click node_projects_ui "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/projects/projects-list/projects-list.component.ts"
click node_project_form "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/projects/project-form/project-form.component.ts"
click node_task_board "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/tasks/task-board/task-board.component.ts"
click node_task_form "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/tasks/task-form/task-form.component.ts"
click node_profile_ui "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/profile/profile.component.ts"
click node_auth_client "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/core/services/auth/auth.service.ts"
click node_project_client "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/core/services/project/project.service.ts"
click node_task_client "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/core/services/task/task.service.ts"
click node_user_client "https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/core/services/user/user.service.ts"
click node_auth_api "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/controller/AuthController.java"
click node_project_api "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/controller/ProjectController.java"
click node_task_api "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/controller/TaskController.java"
click node_user_api "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/controller/UserController.java"
click node_auth_domain "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/service/AuthService.java"
click node_project_domain "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/service/ProjectService.java"
click node_task_domain "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/service/TaskService.java"
click node_user_repo "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/repository/UserRepository.java"
click node_project_repo "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/repository/ProjectRepository.java"
click node_task_repo "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/repository/TaskRepository.java"
click node_security_config "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/security/SecurityConfig.java"
click node_jwt_filter "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/security/JwtAuthFilter.java"
click node_jwt_util "https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/security/JwtUtil.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_auth_ui,node_dashboard,node_projects_ui,node_project_form,node_task_board,node_task_form,node_profile_ui,node_auth_client,node_project_client,node_task_client,node_user_client,node_user toneBlue
class node_auth_api,node_project_api,node_task_api,node_user_api toneAmber
class node_auth_domain,node_project_domain,node_task_domain,node_user_repo,node_project_repo,node_task_repo,node_database toneMint
class node_security_config,node_jwt_filter,node_jwt_util toneRose
```

## Components

### User interface

- [Auth pages](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/auth/auth.component.ts): `frontend/taskflow-frontend/src/app/features/auth/auth.component.ts`
- [Dashboard](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/dashboard/dashboard.component.ts): `frontend/taskflow-frontend/src/app/features/dashboard/dashboard.component.ts`
- [Projects list](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/projects/projects-list/projects-list.component.ts): `frontend/taskflow-frontend/src/app/features/projects/projects-list/projects-list.component.ts`
- [Project form](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/projects/project-form/project-form.component.ts): `frontend/taskflow-frontend/src/app/features/projects/project-form/project-form.component.ts`
- [Task board](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/tasks/task-board/task-board.component.ts): `frontend/taskflow-frontend/src/app/features/tasks/task-board/task-board.component.ts`
- [Task form](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/tasks/task-form/task-form.component.ts): `frontend/taskflow-frontend/src/app/features/tasks/task-form/task-form.component.ts`
- [Profile page](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/features/profile/profile.component.ts): `frontend/taskflow-frontend/src/app/features/profile/profile.component.ts`
- [Auth service](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/core/services/auth/auth.service.ts): `frontend/taskflow-frontend/src/app/core/services/auth/auth.service.ts`
- [Project service](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/core/services/project/project.service.ts): `frontend/taskflow-frontend/src/app/core/services/project/project.service.ts`
- [Task service](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/core/services/task/task.service.ts): `frontend/taskflow-frontend/src/app/core/services/task/task.service.ts`
- [User service](https://github.com/alihayek8/task-management-system/blob/main/frontend/taskflow-frontend/src/app/core/services/user/user.service.ts): `frontend/taskflow-frontend/src/app/core/services/user/user.service.ts`

### Backend API

- [Auth controller](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/controller/AuthController.java): `backend/src/main/java/com/taskmanagementsystem/backend/controller/AuthController.java`
- [Project controller](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/controller/ProjectController.java): `backend/src/main/java/com/taskmanagementsystem/backend/controller/ProjectController.java`
- [Task controller](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/controller/TaskController.java): `backend/src/main/java/com/taskmanagementsystem/backend/controller/TaskController.java`
- [User controller](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/controller/UserController.java): `backend/src/main/java/com/taskmanagementsystem/backend/controller/UserController.java`

### Domain and persistence

- [Auth service](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/service/AuthService.java): `backend/src/main/java/com/taskmanagementsystem/backend/service/AuthService.java`
- [Project service](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/service/ProjectService.java): `backend/src/main/java/com/taskmanagementsystem/backend/service/ProjectService.java`
- [Task service](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/service/TaskService.java): `backend/src/main/java/com/taskmanagementsystem/backend/service/TaskService.java`
- [User repository](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/repository/UserRepository.java): `backend/src/main/java/com/taskmanagementsystem/backend/repository/UserRepository.java`
- [Project repository](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/repository/ProjectRepository.java): `backend/src/main/java/com/taskmanagementsystem/backend/repository/ProjectRepository.java`
- [Task repository](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/repository/TaskRepository.java): `backend/src/main/java/com/taskmanagementsystem/backend/repository/TaskRepository.java`
- **PostgreSQL**

### Authentication

- [Security config](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/security/SecurityConfig.java): `backend/src/main/java/com/taskmanagementsystem/backend/security/SecurityConfig.java`
- [JWT filter](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/security/JwtAuthFilter.java): `backend/src/main/java/com/taskmanagementsystem/backend/security/JwtAuthFilter.java`
- [JWT utility](https://github.com/alihayek8/task-management-system/blob/main/backend/src/main/java/com/taskmanagementsystem/backend/security/JwtUtil.java): `backend/src/main/java/com/taskmanagementsystem/backend/security/JwtUtil.java`

### Other components

- **User**

## Connections

- User → Auth pages: uses
- User → Dashboard: views
- User → Projects list: manages
- User → Profile page: updates
- Auth pages → Auth service: submits credentials
- Projects list → Project service: loads projects
- Project form → Project service: saves project
- Task board → Task service: loads and updates
- Task form → Task service: saves task
- Profile page → User service: reads and edits
- Auth service → Auth controller: HTTP requests
- Project service → Project controller: HTTP requests
- Task service → Task controller: HTTP requests
- User service → User controller: HTTP requests
- Auth controller → Auth service: delegates
- Project controller → Project service: delegates
- Task controller → Task service: delegates
- User controller → User repository
- Auth service → User repository: reads and saves
- Auth service → JWT utility: generates token
- Project service → Project repository: reads and writes
- Project service → User repository: looks up owner
- Task service → Task repository: reads and writes
- Task service → Project repository: looks up project
- Task service → User repository: looks up assignee
- User repository → PostgreSQL: persists users
- Project repository → PostgreSQL: persists projects
- Task repository → PostgreSQL: persists tasks
- Security config → JWT filter: configures filter
- JWT filter → JWT utility: validates token
- JWT filter → User repository: loads user
- JWT filter → Auth controller: guards requests
- JWT filter → Project controller: guards requests
- JWT filter → Task controller: guards requests
- JWT filter → User controller: guards requests
