# adonias-sol/accounting_firm architecture

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

- Interactive diagram: https://gitdiagram.com/adonias-sol/accounting_firm
- Repository: https://github.com/adonias-sol/accounting_firm

## Overview

This is a public website for an accounting and financial consulting firm, with client account access and an administrator area. The main client journey is to browse services, use the on-page calculator or document checklist, and submit a contact request; administrators can review messages and registered users. The graph includes the sampled PHP account/data layers and documented browser interactions. The README is empty, and several endpoint implementations are unsampled, so their internal wiring is not inferred.

Main entry points: [`classes/controler.class.php`](https://github.com/adonias-sol/accounting_firm/blob/main/classes/controler.class.php) (Controller), [`classes/View.class.php`](https://github.com/adonias-sol/accounting_firm/blob/main/classes/View.class.php) (Login logic), [`classes/Model.class.php`](https://github.com/adonias-sol/accounting_firm/blob/main/classes/Model.class.php) (Data model), [`services.html`](https://github.com/adonias-sol/accounting_firm/blob/main/services.html) (Services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public website"]
  node_home["Home<br/>[index.html]"]
  node_about["About<br/>[about.html]"]
  node_services["Services<br/>[services.html]"]
  node_faq["FAQ<br/>[faq.html]"]
  node_contact["Contact<br/>[contact.html]"]
  node_browser["Page interactions<br/>[script.js]"]
  node_contact_endpoint["Contact submission<br/>[contact_submit.php]"]
end

subgraph group_accounts["Accounts"]
  node_register["Registration<br/>[register.php]"]
  node_login["Login<br/>[login.php]"]
  node_user_dashboard["User dashboard<br/>[user_dashboard.php]"]
  node_auth_view["Login logic<br/>[View.class.php]"]
end

subgraph group_admin["Administration"]
  node_admin_dashboard["Admin dashboard<br/>[admin.php]"]
  node_admin_messages["Message management<br/>[admin_messages.php]"]
  node_admin_users["User management<br/>[admin_users.php]"]
  node_delete_endpoint["Message deletion<br/>[delete_message.php]"]
end

subgraph group_data["Application data"]
  node_controller["Controller"]
  node_model["Data model<br/>[Model.class.php]"]
  node_db_connection["DB connection<br/>[Db.class.php]"]
end

node_visitor(("Visitor"))
node_mysql[("MySQL database")]

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_about
node_visitor -->|"opens"| node_services
node_visitor -->|"opens"| node_faq
node_visitor -->|"opens"| node_contact
node_visitor -->|"registers"| node_register
node_visitor -->|"signs in"| node_login
node_services -->|"uses"| node_browser
node_faq -->|"uses"| node_browser
node_contact -->|"submits to"| node_contact_endpoint
node_register -->|"calls signup"| node_controller
node_login -->|"calls login"| node_auth_view
node_auth_view -->|"reads user"| node_model
node_auth_view -->|"redirects user"| node_user_dashboard
node_auth_view -->|"redirects admin"| node_admin_dashboard
node_admin_dashboard -->|"loads messages, counts users"| node_controller
node_admin_messages -->|"loads messages"| node_controller
node_admin_users -->|"loads users"| node_controller
node_delete_endpoint -->|"deletes message"| node_controller
node_controller -->|"delegates data work"| node_model
node_model -->|"opens connection"| node_db_connection
node_db_connection -->|"connects"| node_mysql

click node_home "https://github.com/adonias-sol/accounting_firm/blob/main/index.html"
click node_about "https://github.com/adonias-sol/accounting_firm/blob/main/about.html"
click node_services "https://github.com/adonias-sol/accounting_firm/blob/main/services.html"
click node_faq "https://github.com/adonias-sol/accounting_firm/blob/main/faq.html"
click node_contact "https://github.com/adonias-sol/accounting_firm/blob/main/contact.html"
click node_browser "https://github.com/adonias-sol/accounting_firm/blob/main/script.js"
click node_contact_endpoint "https://github.com/adonias-sol/accounting_firm/blob/main/contact_submit.php"
click node_register "https://github.com/adonias-sol/accounting_firm/blob/main/register.php"
click node_login "https://github.com/adonias-sol/accounting_firm/blob/main/login.php"
click node_user_dashboard "https://github.com/adonias-sol/accounting_firm/blob/main/user_dashboard.php"
click node_auth_view "https://github.com/adonias-sol/accounting_firm/blob/main/classes/View.class.php"
click node_admin_dashboard "https://github.com/adonias-sol/accounting_firm/blob/main/admin.php"
click node_admin_messages "https://github.com/adonias-sol/accounting_firm/blob/main/admin_messages.php"
click node_admin_users "https://github.com/adonias-sol/accounting_firm/blob/main/admin_users.php"
click node_delete_endpoint "https://github.com/adonias-sol/accounting_firm/blob/main/delete_message.php"
click node_controller "https://github.com/adonias-sol/accounting_firm/blob/main/classes/controler.class.php"
click node_model "https://github.com/adonias-sol/accounting_firm/blob/main/classes/Model.class.php"
click node_db_connection "https://github.com/adonias-sol/accounting_firm/blob/main/classes/Db.class.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_home,node_about,node_services,node_faq,node_contact,node_browser,node_contact_endpoint toneBlue
class node_register,node_login,node_user_dashboard,node_auth_view,node_mysql toneAmber
class node_admin_dashboard,node_admin_messages,node_admin_users,node_delete_endpoint toneMint
class node_controller,node_model,node_db_connection toneRose
class node_visitor toneIndigo
```

## Components

### Public website

- [Home](https://github.com/adonias-sol/accounting_firm/blob/main/index.html): `index.html`
- [About](https://github.com/adonias-sol/accounting_firm/blob/main/about.html): `about.html`
- [Services](https://github.com/adonias-sol/accounting_firm/blob/main/services.html): `services.html`
- [FAQ](https://github.com/adonias-sol/accounting_firm/blob/main/faq.html): `faq.html`
- [Contact](https://github.com/adonias-sol/accounting_firm/blob/main/contact.html): `contact.html`
- [Page interactions](https://github.com/adonias-sol/accounting_firm/blob/main/script.js): `script.js`
- [Contact submission](https://github.com/adonias-sol/accounting_firm/blob/main/contact_submit.php): `contact_submit.php`

### Accounts

- [Registration](https://github.com/adonias-sol/accounting_firm/blob/main/register.php): `register.php`
- [Login](https://github.com/adonias-sol/accounting_firm/blob/main/login.php): `login.php`
- [User dashboard](https://github.com/adonias-sol/accounting_firm/blob/main/user_dashboard.php): `user_dashboard.php`
- [Login logic](https://github.com/adonias-sol/accounting_firm/blob/main/classes/View.class.php): `classes/View.class.php`

### Administration

- [Admin dashboard](https://github.com/adonias-sol/accounting_firm/blob/main/admin.php): `admin.php`
- [Message management](https://github.com/adonias-sol/accounting_firm/blob/main/admin_messages.php): `admin_messages.php`
- [User management](https://github.com/adonias-sol/accounting_firm/blob/main/admin_users.php): `admin_users.php`
- [Message deletion](https://github.com/adonias-sol/accounting_firm/blob/main/delete_message.php): `delete_message.php`

### Application data

- [Controller](https://github.com/adonias-sol/accounting_firm/blob/main/classes/controler.class.php): `classes/controler.class.php`
- [Data model](https://github.com/adonias-sol/accounting_firm/blob/main/classes/Model.class.php): `classes/Model.class.php`
- [DB connection](https://github.com/adonias-sol/accounting_firm/blob/main/classes/Db.class.php): `classes/Db.class.php`

### Other components

- **Visitor**
- **MySQL database**

## Connections

- Visitor → Home: opens
- Visitor → About: opens
- Visitor → Services: opens
- Visitor → FAQ: opens
- Visitor → Contact: opens
- Visitor → Registration: registers
- Visitor → Login: signs in
- Services → Page interactions: uses
- FAQ → Page interactions: uses
- Contact → Contact submission: submits to
- Registration → Controller: calls signup
- Login → Login logic: calls login
- Login logic → Data model: reads user
- Login logic → User dashboard: redirects user
- Login logic → Admin dashboard: redirects admin
- Admin dashboard → Controller: loads messages, counts users
- Message management → Controller: loads messages
- User management → Controller: loads users
- Message deletion → Controller: deletes message
- Controller → Data model: delegates data work
- Data model → DB connection: opens connection
- DB connection → MySQL database: connects
