# abdulrahman-elnabawi/project-management architecture

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

## Overview

This repository is a Laravel project/task management API with a small React informational frontend. The main backend workflow routes API requests to authentication, project, and task controllers, which validate requests and use Eloquent models to return JSON. The frontend provides Home, About, and Contact pages through client-side routing; no sampled evidence shows it calling the API. Connections among routes and controllers are supported by the source index, while several backend modules were not sampled in full.

Main entry points: [`routes/api.php`](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/routes/api.php) (API routes), [`frontend/src/App.jsx`](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/App.jsx) (Page router), [`bootstrap/app.php`](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/bootstrap/app.php) (App bootstrap), [`public/index.php`](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/public/index.php) (HTTP entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Laravel runtime"]
  node_public_entry["HTTP entry<br/>[index.php]"]
  node_app_bootstrap["App bootstrap<br/>[app.php]"]
  node_api_routes["API routes<br/>[api.php]"]
  node_web_routes["Web routes<br/>[web.php]"]
end

subgraph group_api["API workflows"]
  node_auth_controller["Authentication"]
  node_project_controller["Project API"]
  node_task_controller["Task API<br/>[TaskController.php]"]
  node_test_controller["Test endpoint<br/>[TestController.php]"]
end

subgraph group_domain["Domain models"]
  node_user_model["User model<br/>[User.php]"]
  node_project_model["Project model<br/>[project.php]"]
  node_task_model["Task model<br/>[Task.php]"]
end

subgraph group_frontend["React frontend"]
  node_frontend_entry["React entry<br/>[main.jsx]"]
  node_frontend_app["Page router<br/>[App.jsx]"]
  node_home_page["Home page<br/>[Home.jsx]"]
  node_about_page["About page<br/>[About.jsx]"]
  node_contact_page["Contact page<br/>[Contact.jsx]"]
end

node_client(("API client"))
node_browser(("Browser user"))

node_client -->|"sends request"| node_public_entry
node_public_entry -->|"loads application"| node_app_bootstrap
node_app_bootstrap -->|"configures routes"| node_api_routes
node_app_bootstrap -->|"configures routes"| node_web_routes
node_api_routes -->|"routes requests"| node_auth_controller
node_api_routes -->|"routes requests"| node_project_controller
node_api_routes -->|"routes requests"| node_task_controller
node_web_routes -->|"routes requests"| node_test_controller
node_auth_controller -->|"creates and finds"| node_user_model
node_project_controller -->|"manages projects"| node_project_model
node_task_controller -->|"manages tasks"| node_task_model
node_task_model -->|"belongs to"| node_project_model
node_browser -->|"opens app"| node_frontend_entry
node_frontend_entry -->|"renders"| node_frontend_app
node_frontend_app -->|"routes to"| node_home_page
node_frontend_app -->|"routes to"| node_about_page
node_frontend_app -->|"routes to"| node_contact_page

click node_public_entry "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/public/index.php"
click node_app_bootstrap "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/bootstrap/app.php"
click node_api_routes "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/routes/api.php"
click node_web_routes "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/routes/web.php"
click node_auth_controller "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Http/Controllers/API/AouthController.php"
click node_project_controller "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Http/Controllers/API/ProjectController.php"
click node_task_controller "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Http/Controllers/API/TaskController.php"
click node_test_controller "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Http/Controllers/API/TestController.php"
click node_user_model "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Models/User.php"
click node_project_model "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Models/project.php"
click node_task_model "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Models/Task.php"
click node_frontend_entry "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/main.jsx"
click node_frontend_app "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/App.jsx"
click node_home_page "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/pages/Home.jsx"
click node_about_page "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/pages/About.jsx"
click node_contact_page "https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/pages/Contact.jsx"

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_public_entry,node_app_bootstrap,node_api_routes,node_web_routes,node_client,node_browser toneBlue
class node_auth_controller,node_project_controller,node_task_controller,node_test_controller toneAmber
class node_user_model,node_project_model,node_task_model toneMint
class node_frontend_entry,node_frontend_app,node_home_page,node_about_page,node_contact_page toneRose
```

## Components

### Laravel runtime

- [HTTP entry](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/public/index.php): `public/index.php`
- [App bootstrap](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/bootstrap/app.php): `bootstrap/app.php`
- [API routes](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/routes/api.php): `routes/api.php`
- [Web routes](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/routes/web.php): `routes/web.php`

### API workflows

- [Authentication](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Http/Controllers/API/AouthController.php): `app/Http/Controllers/API/AouthController.php`
- [Project API](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Http/Controllers/API/ProjectController.php): `app/Http/Controllers/API/ProjectController.php`
- [Task API](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Http/Controllers/API/TaskController.php): `app/Http/Controllers/API/TaskController.php`
- [Test endpoint](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Http/Controllers/API/TestController.php): `app/Http/Controllers/API/TestController.php`

### Domain models

- [User model](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Models/User.php): `app/Models/User.php`
- [Project model](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Models/project.php): `app/Models/project.php`
- [Task model](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/app/Models/Task.php): `app/Models/Task.php`

### React frontend

- [React entry](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/main.jsx): `frontend/src/main.jsx`
- [Page router](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Home page](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/pages/Home.jsx): `frontend/src/pages/Home.jsx`
- [About page](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/pages/About.jsx): `frontend/src/pages/About.jsx`
- [Contact page](https://github.com/abdulrahman-elnabawi/project-management/blob/Main/frontend/src/pages/Contact.jsx): `frontend/src/pages/Contact.jsx`

### Other components

- **API client**
- **Browser user**

## Connections

- API client → HTTP entry: sends request
- HTTP entry → App bootstrap: loads application (evidence: `public/index.php`)
- App bootstrap → API routes: configures routes (evidence: `bootstrap/app.php`)
- App bootstrap → Web routes: configures routes (evidence: `bootstrap/app.php`)
- API routes → Authentication: routes requests (evidence: `routes/api.php`)
- API routes → Project API: routes requests (evidence: `routes/api.php`)
- API routes → Task API: routes requests (evidence: `routes/api.php`)
- Web routes → Test endpoint: routes requests (evidence: `routes/web.php`)
- Authentication → User model: creates and finds (evidence: `app/Http/Controllers/API/AouthController.php`)
- Project API → Project model: manages projects (evidence: `app/Http/Controllers/API/ProjectController.php`)
- Task API → Task model: manages tasks (evidence: `app/Http/Controllers/API/TaskController.php`)
- Task model → Project model: belongs to (evidence: `app/Models/Task.php`)
- Browser user → React entry: opens app
- React entry → Page router: renders (evidence: `frontend/src/main.jsx`)
- Page router → Home page: routes to (evidence: `frontend/src/App.jsx`)
- Page router → About page: routes to (evidence: `frontend/src/App.jsx`)
- Page router → Contact page: routes to (evidence: `frontend/src/App.jsx`)
