# ahmaddanial2004/task_portal architecture

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

- Interactive diagram: https://gitdiagram.com/ahmaddanial2004/task_portal
- Repository: https://github.com/ahmaddanial2004/task_portal

## Overview

Task Portal is a PHP task-management web application for administrators and team members. Users authenticate, then work through projects and assigned tasks: administrators manage users, projects, memberships and assignments; team members update task status and collaborate with comments. The dashboard summarizes project and task progress, while task lists support filtering. The tree and README establish these product areas, but most page implementations are unsampled, so detailed page-to-model wiring is not inferred.

Main entry points: [`src/config/database.php`](https://github.com/ahmaddanial2004/task_portal/blob/main/src/config/database.php) (PDO connection), [`public/projects.php`](https://github.com/ahmaddanial2004/task_portal/blob/main/public/projects.php) (Project management), [`public/tasks.php`](https://github.com/ahmaddanial2004/task_portal/blob/main/public/tasks.php) (Task list and filters), [`public/login.php`](https://github.com/ahmaddanial2004/task_portal/blob/main/public/login.php) (Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and security"]
  node_login["Login<br/>[login.php]"]
  node_auth["Session and roles<br/>[auth.php]"]
  node_csrf["CSRF protection<br/>[csrf.php]"]
  node_validation["Validation and escaping<br/>[validation.php]"]
end

subgraph group_work["Project and task work"]
  node_dashboard["Progress dashboard<br/>[dashboard.php]"]
  node_projects["Project management<br/>[projects.php]"]
  node_project_members["Project membership"]
  node_project_create["Project creation<br/>[project_create.php]"]
  node_project_edit["Project updates<br/>[project_edit.php]"]
  node_project_delete["Project deletion<br/>[project_delete.php]"]
  node_tasks["Task list and filters<br/>[tasks.php]"]
  node_task_create["Task assignment<br/>[task_create.php]"]
  node_task_details["Task details<br/>[task_details.php]"]
  node_task_edit["Task updates<br/>[task_edit.php]"]
  node_project_model["Project records<br/>[Project.php]"]
  node_task_model["Task records<br/>[Task.php]"]
end

subgraph group_people["Users and collaboration"]
  node_users["User administration<br/>[users.php]"]
  node_user_create["User creation<br/>[user_create.php]"]
  node_user_edit["User updates<br/>[user_edit.php]"]
  node_comments["Task comments<br/>[Comment.php]"]
  node_user_model["User records<br/>[User.php]"]
end

subgraph group_data["Persistence"]
  node_db_config["PDO connection<br/>[database.php]"]
  node_mysql[("MySQL database<br/>[init.sql]")]
end

node_browser(("Administrator or member"))

node_browser -->|"opens"| node_login
node_login -->|"loads connection"| node_db_config
node_login -->|"establishes session"| node_auth
node_browser -->|"views progress"| node_dashboard
node_browser -->|"manages projects"| node_projects
node_projects -->|"creates"| node_project_create
node_projects -->|"updates"| node_project_edit
node_projects -->|"deletes"| node_project_delete
node_projects -->|"assigns members"| node_project_members
node_browser -->|"views and filters"| node_tasks
node_tasks -->|"starts task creation"| node_task_create
node_tasks -->|"opens details"| node_task_details
node_tasks -->|"edits task"| node_task_edit
node_browser -->|"administers users"| node_users
node_users -->|"creates"| node_user_create
node_users -->|"updates"| node_user_edit
node_task_details -->|"uses comments"| node_comments
node_user_model -->|"uses PDO"| node_db_config
node_project_model -->|"uses PDO"| node_db_config
node_task_model -->|"uses PDO"| node_db_config
node_comments -->|"uses PDO"| node_db_config
node_db_config -->|"connects"| node_mysql
node_task_edit -->|"checks form token"| node_csrf
node_tasks -->|"escapes output"| node_validation

click node_login "https://github.com/ahmaddanial2004/task_portal/blob/main/public/login.php"
click node_auth "https://github.com/ahmaddanial2004/task_portal/blob/main/src/helpers/auth.php"
click node_csrf "https://github.com/ahmaddanial2004/task_portal/blob/main/src/helpers/csrf.php"
click node_validation "https://github.com/ahmaddanial2004/task_portal/blob/main/src/helpers/validation.php"
click node_dashboard "https://github.com/ahmaddanial2004/task_portal/blob/main/public/dashboard.php"
click node_projects "https://github.com/ahmaddanial2004/task_portal/blob/main/public/projects.php"
click node_project_members "https://github.com/ahmaddanial2004/task_portal/blob/main/public/project_members.php"
click node_project_create "https://github.com/ahmaddanial2004/task_portal/blob/main/public/project_create.php"
click node_project_edit "https://github.com/ahmaddanial2004/task_portal/blob/main/public/project_edit.php"
click node_project_delete "https://github.com/ahmaddanial2004/task_portal/blob/main/public/project_delete.php"
click node_tasks "https://github.com/ahmaddanial2004/task_portal/blob/main/public/tasks.php"
click node_task_create "https://github.com/ahmaddanial2004/task_portal/blob/main/public/task_create.php"
click node_task_details "https://github.com/ahmaddanial2004/task_portal/blob/main/public/task_details.php"
click node_task_edit "https://github.com/ahmaddanial2004/task_portal/blob/main/public/task_edit.php"
click node_users "https://github.com/ahmaddanial2004/task_portal/blob/main/public/users.php"
click node_user_create "https://github.com/ahmaddanial2004/task_portal/blob/main/public/user_create.php"
click node_user_edit "https://github.com/ahmaddanial2004/task_portal/blob/main/public/user_edit.php"
click node_comments "https://github.com/ahmaddanial2004/task_portal/blob/main/src/models/Comment.php"
click node_user_model "https://github.com/ahmaddanial2004/task_portal/blob/main/src/models/User.php"
click node_project_model "https://github.com/ahmaddanial2004/task_portal/blob/main/src/models/Project.php"
click node_task_model "https://github.com/ahmaddanial2004/task_portal/blob/main/src/models/Task.php"
click node_db_config "https://github.com/ahmaddanial2004/task_portal/blob/main/src/config/database.php"
click node_mysql "https://github.com/ahmaddanial2004/task_portal/blob/main/database/init.sql"

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_login,node_auth,node_csrf,node_validation toneBlue
class node_dashboard,node_projects,node_project_members,node_project_create,node_project_edit,node_project_delete,node_tasks,node_task_create,node_task_details,node_task_edit,node_project_model,node_task_model toneAmber
class node_users,node_user_create,node_user_edit,node_comments,node_user_model toneMint
class node_db_config,node_mysql toneRose
class node_browser toneIndigo
```

## Components

### Access and security

- [Login](https://github.com/ahmaddanial2004/task_portal/blob/main/public/login.php): `public/login.php`
- [Session and roles](https://github.com/ahmaddanial2004/task_portal/blob/main/src/helpers/auth.php): `src/helpers/auth.php`
- [CSRF protection](https://github.com/ahmaddanial2004/task_portal/blob/main/src/helpers/csrf.php): `src/helpers/csrf.php`
- [Validation and escaping](https://github.com/ahmaddanial2004/task_portal/blob/main/src/helpers/validation.php): `src/helpers/validation.php`

### Project and task work

- [Progress dashboard](https://github.com/ahmaddanial2004/task_portal/blob/main/public/dashboard.php): `public/dashboard.php`
- [Project management](https://github.com/ahmaddanial2004/task_portal/blob/main/public/projects.php): `public/projects.php`
- [Project membership](https://github.com/ahmaddanial2004/task_portal/blob/main/public/project_members.php): `public/project_members.php`
- [Project creation](https://github.com/ahmaddanial2004/task_portal/blob/main/public/project_create.php): `public/project_create.php`
- [Project updates](https://github.com/ahmaddanial2004/task_portal/blob/main/public/project_edit.php): `public/project_edit.php`
- [Project deletion](https://github.com/ahmaddanial2004/task_portal/blob/main/public/project_delete.php): `public/project_delete.php`
- [Task list and filters](https://github.com/ahmaddanial2004/task_portal/blob/main/public/tasks.php): `public/tasks.php`
- [Task assignment](https://github.com/ahmaddanial2004/task_portal/blob/main/public/task_create.php): `public/task_create.php`
- [Task details](https://github.com/ahmaddanial2004/task_portal/blob/main/public/task_details.php): `public/task_details.php`
- [Task updates](https://github.com/ahmaddanial2004/task_portal/blob/main/public/task_edit.php): `public/task_edit.php`
- [Project records](https://github.com/ahmaddanial2004/task_portal/blob/main/src/models/Project.php): `src/models/Project.php`
- [Task records](https://github.com/ahmaddanial2004/task_portal/blob/main/src/models/Task.php): `src/models/Task.php`

### Users and collaboration

- [User administration](https://github.com/ahmaddanial2004/task_portal/blob/main/public/users.php): `public/users.php`
- [User creation](https://github.com/ahmaddanial2004/task_portal/blob/main/public/user_create.php): `public/user_create.php`
- [User updates](https://github.com/ahmaddanial2004/task_portal/blob/main/public/user_edit.php): `public/user_edit.php`
- [Task comments](https://github.com/ahmaddanial2004/task_portal/blob/main/src/models/Comment.php): `src/models/Comment.php`
- [User records](https://github.com/ahmaddanial2004/task_portal/blob/main/src/models/User.php): `src/models/User.php`

### Persistence

- [PDO connection](https://github.com/ahmaddanial2004/task_portal/blob/main/src/config/database.php): `src/config/database.php`
- [MySQL database](https://github.com/ahmaddanial2004/task_portal/blob/main/database/init.sql): `database/init.sql`

### Other components

- **Administrator or member**

## Connections

- Administrator or member → Login: opens
- Login → PDO connection: loads connection
- Login → Session and roles: establishes session
- Administrator or member → Progress dashboard: views progress
- Administrator or member → Project management: manages projects
- Project management → Project creation: creates
- Project management → Project updates: updates
- Project management → Project deletion: deletes
- Project management → Project membership: assigns members
- Administrator or member → Task list and filters: views and filters
- Task list and filters → Task assignment: starts task creation
- Task list and filters → Task details: opens details
- Task list and filters → Task updates: edits task
- Administrator or member → User administration: administers users
- User administration → User creation: creates
- User administration → User updates: updates
- Task details → Task comments: uses comments
- User records → PDO connection: uses PDO
- Project records → PDO connection: uses PDO
- Task records → PDO connection: uses PDO
- Task comments → PDO connection: uses PDO
- PDO connection → MySQL database: connects
- Task updates → CSRF protection: checks form token
- Task list and filters → Validation and escaping: escapes output
