# jairiidriss/restaurant-website-php-mysql architecture

> Architecture diagram of the GitHub repository jairiidriss/restaurant-website-php-mysql, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jairiidriss/restaurant-website-php-mysql
- Repository: https://github.com/jairiidriss/restaurant-website-php-mysql

## Overview

This is a PHP/MySQL restaurant site with public menu discovery, food ordering, table reservations, and an administrative console. Customers browse menus and gallery content, then use ordering or reservation pages; staff manage restaurant content, clients, and users. The sampled pages show database access and shared templates, while README documents the product capabilities. Several listed admin pages are unsampled, so their relationships are limited to documented navigation or indexed imports; no email-sending workflow is asserted.

Main entry points: [`index.php`](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/index.php) (Home and menus), [`order_food.php`](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/order_food.php) (Food ordering), [`table-reservation.php`](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/table-reservation.php) (Table reservation), [`admin/dashboard.php`](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/dashboard.php) (Admin dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Customer website"]
  node_home["Home and menus<br/>[index.php]"]
  node_order["Food ordering<br/>[order_food.php]"]
  node_reservation["Table reservation"]
  node_contact["Contact form handler<br/>[contact.php]"]
end

subgraph group_admin["Restaurant administration"]
  node_login["Admin login<br/>[index.php]"]
  node_dashboard["Admin dashboard<br/>[dashboard.php]"]
  node_admin_menus["Menu management<br/>[menus.php]"]
  node_categories["Category management"]
  node_gallery["Gallery management<br/>[gallery.php]"]
  node_clients["Client management<br/>[clients.php]"]
  node_users["User management<br/>[users.php]"]
  node_settings["Website settings"]
  node_logout["Admin logout<br/>[logout.php]"]
  node_admin_ajax["Admin AJAX handlers<br/>[menus_ajax.php]"]
end

subgraph group_shared["Shared runtime"]
  node_public_functions["Public utilities<br/>[functions.php]"]
  node_public_header["Public header<br/>[header.php]"]
  node_public_nav["Public navigation<br/>[navbar.php]"]
  node_public_footer["Public footer<br/>[footer.php]"]
  node_public_db_config["Public DB connection<br/>[connect.php]"]
  node_admin_functions["Admin utilities<br/>[functions.php]"]
  node_admin_header["Admin header<br/>[header.php]"]
  node_admin_nav["Admin navigation<br/>[navbar.php]"]
  node_admin_footer["Admin footer<br/>[footer.php]"]
  node_admin_db_config["Admin DB connection<br/>[connect.php]"]
end

subgraph group_storage["Persistence"]
  node_database[("Restaurant database")]
end

node_customer(("Website visitor"))
node_admin_user(("Restaurant staff"))

node_customer -->|"browses"| node_home
node_customer -->|"places order"| node_order
node_customer -->|"reserves table"| node_reservation
node_home -->|"connects through"| node_public_db_config
node_home -->|"includes"| node_public_functions
node_home -->|"includes"| node_public_header
node_home -->|"includes"| node_public_nav
node_home -.->|"includes"| node_public_footer
node_home -->|"queries menus and gallery"| node_database
node_order -->|"connects through"| node_public_db_config
node_order -->|"includes"| node_public_functions
node_order -->|"includes"| node_public_header
node_order -->|"includes"| node_public_nav
node_order -->|"includes"| node_public_footer
node_order -.->|"reads and writes"| node_database
node_reservation -->|"connects through"| node_public_db_config
node_reservation -->|"includes"| node_public_functions
node_reservation -->|"includes"| node_public_header
node_reservation -->|"includes"| node_public_nav
node_reservation -->|"includes"| node_public_footer
node_reservation -.->|"records reservations"| node_database
node_contact -->|"imports"| node_public_functions
node_admin_user -->|"signs in"| node_login
node_login -->|"connects through"| node_admin_db_config
node_login -->|"includes"| node_admin_functions
node_login -->|"includes"| node_admin_header
node_login -->|"checks credentials"| node_database
node_login -->|"redirects after login"| node_dashboard
node_dashboard -->|"connects through"| node_admin_db_config
node_dashboard -->|"imports"| node_admin_functions
node_dashboard -->|"includes"| node_admin_header
node_dashboard -->|"includes"| node_admin_nav
node_dashboard -->|"includes"| node_admin_footer
node_dashboard -->|"reads dashboard data"| node_database
node_admin_menus -->|"connects through"| node_admin_db_config
node_admin_menus -->|"imports"| node_admin_functions
node_admin_menus -->|"includes"| node_admin_header
node_admin_menus -->|"includes"| node_admin_nav
node_admin_menus -->|"includes"| node_admin_footer
node_admin_menus -->|"manages menu data"| node_database
node_admin_ajax -->|"imports"| node_admin_db_config
node_admin_ajax -->|"imports"| node_admin_functions
node_admin_user -->|"manages clients"| node_clients
node_admin_user -->|"manages users"| node_users
node_admin_user -->|"manages categories"| node_categories
node_admin_user -->|"manages gallery"| node_gallery
node_admin_user -->|"opens settings"| node_settings
node_admin_user -->|"logs out"| node_logout

click node_home "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/index.php"
click node_order "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/order_food.php"
click node_reservation "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/table-reservation.php"
click node_contact "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/php-files-ajax/contact.php"
click node_public_functions "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/functions/functions.php"
click node_public_header "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/templates/header.php"
click node_public_nav "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/templates/navbar.php"
click node_public_footer "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/templates/footer.php"
click node_public_db_config "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/connect.php"
click node_login "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/index.php"
click node_dashboard "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/dashboard.php"
click node_admin_menus "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/menus.php"
click node_categories "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/menu_categories.php"
click node_gallery "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/gallery.php"
click node_clients "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/clients.php"
click node_users "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/users.php"
click node_settings "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/website-settings.php"
click node_logout "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/logout.php"
click node_admin_ajax "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/ajax_files/menus_ajax.php"
click node_admin_functions "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/Includes/functions/functions.php"
click node_admin_header "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/Includes/templates/header.php"
click node_admin_nav "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/Includes/templates/navbar.php"
click node_admin_footer "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/Includes/templates/footer.php"
click node_admin_db_config "https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/connect.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_order,node_reservation,node_contact toneBlue
class node_login,node_dashboard,node_admin_menus,node_categories,node_gallery,node_clients,node_users,node_settings,node_logout,node_admin_ajax toneAmber
class node_public_functions,node_public_header,node_public_nav,node_public_footer,node_public_db_config,node_admin_functions,node_admin_header,node_admin_nav,node_admin_footer,node_admin_db_config toneMint
class node_database toneRose
class node_customer,node_admin_user toneIndigo
```

## Components

### Customer website

- [Home and menus](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/index.php): `index.php`
- [Food ordering](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/order_food.php): `order_food.php`
- [Table reservation](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/table-reservation.php): `table-reservation.php`
- [Contact form handler](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/php-files-ajax/contact.php): `Includes/php-files-ajax/contact.php`

### Restaurant administration

- [Admin login](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/index.php): `admin/index.php`
- [Admin dashboard](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/dashboard.php): `admin/dashboard.php`
- [Menu management](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/menus.php): `admin/menus.php`
- [Category management](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/menu_categories.php): `admin/menu_categories.php`
- [Gallery management](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/gallery.php): `admin/gallery.php`
- [Client management](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/clients.php): `admin/clients.php`
- [User management](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/users.php): `admin/users.php`
- [Website settings](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/website-settings.php): `admin/website-settings.php`
- [Admin logout](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/logout.php): `admin/logout.php`
- [Admin AJAX handlers](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/ajax_files/menus_ajax.php): `admin/ajax_files/menus_ajax.php`

### Shared runtime

- [Public utilities](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/functions/functions.php): `Includes/functions/functions.php`
- [Public header](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/templates/header.php): `Includes/templates/header.php`
- [Public navigation](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/templates/navbar.php): `Includes/templates/navbar.php`
- [Public footer](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/Includes/templates/footer.php): `Includes/templates/footer.php`
- [Public DB connection](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/connect.php): `connect.php`
- [Admin utilities](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/Includes/functions/functions.php): `admin/Includes/functions/functions.php`
- [Admin header](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/Includes/templates/header.php): `admin/Includes/templates/header.php`
- [Admin navigation](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/Includes/templates/navbar.php): `admin/Includes/templates/navbar.php`
- [Admin footer](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/Includes/templates/footer.php): `admin/Includes/templates/footer.php`
- [Admin DB connection](https://github.com/jairiidriss/restaurant-website-php-mysql/blob/master/admin/connect.php): `admin/connect.php`

### Persistence

- **Restaurant database**

### Other components

- **Website visitor**
- **Restaurant staff**

## Connections

- Website visitor → Home and menus: browses
- Website visitor → Food ordering: places order (evidence: `README.md`)
- Website visitor → Table reservation: reserves table
- Home and menus → Public DB connection: connects through (evidence: `index.php`)
- Home and menus → Public utilities: includes (evidence: `index.php`)
- Home and menus → Public header: includes (evidence: `index.php`)
- Home and menus → Public navigation: includes (evidence: `index.php`)
- Home and menus → Public footer: includes (evidence: `index.php`)
- Home and menus → Restaurant database: queries menus and gallery (evidence: `index.php`)
- Food ordering → Public DB connection: connects through (evidence: `order_food.php`)
- Food ordering → Public utilities: includes (evidence: `order_food.php`)
- Food ordering → Public header: includes (evidence: `order_food.php`)
- Food ordering → Public navigation: includes (evidence: `order_food.php`)
- Food ordering → Public footer: includes (evidence: `order_food.php`)
- Food ordering → Restaurant database: reads and writes
- Table reservation → Public DB connection: connects through (evidence: `table-reservation.php`)
- Table reservation → Public utilities: includes (evidence: `table-reservation.php`)
- Table reservation → Public header: includes (evidence: `table-reservation.php`)
- Table reservation → Public navigation: includes (evidence: `table-reservation.php`)
- Table reservation → Public footer: includes (evidence: `table-reservation.php`)
- Table reservation → Restaurant database: records reservations
- Contact form handler → Public utilities: imports (evidence: `Includes/php-files-ajax/contact.php`)
- Restaurant staff → Admin login: signs in (evidence: `admin/index.php`)
- Admin login → Admin DB connection: connects through (evidence: `admin/index.php`)
- Admin login → Admin utilities: includes (evidence: `admin/index.php`)
- Admin login → Admin header: includes (evidence: `admin/index.php`)
- Admin login → Restaurant database: checks credentials (evidence: `admin/index.php`)
- Admin login → Admin dashboard: redirects after login (evidence: `admin/index.php`)
- Admin dashboard → Admin DB connection: connects through (evidence: `admin/dashboard.php`)
- Admin dashboard → Admin utilities: imports (evidence: `admin/dashboard.php`)
- Admin dashboard → Admin header: includes (evidence: `admin/dashboard.php`)
- Admin dashboard → Admin navigation: includes (evidence: `admin/dashboard.php`)
- Admin dashboard → Admin footer: includes (evidence: `admin/dashboard.php`)
- Admin dashboard → Restaurant database: reads dashboard data (evidence: `admin/dashboard.php`)
- Menu management → Admin DB connection: connects through (evidence: `admin/menus.php`)
- Menu management → Admin utilities: imports (evidence: `admin/menus.php`)
- Menu management → Admin header: includes (evidence: `admin/menus.php`)
- Menu management → Admin navigation: includes (evidence: `admin/menus.php`)
- Menu management → Admin footer: includes (evidence: `admin/menus.php`)
- Menu management → Restaurant database: manages menu data (evidence: `admin/menus.php`)
- Admin AJAX handlers → Admin DB connection: imports (evidence: `admin/ajax_files/menus_ajax.php`)
- Admin AJAX handlers → Admin utilities: imports (evidence: `admin/ajax_files/menus_ajax.php`)
- Restaurant staff → Client management: manages clients
- Restaurant staff → User management: manages users
- Restaurant staff → Category management: manages categories
- Restaurant staff → Gallery management: manages gallery
- Restaurant staff → Website settings: opens settings
- Restaurant staff → Admin logout: logs out
