# abdelrahman3300/project-management-platform architecture

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

## Overview

This is a project-management platform: users register or sign in, then work with projects, project membership, tasks, comments and dashboard statistics through an Angular client and authenticated ASP.NET API. The sampled project and task services show user/project access checks and repository persistence; other features are preserved from the README and source tree. Their internal wiring is not fully sampled, so those connections are omitted. PostgreSQL is configured by API startup; remaining backend and frontend links reflect explicit README architecture or sampled routing and setup.

Main entry points: [`backend/FullStackProject.API/Controllers`](https://github.com/abdelrahman3300/project-management-platform/tree/main/backend/FullStackProject.API/Controllers) (API controllers), [`backend/FullStackProject.API/Program.cs`](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.API/Program.cs) (HTTP API), [`frontend/full-stack-project/src/app/app.routes.ts`](https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/app.routes.ts) (Routes and guards), [`backend/FullStackProject.Application/Services/TaskItemService.cs`](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/TaskItemService.cs) (Task workflows)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Angular client"]
  node_app["Application shell<br/>[app.component.ts]"]
  node_routes["Routes and guards<br/>[app.routes.ts]"]
  node_login["Login and registration<br/>[login.component.ts]"]
  node_dashboardui["Dashboard view"]
  node_projectui["Project details view"]
  node_clientservices["Client API services"]
  node_notifications["Notifications"]
end

subgraph group_api["API and identity"]
  node_api["HTTP API<br/>[Program.cs]"]
  node_auth["JWT authentication<br/>[AuthService.cs]"]
  node_controllers["API controllers<br/>[Controllers]"]
  node_currentuser["Current user context"]
end

subgraph group_work["Project workflows"]
  node_projects["Project management<br/>[ProjectService.cs]"]
  node_members["Project membership"]
  node_tasks["Task workflows<br/>[TaskItemService.cs]"]
  node_comments["Task comments<br/>[CommentService.cs]"]
  node_dashboard["Dashboard statistics"]
  node_domain["Domain entities<br/>[Entities]"]
end

subgraph group_data["Persistence"]
  node_repos["Repositories<br/>[Repositories]"]
  node_context["EF database context"]
  node_postgres[("PostgreSQL")]
end

node_user(("User"))

node_user -->|"uses"| node_app
node_app -->|"renders routes"| node_routes
node_routes -->|"loads"| node_login
node_routes -->|"loads"| node_dashboardui
node_routes -->|"loads"| node_projectui
node_login -.->|"uses"| node_clientservices
node_dashboardui -.->|"uses"| node_clientservices
node_projectui -.->|"uses"| node_clientservices
node_clientservices -.->|"HTTP requests"| node_api
node_api -->|"resolves service"| node_auth
node_api -->|"maps controllers"| node_controllers
node_controllers -->|"calls service"| node_projects
node_controllers -->|"calls service"| node_members
node_controllers -->|"calls service"| node_tasks
node_controllers -.->|"calls service"| node_comments
node_controllers -.->|"calls service"| node_dashboard
node_tasks -->|"checks access"| node_projects
node_projects -->|"reads identity"| node_currentuser
node_tasks -->|"reads identity"| node_currentuser
node_api -->|"registers implementations"| node_repos
node_projects -->|"uses repository"| node_repos
node_tasks -->|"uses repositories"| node_repos
node_repos -->|"queries and saves"| node_context
node_context -->|"maps entities"| node_domain
node_api -->|"configures provider"| node_postgres
node_notifications -->|"displays notices"| node_app

click node_app "https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/app.component.ts"
click node_routes "https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/app.routes.ts"
click node_login "https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/pages/login/login.component.ts"
click node_dashboardui "https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/pages/dashboard/dashboard.component.ts"
click node_projectui "https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/pages/project-details/project-details.component.ts"
click node_clientservices "https://github.com/abdelrahman3300/project-management-platform/tree/main/frontend/full-stack-project/src/app/services"
click node_notifications "https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/services/notification.service.ts"
click node_api "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.API/Program.cs"
click node_auth "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/AuthService.cs"
click node_controllers "https://github.com/abdelrahman3300/project-management-platform/tree/main/backend/FullStackProject.API/Controllers"
click node_currentuser "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.API/Services/CurrentUserService.cs"
click node_projects "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/ProjectService.cs"
click node_members "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/ProjectMemberService.cs"
click node_tasks "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/TaskItemService.cs"
click node_comments "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/CommentService.cs"
click node_dashboard "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/DashboardService.cs"
click node_domain "https://github.com/abdelrahman3300/project-management-platform/tree/main/backend/FullStackProject.Domain/Entities"
click node_repos "https://github.com/abdelrahman3300/project-management-platform/tree/main/backend/FullStackProject.Infrastructure/Repositories"
click node_context "https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Infrastructure/Data/ApplicationDbContext.cs"

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_app,node_routes,node_login,node_dashboardui,node_projectui,node_clientservices,node_notifications,node_user toneBlue
class node_api,node_auth,node_controllers,node_currentuser toneAmber
class node_projects,node_members,node_tasks,node_comments,node_dashboard,node_domain toneMint
class node_repos,node_context,node_postgres toneRose
```

## Components

### Angular client

- [Application shell](https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/app.component.ts): `frontend/full-stack-project/src/app/app.component.ts`
- [Routes and guards](https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/app.routes.ts): `frontend/full-stack-project/src/app/app.routes.ts`
- [Login and registration](https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/pages/login/login.component.ts): `frontend/full-stack-project/src/app/pages/login/login.component.ts`
- [Dashboard view](https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/pages/dashboard/dashboard.component.ts): `frontend/full-stack-project/src/app/pages/dashboard/dashboard.component.ts`
- [Project details view](https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/pages/project-details/project-details.component.ts): `frontend/full-stack-project/src/app/pages/project-details/project-details.component.ts`
- [Client API services](https://github.com/abdelrahman3300/project-management-platform/tree/main/frontend/full-stack-project/src/app/services): `frontend/full-stack-project/src/app/services`
- [Notifications](https://github.com/abdelrahman3300/project-management-platform/blob/main/frontend/full-stack-project/src/app/services/notification.service.ts): `frontend/full-stack-project/src/app/services/notification.service.ts`

### API and identity

- [HTTP API](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.API/Program.cs): `backend/FullStackProject.API/Program.cs`
- [JWT authentication](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/AuthService.cs): `backend/FullStackProject.Application/Services/AuthService.cs`
- [API controllers](https://github.com/abdelrahman3300/project-management-platform/tree/main/backend/FullStackProject.API/Controllers): `backend/FullStackProject.API/Controllers`
- [Current user context](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.API/Services/CurrentUserService.cs): `backend/FullStackProject.API/Services/CurrentUserService.cs`

### Project workflows

- [Project management](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/ProjectService.cs): `backend/FullStackProject.Application/Services/ProjectService.cs`
- [Project membership](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/ProjectMemberService.cs): `backend/FullStackProject.Application/Services/ProjectMemberService.cs`
- [Task workflows](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/TaskItemService.cs): `backend/FullStackProject.Application/Services/TaskItemService.cs`
- [Task comments](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/CommentService.cs): `backend/FullStackProject.Application/Services/CommentService.cs`
- [Dashboard statistics](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Application/Services/DashboardService.cs): `backend/FullStackProject.Application/Services/DashboardService.cs`
- [Domain entities](https://github.com/abdelrahman3300/project-management-platform/tree/main/backend/FullStackProject.Domain/Entities): `backend/FullStackProject.Domain/Entities`

### Persistence

- [Repositories](https://github.com/abdelrahman3300/project-management-platform/tree/main/backend/FullStackProject.Infrastructure/Repositories): `backend/FullStackProject.Infrastructure/Repositories`
- [EF database context](https://github.com/abdelrahman3300/project-management-platform/blob/main/backend/FullStackProject.Infrastructure/Data/ApplicationDbContext.cs): `backend/FullStackProject.Infrastructure/Data/ApplicationDbContext.cs`
- **PostgreSQL**

### Other components

- **User**

## Connections

- User → Application shell: uses (evidence: `README.md`)
- Application shell → Routes and guards: renders routes (evidence: `frontend/full-stack-project/src/app/app.component.ts`)
- Routes and guards → Login and registration: loads (evidence: `frontend/full-stack-project/src/app/app.routes.ts`)
- Routes and guards → Dashboard view: loads (evidence: `frontend/full-stack-project/src/app/app.routes.ts`)
- Routes and guards → Project details view: loads (evidence: `frontend/full-stack-project/src/app/app.routes.ts`)
- Login and registration → Client API services: uses
- Dashboard view → Client API services: uses
- Project details view → Client API services: uses
- Client API services → HTTP API: HTTP requests
- HTTP API → JWT authentication: resolves service (evidence: `backend/FullStackProject.API/Program.cs`)
- HTTP API → API controllers: maps controllers (evidence: `backend/FullStackProject.API/Program.cs`)
- API controllers → Project management: calls service (evidence: `backend/FullStackProject.API/Controllers/ProjectsController.cs`)
- API controllers → Project membership: calls service (evidence: `backend/FullStackProject.API/Controllers/ProjectMembersController.cs`)
- API controllers → Task workflows: calls service (evidence: `backend/FullStackProject.API/Controllers/TasksController.cs`)
- API controllers → Task comments: calls service
- API controllers → Dashboard statistics: calls service
- Task workflows → Project management: checks access (evidence: `backend/FullStackProject.Application/Services/TaskItemService.cs`)
- Project management → Current user context: reads identity (evidence: `backend/FullStackProject.Application/Services/ProjectService.cs`)
- Task workflows → Current user context: reads identity (evidence: `backend/FullStackProject.Application/Services/TaskItemService.cs`)
- HTTP API → Repositories: registers implementations (evidence: `backend/FullStackProject.API/Program.cs`)
- Project management → Repositories: uses repository (evidence: `backend/FullStackProject.Application/Services/ProjectService.cs`)
- Task workflows → Repositories: uses repositories (evidence: `backend/FullStackProject.Application/Services/TaskItemService.cs`)
- Repositories → EF database context: queries and saves (evidence: `backend/FullStackProject.Infrastructure/Repositories/ProjectRepository.cs`)
- EF database context → Domain entities: maps entities (evidence: `backend/FullStackProject.Infrastructure/Data/ApplicationDbContext.cs`)
- HTTP API → PostgreSQL: configures provider (evidence: `backend/FullStackProject.API/Program.cs`)
- Notifications → Application shell: displays notices (evidence: `frontend/full-stack-project/src/app/app.component.ts`)
