# fandio2001/joinery-management architecture

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

- Interactive diagram: https://gitdiagram.com/fandio2001/joinery-management
- Repository: https://github.com/fandio2001/joinery-management

## Overview

This appears to be a Laravel workshop ERP with a customer-facing shop. Its main workflow spans product discovery, cart and checkout, order handling and quotation approval, then workshop production, stock, and invoicing. The tree also shows employee, reporting, and administration capabilities. Sampled controllers confirm product CRUD and quote/order state changes; other feature links reflect the listed modules, not inspected controller wiring. The README describes Laravel rather than this product, so product capabilities are inferred from the source tree.

Main entry points: [`routes/web.php`](https://github.com/fandio2001/joinery-management/blob/main/routes/web.php) (Web routes), [`app/Http/Controllers/QuoteController.php`](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/QuoteController.php) (Quotes and approval), [`app/Http/Controllers/OrderController.php`](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/OrderController.php) (Order management), [`app/Models/Order.php`](https://github.com/fandio2001/joinery-management/blob/main/app/Models/Order.php) (Eloquent domain models)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_http["Laravel request entry<br/>[index.php]"]
  node_routing["Web routes<br/>[web.php]"]
  node_models["Eloquent domain models<br/>[Order.php]"]
  node_views["Blade interface"]
end

subgraph group_commerce["Shop and orders"]
  node_shop["Shop browsing<br/>[ShopController.php]"]
  node_cart["Cart<br/>[CartController.php]"]
  node_checkout["Checkout"]
  node_orders["Order management"]
  node_customerorders["Customer orders"]
  node_quotes["Quotes and approval"]
  node_products["Product catalog"]
end

subgraph group_operations["Workshop operations"]
  node_production["Production planning"]
  node_tasks["Production tasks"]
  node_calendar["Production calendar"]
  node_stock["Stock control"]
  node_materials["Stock materials"]
end

subgraph group_admin["Business administration"]
  node_invoices["Invoices"]
  node_people["Employees and leave"]
  node_reports["Reports and dashboard"]
  node_customers["Customer administration"]
end

node_customer(("Customer or staff"))
node_database[("Application database<br/>[database.php]")]

node_customer -->|"sends request"| node_http
node_http -->|"loads routes"| node_routing
node_routing -->|"dispatches"| node_shop
node_routing -->|"dispatches"| node_cart
node_routing -->|"dispatches"| node_checkout
node_routing -->|"dispatches"| node_orders
node_routing -->|"dispatches"| node_customerorders
node_routing -->|"dispatches"| node_quotes
node_routing -->|"dispatches"| node_products
node_routing -->|"dispatches"| node_production
node_routing -->|"dispatches"| node_tasks
node_routing -->|"dispatches"| node_calendar
node_routing -->|"dispatches"| node_stock
node_routing -->|"dispatches"| node_materials
node_routing -->|"dispatches"| node_invoices
node_routing -->|"dispatches"| node_people
node_routing -->|"dispatches"| node_reports
node_routing -->|"dispatches"| node_customers
node_products -->|"queries and updates"| node_models
node_orders -->|"reads and updates"| node_models
node_quotes -->|"creates and updates"| node_models
node_quotes -->|"updates order"| node_orders
node_models -->|"persists data"| node_database
node_products -->|"renders catalog views"| node_views
node_orders -->|"renders order views"| node_views
node_quotes -->|"renders quote views"| node_views

click node_http "https://github.com/fandio2001/joinery-management/blob/main/public/index.php"
click node_routing "https://github.com/fandio2001/joinery-management/blob/main/routes/web.php"
click node_shop "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ShopController.php"
click node_cart "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/CartController.php"
click node_checkout "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/CheckoutController.php"
click node_orders "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/OrderController.php"
click node_customerorders "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/CustomerOrderController.php"
click node_quotes "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/QuoteController.php"
click node_products "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ProductController.php"
click node_production "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ProductionController.php"
click node_tasks "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ProductionTaskController.php"
click node_calendar "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ProductionCalendarController.php"
click node_stock "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/StockController.php"
click node_materials "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/StockMaterialController.php"
click node_invoices "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/InvoiceController.php"
click node_people "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/EmployeeController.php"
click node_reports "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ReportController.php"
click node_customers "https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/CustomerController.php"
click node_models "https://github.com/fandio2001/joinery-management/blob/main/app/Models/Order.php"
click node_database "https://github.com/fandio2001/joinery-management/blob/main/config/database.php"
click node_views "https://github.com/fandio2001/joinery-management/tree/main/resources/views"

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_http,node_routing,node_models,node_views toneBlue
class node_shop,node_cart,node_checkout,node_orders,node_customerorders,node_quotes,node_products,node_database toneAmber
class node_production,node_tasks,node_calendar,node_stock,node_materials toneMint
class node_invoices,node_people,node_reports,node_customers toneRose
class node_customer toneIndigo
```

## Components

### Web entry

- [Laravel request entry](https://github.com/fandio2001/joinery-management/blob/main/public/index.php): `public/index.php`
- [Web routes](https://github.com/fandio2001/joinery-management/blob/main/routes/web.php): `routes/web.php`
- [Eloquent domain models](https://github.com/fandio2001/joinery-management/blob/main/app/Models/Order.php): `app/Models/Order.php`
- [Blade interface](https://github.com/fandio2001/joinery-management/tree/main/resources/views): `resources/views`

### Shop and orders

- [Shop browsing](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ShopController.php): `app/Http/Controllers/ShopController.php`
- [Cart](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/CartController.php): `app/Http/Controllers/CartController.php`
- [Checkout](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/CheckoutController.php): `app/Http/Controllers/CheckoutController.php`
- [Order management](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/OrderController.php): `app/Http/Controllers/OrderController.php`
- [Customer orders](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/CustomerOrderController.php): `app/Http/Controllers/CustomerOrderController.php`
- [Quotes and approval](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/QuoteController.php): `app/Http/Controllers/QuoteController.php`
- [Product catalog](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ProductController.php): `app/Http/Controllers/ProductController.php`

### Workshop operations

- [Production planning](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ProductionController.php): `app/Http/Controllers/ProductionController.php`
- [Production tasks](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ProductionTaskController.php): `app/Http/Controllers/ProductionTaskController.php`
- [Production calendar](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ProductionCalendarController.php): `app/Http/Controllers/ProductionCalendarController.php`
- [Stock control](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/StockController.php): `app/Http/Controllers/StockController.php`
- [Stock materials](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/StockMaterialController.php): `app/Http/Controllers/StockMaterialController.php`

### Business administration

- [Invoices](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/InvoiceController.php): `app/Http/Controllers/InvoiceController.php`
- [Employees and leave](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/EmployeeController.php): `app/Http/Controllers/EmployeeController.php`
- [Reports and dashboard](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/ReportController.php): `app/Http/Controllers/ReportController.php`
- [Customer administration](https://github.com/fandio2001/joinery-management/blob/main/app/Http/Controllers/CustomerController.php): `app/Http/Controllers/CustomerController.php`

### Other components

- **Customer or staff**
- [Application database](https://github.com/fandio2001/joinery-management/blob/main/config/database.php): `config/database.php`

## Connections

- Customer or staff → Laravel request entry: sends request
- Laravel request entry → Web routes: loads routes
- Web routes → Shop browsing: dispatches
- Web routes → Cart: dispatches
- Web routes → Checkout: dispatches
- Web routes → Order management: dispatches
- Web routes → Customer orders: dispatches
- Web routes → Quotes and approval: dispatches
- Web routes → Product catalog: dispatches
- Web routes → Production planning: dispatches
- Web routes → Production tasks: dispatches
- Web routes → Production calendar: dispatches
- Web routes → Stock control: dispatches
- Web routes → Stock materials: dispatches
- Web routes → Invoices: dispatches
- Web routes → Employees and leave: dispatches
- Web routes → Reports and dashboard: dispatches
- Web routes → Customer administration: dispatches
- Product catalog → Eloquent domain models: queries and updates
- Order management → Eloquent domain models: reads and updates
- Quotes and approval → Eloquent domain models: creates and updates
- Quotes and approval → Order management: updates order
- Eloquent domain models → Application database: persists data
- Product catalog → Blade interface: renders catalog views
- Order management → Blade interface: renders order views
- Quotes and approval → Blade interface: renders quote views
