# aymanibr/personal architecture

> Architecture diagram of the GitHub repository aymanibr/personal, 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/aymanibr/personal
- Repository: https://github.com/aymanibr/personal

## Overview

This Laravel application is a personal portfolio and résumé site with an authenticated dashboard for maintaining its published content. Visitors browse portfolio pages and submit contact messages; administrators sign in to manage résumé and project data, while account registration, verification, and profile maintenance support dashboard access. The sampled controllers show résumé/project reads, contact-message persistence and queued mail, and education management; other dashboard capabilities are represented from the repository tree, with their exact wiring not inferred. The README describes Laravel rather than this product, so the product scope is based on the application structure and sampled code.

Main entry points: [`routes/dashboard.php`](https://github.com/aymanibr/personal/blob/main/routes/dashboard.php) (Dashboard routes), [`routes/auth.php`](https://github.com/aymanibr/personal/blob/main/routes/auth.php) (Auth routes), [`app/Http/Controllers/FrontController.php`](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/FrontController.php) (Portfolio pages), [`bootstrap/app.php`](https://github.com/aymanibr/personal/blob/main/bootstrap/app.php) (Application bootstrap)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public_site["Public portfolio"]
  node_portfolio["Portfolio pages"]
  node_public_views["Portfolio views<br/>[index.blade.php]"]
  node_resume_data[("Résumé content<br/>[Experience.php]")]
  node_project_data[("Project content<br/>[Project.php]")]
  node_contact["Contact submission"]
  node_message_data[("Contact messages<br/>[Message.php]")]
  node_contact_mail["Contact email<br/>[ContactUs.php]"]
end

subgraph group_admin["Dashboard management"]
  node_dashboard["Dashboard overview"]
  node_content_admin["Résumé editors"]
  node_project_admin["Project editor"]
  node_skill_admin["Skills and languages"]
  node_experience_admin["Experience editor"]
  node_message_views["Message inbox<br/>[index.blade.php]"]
  node_settings[("Site settings<br/>[Setting.php]")]
end

subgraph group_identity["Accounts and access"]
  node_auth["Authentication"]
  node_registration["Registration"]
  node_verification["Email verification"]
  node_profile["Profile management"]
  node_user_data[("User accounts<br/>[User.php]")]
end

subgraph group_runtime["Request and persistence"]
  node_http_entry["HTTP entry<br/>[index.php]"]
  node_app_boot["Application bootstrap<br/>[app.php]"]
  node_web_routes["Web routes<br/>[web.php]"]
  node_dashboard_routes["Dashboard routes<br/>[dashboard.php]"]
  node_auth_routes["Auth routes<br/>[auth.php]"]
end

node_visitor(("Visitor"))
node_administrator(("Administrator"))
node_mail_service["Mail service"]

node_visitor -->|"sends requests"| node_http_entry
node_administrator -->|"sends requests"| node_http_entry
node_http_entry -->|"handles request"| node_app_boot
node_app_boot -->|"loads routes"| node_web_routes
node_app_boot -->|"loads routes"| node_dashboard_routes
node_web_routes -->|"dispatches"| node_portfolio
node_web_routes -->|"dispatches"| node_contact
node_dashboard_routes -->|"dispatches"| node_dashboard
node_dashboard_routes -->|"dispatches"| node_content_admin
node_dashboard_routes -->|"dispatches"| node_project_admin
node_dashboard_routes -->|"dispatches"| node_skill_admin
node_dashboard_routes -->|"dispatches"| node_experience_admin
node_app_boot -->|"loads routes"| node_auth_routes
node_auth_routes -->|"dispatches"| node_auth
node_auth_routes -->|"dispatches"| node_registration
node_auth_routes -->|"dispatches"| node_verification
node_auth_routes -->|"dispatches"| node_profile
node_portfolio -->|"renders"| node_public_views
node_portfolio -->|"reads résumé"| node_resume_data
node_portfolio -->|"reads projects"| node_project_data
node_contact -->|"creates message"| node_message_data
node_contact -->|"queues mail"| node_contact_mail
node_contact_mail -.->|"delivers email"| node_mail_service
node_content_admin -->|"manages education"| node_resume_data
node_experience_admin -->|"manages experience"| node_resume_data
node_project_admin -->|"manages projects"| node_project_data
node_auth -->|"authenticates"| node_user_data
node_registration -->|"creates account"| node_user_data
node_profile -->|"updates account"| node_user_data
node_verification -->|"verifies account"| node_user_data

click node_http_entry "https://github.com/aymanibr/personal/blob/main/public/index.php"
click node_app_boot "https://github.com/aymanibr/personal/blob/main/bootstrap/app.php"
click node_web_routes "https://github.com/aymanibr/personal/blob/main/routes/web.php"
click node_dashboard_routes "https://github.com/aymanibr/personal/blob/main/routes/dashboard.php"
click node_auth_routes "https://github.com/aymanibr/personal/blob/main/routes/auth.php"
click node_portfolio "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/FrontController.php"
click node_public_views "https://github.com/aymanibr/personal/blob/main/resources/views/front/index.blade.php"
click node_resume_data "https://github.com/aymanibr/personal/blob/main/app/Models/Experience.php"
click node_project_data "https://github.com/aymanibr/personal/blob/main/app/Models/Project.php"
click node_contact "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/FrontController.php"
click node_message_data "https://github.com/aymanibr/personal/blob/main/app/Models/Message.php"
click node_contact_mail "https://github.com/aymanibr/personal/blob/main/app/Mail/ContactUs.php"
click node_dashboard "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/DashboardController.php"
click node_content_admin "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/EducationController.php"
click node_project_admin "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/ProjectController.php"
click node_skill_admin "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/SkillController.php"
click node_experience_admin "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/ExperienceController.php"
click node_message_views "https://github.com/aymanibr/personal/blob/main/resources/views/dashboard/messages/index.blade.php"
click node_settings "https://github.com/aymanibr/personal/blob/main/app/Models/Setting.php"
click node_auth "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_registration "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_verification "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Auth/VerifyEmailController.php"
click node_profile "https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/ProfileController.php"
click node_user_data "https://github.com/aymanibr/personal/blob/main/app/Models/User.php"

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_portfolio,node_public_views,node_resume_data,node_project_data,node_contact,node_message_data,node_contact_mail toneBlue
class node_dashboard,node_content_admin,node_project_admin,node_skill_admin,node_experience_admin,node_message_views,node_settings toneAmber
class node_auth,node_registration,node_verification,node_profile,node_user_data toneMint
class node_http_entry,node_app_boot,node_web_routes,node_dashboard_routes,node_auth_routes toneRose
class node_visitor,node_administrator,node_mail_service toneIndigo
```

## Components

### Public portfolio

- [Portfolio pages](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/FrontController.php): `app/Http/Controllers/FrontController.php`
- [Portfolio views](https://github.com/aymanibr/personal/blob/main/resources/views/front/index.blade.php): `resources/views/front/index.blade.php`
- [Résumé content](https://github.com/aymanibr/personal/blob/main/app/Models/Experience.php): `app/Models/Experience.php`
- [Project content](https://github.com/aymanibr/personal/blob/main/app/Models/Project.php): `app/Models/Project.php`
- [Contact submission](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/FrontController.php): `app/Http/Controllers/FrontController.php`
- [Contact messages](https://github.com/aymanibr/personal/blob/main/app/Models/Message.php): `app/Models/Message.php`
- [Contact email](https://github.com/aymanibr/personal/blob/main/app/Mail/ContactUs.php): `app/Mail/ContactUs.php`

### Dashboard management

- [Dashboard overview](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/DashboardController.php): `app/Http/Controllers/Dashboard/DashboardController.php`
- [Résumé editors](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/EducationController.php): `app/Http/Controllers/Dashboard/EducationController.php`
- [Project editor](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/ProjectController.php): `app/Http/Controllers/Dashboard/ProjectController.php`
- [Skills and languages](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/SkillController.php): `app/Http/Controllers/Dashboard/SkillController.php`
- [Experience editor](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Dashboard/ExperienceController.php): `app/Http/Controllers/Dashboard/ExperienceController.php`
- [Message inbox](https://github.com/aymanibr/personal/blob/main/resources/views/dashboard/messages/index.blade.php): `resources/views/dashboard/messages/index.blade.php`
- [Site settings](https://github.com/aymanibr/personal/blob/main/app/Models/Setting.php): `app/Models/Setting.php`

### Accounts and access

- [Authentication](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Registration](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Email verification](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/Auth/VerifyEmailController.php): `app/Http/Controllers/Auth/VerifyEmailController.php`
- [Profile management](https://github.com/aymanibr/personal/blob/main/app/Http/Controllers/ProfileController.php): `app/Http/Controllers/ProfileController.php`
- [User accounts](https://github.com/aymanibr/personal/blob/main/app/Models/User.php): `app/Models/User.php`

### Request and persistence

- [HTTP entry](https://github.com/aymanibr/personal/blob/main/public/index.php): `public/index.php`
- [Application bootstrap](https://github.com/aymanibr/personal/blob/main/bootstrap/app.php): `bootstrap/app.php`
- [Web routes](https://github.com/aymanibr/personal/blob/main/routes/web.php): `routes/web.php`
- [Dashboard routes](https://github.com/aymanibr/personal/blob/main/routes/dashboard.php): `routes/dashboard.php`
- [Auth routes](https://github.com/aymanibr/personal/blob/main/routes/auth.php): `routes/auth.php`

### Other components

- **Visitor**
- **Administrator**
- **Mail service**

## Connections

- Visitor → HTTP entry: sends requests
- Administrator → HTTP entry: sends requests
- HTTP entry → Application bootstrap: handles request
- Application bootstrap → Web routes: loads routes
- Application bootstrap → Dashboard routes: loads routes
- Web routes → Portfolio pages: dispatches
- Web routes → Contact submission: dispatches
- Dashboard routes → Dashboard overview: dispatches
- Dashboard routes → Résumé editors: dispatches
- Dashboard routes → Project editor: dispatches
- Dashboard routes → Skills and languages: dispatches
- Dashboard routes → Experience editor: dispatches
- Application bootstrap → Auth routes: loads routes
- Auth routes → Authentication: dispatches
- Auth routes → Registration: dispatches
- Auth routes → Email verification: dispatches
- Auth routes → Profile management: dispatches
- Portfolio pages → Portfolio views: renders
- Portfolio pages → Résumé content: reads résumé
- Portfolio pages → Project content: reads projects
- Contact submission → Contact messages: creates message
- Contact submission → Contact email: queues mail
- Contact email → Mail service: delivers email
- Résumé editors → Résumé content: manages education
- Experience editor → Résumé content: manages experience
- Project editor → Project content: manages projects
- Authentication → User accounts: authenticates
- Registration → User accounts: creates account
- Profile management → User accounts: updates account
- Email verification → User accounts: verifies account
