# gmh-saber/l-pro architecture

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

- Interactive diagram: https://gitdiagram.com/gmh-saber/l-pro
- Repository: https://github.com/gmh-saber/l-pro

## Overview

Projoss is a Laravel e-commerce platform for storefront shopping and administration, with a React/Inertia interface and Laravel controllers, services, and models. The primary customer journey is browsing products, managing a cart, applying a coupon, and placing an order; checkout also enforces fraud checks, updates stock, and sends order notifications. Separate branches cover customer accounts and reviews, store merchandising, abandoned-checkout recovery, and courier fulfillment. The README documents payment and courier capabilities; sampled excerpts directly confirm checkout, review moderation, and courier-provider resolution, but not every integration call.

Main entry points: [`app/Http/Controllers/CheckoutController.php`](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/CheckoutController.php) (Checkout), [`app/Models/Product.php`](https://github.com/gmh-saber/l-pro/blob/main/app/Models/Product.php) (Store Data), [`routes/web.php`](https://github.com/gmh-saber/l-pro/blob/main/routes/web.php) (Web Request), [`resources/js/Pages/Admin`](https://github.com/gmh-saber/l-pro/tree/main/resources/js/Pages/Admin) (Admin Interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_storefront_ui["Storefront UI"]
  node_product_browse["Product Browsing"]
  node_account_auth["Customer Accounts"]
  node_reviews["Product Reviews"]
  node_order_result["Order Confirmation"]
end

subgraph group_commerce["Commerce"]
  node_cart["Cart<br/>[CartService.php]"]
  node_checkout["Checkout"]
  node_coupon["Coupons<br/>[CouponService.php]"]
  node_orders["Orders &amp; Inventory<br/>[Order.php]"]
  node_fraud_guard["Fraud Protection"]
  node_fraud_rules[("Fraud Blocks<br/>[BlockedIp.php]")]
end

subgraph group_operations["Store Operations"]
  node_admin_ui["Admin Interface"]
  node_catalog_admin["Catalog &amp; Marketing"]
  node_store_settings["Store Settings"]
  node_recovery["Abandoned Checkout CRM"]
  node_review_moderation["Review Moderation"]
end

subgraph group_fulfillment["Fulfillment"]
  node_courier_dispatch["Courier Dispatch"]
  node_courier_providers["Courier Providers"]
end

subgraph group_platform["Application"]
  node_store_data[("Store Data<br/>[Product.php]")]
  node_mail["Email Notifications<br/>[helpers.php]"]
  node_web_entry["Web Request<br/>[web.php]"]
end

node_shopper(("Shopper"))
node_courier_network{{"Courier Services"}}

node_shopper -->|"requests"| node_web_entry
node_web_entry -->|"routes to"| node_product_browse
node_web_entry -->|"routes to"| node_account_auth
node_web_entry -->|"routes to"| node_checkout
node_web_entry -->|"routes to"| node_reviews
node_web_entry -->|"serves"| node_admin_ui
node_product_browse -->|"reads catalog"| node_store_data
node_product_browse -->|"renders"| node_storefront_ui
node_account_auth -->|"authenticates users"| node_store_data
node_storefront_ui -->|"manages cart"| node_cart
node_checkout -->|"reads items"| node_cart
node_checkout -->|"applies discounts"| node_coupon
node_checkout -->|"checks blocks"| node_fraud_rules
node_checkout -.->|"checks risk"| node_fraud_guard
node_checkout -->|"creates order"| node_orders
node_checkout -->|"decrements stock"| node_store_data
node_checkout -->|"sends notifications"| node_mail
node_checkout -->|"redirects to"| node_order_result
node_reviews -->|"reads product and orders"| node_store_data
node_reviews -->|"creates pending review"| node_store_data
node_admin_ui -->|"manages catalog"| node_catalog_admin
node_admin_ui -->|"configures storefront"| node_store_settings
node_admin_ui -->|"manages recovery"| node_recovery
node_admin_ui -->|"moderates reviews"| node_review_moderation
node_catalog_admin -->|"updates catalog"| node_store_data
node_store_settings -->|"stores settings"| node_store_data
node_recovery -->|"reads checkout records"| node_store_data
node_review_moderation -->|"updates reviews"| node_store_data
node_courier_dispatch -->|"resolves provider"| node_courier_providers
node_courier_providers -.->|"creates parcels"| node_courier_network

click node_storefront_ui "https://github.com/gmh-saber/l-pro/tree/main/resources/js/Pages/Storefront"
click node_product_browse "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/ProductController.php"
click node_account_auth "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Auth/LoginController.php"
click node_reviews "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/ReviewController.php"
click node_cart "https://github.com/gmh-saber/l-pro/blob/main/app/Services/CartService.php"
click node_checkout "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/CheckoutController.php"
click node_coupon "https://github.com/gmh-saber/l-pro/blob/main/app/Services/CouponService.php"
click node_orders "https://github.com/gmh-saber/l-pro/blob/main/app/Models/Order.php"
click node_order_result "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/CheckoutController.php"
click node_fraud_guard "https://github.com/gmh-saber/l-pro/blob/main/app/Services/FraudGuardFactory.php"
click node_fraud_rules "https://github.com/gmh-saber/l-pro/blob/main/app/Models/BlockedIp.php"
click node_admin_ui "https://github.com/gmh-saber/l-pro/tree/main/resources/js/Pages/Admin"
click node_catalog_admin "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Admin/ProductController.php"
click node_store_settings "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Admin/SettingController.php"
click node_recovery "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Admin/AbandonedCheckoutController.php"
click node_review_moderation "https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Admin/ReviewController.php"
click node_courier_dispatch "https://github.com/gmh-saber/l-pro/blob/main/app/Services/CourierManagerService.php"
click node_courier_providers "https://github.com/gmh-saber/l-pro/tree/main/app/Services/Courier"
click node_store_data "https://github.com/gmh-saber/l-pro/blob/main/app/Models/Product.php"
click node_mail "https://github.com/gmh-saber/l-pro/blob/main/app/helpers.php"
click node_web_entry "https://github.com/gmh-saber/l-pro/blob/main/routes/web.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_storefront_ui,node_product_browse,node_account_auth,node_reviews,node_order_result toneBlue
class node_cart,node_checkout,node_coupon,node_orders,node_fraud_guard,node_fraud_rules toneAmber
class node_admin_ui,node_catalog_admin,node_store_settings,node_recovery,node_review_moderation toneMint
class node_courier_dispatch,node_courier_providers toneRose
class node_store_data,node_mail,node_web_entry,node_shopper,node_courier_network toneIndigo
```

## Components

### Storefront

- [Storefront UI](https://github.com/gmh-saber/l-pro/tree/main/resources/js/Pages/Storefront): `resources/js/Pages/Storefront`
- [Product Browsing](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/ProductController.php): `app/Http/Controllers/ProductController.php`
- [Customer Accounts](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Auth/LoginController.php): `app/Http/Controllers/Auth/LoginController.php`
- [Product Reviews](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/ReviewController.php): `app/Http/Controllers/ReviewController.php`
- [Order Confirmation](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/CheckoutController.php): `app/Http/Controllers/CheckoutController.php`

### Commerce

- [Cart](https://github.com/gmh-saber/l-pro/blob/main/app/Services/CartService.php): `app/Services/CartService.php`
- [Checkout](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/CheckoutController.php): `app/Http/Controllers/CheckoutController.php`
- [Coupons](https://github.com/gmh-saber/l-pro/blob/main/app/Services/CouponService.php): `app/Services/CouponService.php`
- [Orders & Inventory](https://github.com/gmh-saber/l-pro/blob/main/app/Models/Order.php): `app/Models/Order.php`
- [Fraud Protection](https://github.com/gmh-saber/l-pro/blob/main/app/Services/FraudGuardFactory.php): `app/Services/FraudGuardFactory.php`
- [Fraud Blocks](https://github.com/gmh-saber/l-pro/blob/main/app/Models/BlockedIp.php): `app/Models/BlockedIp.php`

### Store Operations

- [Admin Interface](https://github.com/gmh-saber/l-pro/tree/main/resources/js/Pages/Admin): `resources/js/Pages/Admin`
- [Catalog & Marketing](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Admin/ProductController.php): `app/Http/Controllers/Admin/ProductController.php`
- [Store Settings](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Admin/SettingController.php): `app/Http/Controllers/Admin/SettingController.php`
- [Abandoned Checkout CRM](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Admin/AbandonedCheckoutController.php): `app/Http/Controllers/Admin/AbandonedCheckoutController.php`
- [Review Moderation](https://github.com/gmh-saber/l-pro/blob/main/app/Http/Controllers/Admin/ReviewController.php): `app/Http/Controllers/Admin/ReviewController.php`

### Fulfillment

- [Courier Dispatch](https://github.com/gmh-saber/l-pro/blob/main/app/Services/CourierManagerService.php): `app/Services/CourierManagerService.php`
- [Courier Providers](https://github.com/gmh-saber/l-pro/tree/main/app/Services/Courier): `app/Services/Courier`

### Application

- [Store Data](https://github.com/gmh-saber/l-pro/blob/main/app/Models/Product.php): `app/Models/Product.php`
- [Email Notifications](https://github.com/gmh-saber/l-pro/blob/main/app/helpers.php): `app/helpers.php`
- [Web Request](https://github.com/gmh-saber/l-pro/blob/main/routes/web.php): `routes/web.php`

### Other components

- **Shopper**
- **Courier Services**

## Connections

- Shopper → Web Request: requests
- Web Request → Product Browsing: routes to
- Web Request → Customer Accounts: routes to
- Web Request → Checkout: routes to
- Web Request → Product Reviews: routes to
- Web Request → Admin Interface: serves
- Product Browsing → Store Data: reads catalog
- Product Browsing → Storefront UI: renders
- Customer Accounts → Store Data: authenticates users
- Storefront UI → Cart: manages cart
- Checkout → Cart: reads items
- Checkout → Coupons: applies discounts
- Checkout → Fraud Blocks: checks blocks
- Checkout → Fraud Protection: checks risk
- Checkout → Orders & Inventory: creates order
- Checkout → Store Data: decrements stock
- Checkout → Email Notifications: sends notifications
- Checkout → Order Confirmation: redirects to
- Product Reviews → Store Data: reads product and orders
- Product Reviews → Store Data: creates pending review
- Admin Interface → Catalog & Marketing: manages catalog
- Admin Interface → Store Settings: configures storefront
- Admin Interface → Abandoned Checkout CRM: manages recovery
- Admin Interface → Review Moderation: moderates reviews
- Catalog & Marketing → Store Data: updates catalog
- Store Settings → Store Data: stores settings
- Abandoned Checkout CRM → Store Data: reads checkout records
- Review Moderation → Store Data: updates reviews
- Courier Dispatch → Courier Providers: resolves provider
- Courier Providers → Courier Services: creates parcels
