# irajkumarr/task-management-api architecture

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

- Interactive diagram: https://gitdiagram.com/irajkumarr/task-management-api
- Repository: https://github.com/irajkumarr/task-management-api

## Overview

This is a task-management API for users to create workspaces, organize projects, manage tasks, and collaborate through comments, files, membership, and notifications. The main workflow moves from account authentication to workspace/project setup and then task operations; automation and activity tracking support that workflow. Controller-to-service links follow the sampled controllers, and authentication’s calls to user management and Google verification are visible in the sampled service. Other service internals and persistence wiring were not sampled, so uncertain links are omitted.

Main entry points: [`src/modules/scheduler/scheduler.controller.ts`](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/scheduler/scheduler.controller.ts) (Scheduler API), [`src/modules/auth/auth.service.ts`](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/auth/auth.service.ts) (Authentication service), [`src/modules/users/users.service.ts`](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/users/users.service.ts) (User management), [`src/modules/auth/auth.controller.ts`](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/auth/auth.controller.ts) (Authentication API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and access"]
  node_auth_api["Authentication API<br/>[auth.controller.ts]"]
  node_auth["Authentication service<br/>[auth.service.ts]"]
  node_users_api["User API"]
  node_users["User management<br/>[users.service.ts]"]
end

subgraph group_workspace["Workspace structure"]
  node_workspaces_api["Workspace API"]
  node_workspaces["Workspace management"]
  node_members_api["Membership API"]
  node_members["Membership management"]
  node_projects_api["Project API"]
  node_projects["Project management"]
end

subgraph group_tasks["Task collaboration"]
  node_tasks_api["Task API"]
  node_tasks_service["Task management<br/>[tasks.service.ts]"]
  node_comments_api["Comment API"]
  node_comments["Comment management"]
  node_attachments_api["Attachment API"]
  node_attachments["Attachment management"]
end

subgraph group_engagement["Engagement automation"]
  node_notifications_api["Notifications API"]
  node_notifications["Notification service"]
  node_activity["Activity logs"]
  node_scheduler_api["Scheduler API"]
  node_scheduler["Task automation"]
end

subgraph group_shared["Shared services"]
  node_storage["File storage adapters"]
  node_mail["Mail service<br/>[mail.service.ts]"]
end

node_user(("API user"))
node_google["Google identity"]

node_user -->|"requests auth"| node_auth_api
node_auth_api -->|"invokes"| node_auth
node_auth -->|"manages accounts"| node_users
node_auth -.->|"verifies identity"| node_google
node_users_api -->|"invokes"| node_users
node_user -->|"manages spaces"| node_workspaces_api
node_workspaces_api -->|"invokes"| node_workspaces
node_members_api -->|"invokes"| node_members
node_user -->|"manages projects"| node_projects_api
node_projects_api -->|"invokes"| node_projects
node_user -->|"manages tasks"| node_tasks_api
node_tasks_api -->|"invokes"| node_tasks_service
node_user -->|"collaborates"| node_comments_api
node_comments_api -->|"invokes"| node_comments
node_user -->|"uploads files"| node_attachments_api
node_attachments_api -->|"invokes"| node_attachments
node_user -->|"views alerts"| node_notifications_api
node_notifications_api -->|"invokes"| node_notifications
node_user -->|"reviews activity"| node_activity
node_user -->|"triggers checks"| node_scheduler_api
node_scheduler_api -->|"invokes"| node_scheduler
node_scheduler_api -->|"sends test mail"| node_mail
node_scheduler_api -->|"looks up recipient"| node_users

click node_auth_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/auth/auth.controller.ts"
click node_auth "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/auth/auth.service.ts"
click node_users_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/users/users.controller.ts"
click node_users "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/users/users.service.ts"
click node_workspaces_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/workspaces/workspaces.controller.ts"
click node_workspaces "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/workspaces/workspaces.service.ts"
click node_members_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/workspace-members/workspace-members.controller.ts"
click node_members "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/workspace-members/workspace-members.service.ts"
click node_projects_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/projects/projects.controller.ts"
click node_projects "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/projects/projects.service.ts"
click node_tasks_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/tasks/tasks.controller.ts"
click node_tasks_service "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/tasks/tasks.service.ts"
click node_comments_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/task-comments/task-comments.controller.ts"
click node_comments "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/task-comments/task-comments.service.ts"
click node_attachments_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/task-attachments/task-attachments.controller.ts"
click node_attachments "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/task-attachments/task-attachments.service.ts"
click node_storage "https://github.com/irajkumarr/task-management-api/blob/main/src/common/services/storage/storage.interface.ts"
click node_notifications_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/notifications/notifications.controller.ts"
click node_notifications "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/notifications/notifications.service.ts"
click node_activity "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/activity-logs/activity-logs.controller.ts"
click node_scheduler_api "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/scheduler/scheduler.controller.ts"
click node_scheduler "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/scheduler/task-scheduler.service.ts"
click node_mail "https://github.com/irajkumarr/task-management-api/blob/main/src/modules/mail/mail.service.ts"

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_api,node_auth,node_users_api,node_users,node_user toneBlue
class node_workspaces_api,node_workspaces,node_members_api,node_members,node_projects_api,node_projects toneAmber
class node_tasks_api,node_tasks_service,node_comments_api,node_comments,node_attachments_api,node_attachments toneMint
class node_notifications_api,node_notifications,node_activity,node_scheduler_api,node_scheduler toneRose
class node_storage,node_mail,node_google toneIndigo
```

## Components

### Identity and access

- [Authentication API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/auth/auth.controller.ts): `src/modules/auth/auth.controller.ts`
- [Authentication service](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/auth/auth.service.ts): `src/modules/auth/auth.service.ts`
- [User API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/users/users.controller.ts): `src/modules/users/users.controller.ts`
- [User management](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/users/users.service.ts): `src/modules/users/users.service.ts`

### Workspace structure

- [Workspace API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/workspaces/workspaces.controller.ts): `src/modules/workspaces/workspaces.controller.ts`
- [Workspace management](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/workspaces/workspaces.service.ts): `src/modules/workspaces/workspaces.service.ts`
- [Membership API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/workspace-members/workspace-members.controller.ts): `src/modules/workspace-members/workspace-members.controller.ts`
- [Membership management](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/workspace-members/workspace-members.service.ts): `src/modules/workspace-members/workspace-members.service.ts`
- [Project API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/projects/projects.controller.ts): `src/modules/projects/projects.controller.ts`
- [Project management](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/projects/projects.service.ts): `src/modules/projects/projects.service.ts`

### Task collaboration

- [Task API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/tasks/tasks.controller.ts): `src/modules/tasks/tasks.controller.ts`
- [Task management](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/tasks/tasks.service.ts): `src/modules/tasks/tasks.service.ts`
- [Comment API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/task-comments/task-comments.controller.ts): `src/modules/task-comments/task-comments.controller.ts`
- [Comment management](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/task-comments/task-comments.service.ts): `src/modules/task-comments/task-comments.service.ts`
- [Attachment API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/task-attachments/task-attachments.controller.ts): `src/modules/task-attachments/task-attachments.controller.ts`
- [Attachment management](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/task-attachments/task-attachments.service.ts): `src/modules/task-attachments/task-attachments.service.ts`

### Engagement automation

- [Notifications API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/notifications/notifications.controller.ts): `src/modules/notifications/notifications.controller.ts`
- [Notification service](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/notifications/notifications.service.ts): `src/modules/notifications/notifications.service.ts`
- [Activity logs](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/activity-logs/activity-logs.controller.ts): `src/modules/activity-logs/activity-logs.controller.ts`
- [Scheduler API](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/scheduler/scheduler.controller.ts): `src/modules/scheduler/scheduler.controller.ts`
- [Task automation](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/scheduler/task-scheduler.service.ts): `src/modules/scheduler/task-scheduler.service.ts`

### Shared services

- [File storage adapters](https://github.com/irajkumarr/task-management-api/blob/main/src/common/services/storage/storage.interface.ts): `src/common/services/storage/storage.interface.ts`
- [Mail service](https://github.com/irajkumarr/task-management-api/blob/main/src/modules/mail/mail.service.ts): `src/modules/mail/mail.service.ts`

### Other components

- **API user**
- **Google identity**

## Connections

- API user → Authentication API: requests auth
- Authentication API → Authentication service: invokes
- Authentication service → User management: manages accounts
- Authentication service → Google identity: verifies identity
- User API → User management: invokes
- API user → Workspace API: manages spaces
- Workspace API → Workspace management: invokes
- Membership API → Membership management: invokes
- API user → Project API: manages projects
- Project API → Project management: invokes
- API user → Task API: manages tasks
- Task API → Task management: invokes
- API user → Comment API: collaborates
- Comment API → Comment management: invokes
- API user → Attachment API: uploads files
- Attachment API → Attachment management: invokes
- API user → Notifications API: views alerts
- Notifications API → Notification service: invokes
- API user → Activity logs: reviews activity
- API user → Scheduler API: triggers checks
- Scheduler API → Task automation: invokes
- Scheduler API → Mail service: sends test mail
- Scheduler API → User management: looks up recipient
