# givanz/vvveb architecture

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

- Interactive diagram: https://gitdiagram.com/givanz/vvveb
- Repository: https://github.com/givanz/vvveb

## Overview

Vvveb is a multi-site CMS and ecommerce platform with a drag-and-drop page builder and REST/GraphQL headless interfaces. A typical customer browses a storefront, manages a cart, and checks out; administrators manage content, products, orders, sites, and themes. The map preserves those product areas and shared runtime services. README documents several capabilities whose internal wiring is not shown in the sampled source, so those subsystems are represented without speculative call edges.

Main entry points: [`system/core/frontcontroller.php`](https://github.com/givanz/vvveb/blob/master/system/core/frontcontroller.php) (Front Controller), [`admin/index.php`](https://github.com/givanz/vvveb/blob/master/admin/index.php) (Admin Entry), [`app/controller/product/index.php`](https://github.com/givanz/vvveb/blob/master/app/controller/product/index.php) (Product Catalog), [`app/controller/cart/cart.php`](https://github.com/givanz/vvveb/blob/master/app/controller/cart/cart.php) (Cart Operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_app_routes["Storefront Routes<br/>[app-routes.php]"]
  node_catalog["Product Catalog<br/>[index.php]"]
  node_product_detail["Product Details<br/>[product.php]"]
  node_cart["Cart Operations<br/>[cart.php]"]
  node_checkout["Checkout<br/>[checkout.php]"]
  node_orders["Customer Orders<br/>[orders.php]"]
end

subgraph group_admin["Administration"]
  node_admin_entry["Admin Entry<br/>[index.php]"]
  node_content_admin["Content Management<br/>[posts.php]"]
  node_product_admin["Product Management<br/>[products.php]"]
  node_order_admin["Order Management<br/>[orders.php]"]
  node_site_admin["Site Settings<br/>[sites.php]"]
  node_page_builder["Page Builder<br/>[builder.js]"]
end

subgraph group_interfaces["API Interfaces"]
  node_rest_api["REST API<br/>[index.php]"]
  node_graphql_api["GraphQL API<br/>[index.php]"]
end

subgraph group_runtime["Runtime Services"]
  node_frontcontroller["Front Controller"]
  node_route_matcher["Route Matcher<br/>[routes.php]"]
  node_database[("Database Drivers<br/>[db.php]")]
end

subgraph group_setup["Installation"]
  node_installer["Installer<br/>[index.php]"]
end

node_customer(("Customer"))
node_admin_user(("Administrator"))

node_customer -->|"requests pages"| node_app_routes
node_app_routes -->|"defines routes"| node_route_matcher
node_frontcontroller -->|"matches paths"| node_route_matcher
node_frontcontroller -->|"dispatches"| node_catalog
node_frontcontroller -->|"dispatches"| node_product_detail
node_frontcontroller -->|"dispatches"| node_cart
node_frontcontroller -->|"dispatches"| node_checkout
node_frontcontroller -->|"dispatches"| node_orders
node_customer -->|"browses"| node_catalog
node_customer -->|"updates cart"| node_cart
node_customer -->|"submits purchase"| node_checkout
node_customer -->|"views orders"| node_orders
node_admin_user -->|"opens console"| node_admin_entry
node_admin_entry -->|"dispatches"| node_content_admin
node_admin_entry -->|"dispatches"| node_product_admin
node_admin_entry -->|"dispatches"| node_order_admin
node_admin_entry -->|"dispatches"| node_site_admin
node_admin_user -->|"edits pages"| node_page_builder
node_customer -->|"API requests"| node_rest_api
node_customer -->|"GraphQL requests"| node_graphql_api
node_admin_user -->|"sets up system"| node_installer
node_catalog -->|"reads catalog"| node_database
node_cart -->|"accesses cart data"| node_database
node_checkout -->|"persists purchase"| node_database

click node_app_routes "https://github.com/givanz/vvveb/blob/master/config/app-routes.php"
click node_catalog "https://github.com/givanz/vvveb/blob/master/app/controller/product/index.php"
click node_product_detail "https://github.com/givanz/vvveb/blob/master/app/controller/product/product.php"
click node_cart "https://github.com/givanz/vvveb/blob/master/app/controller/cart/cart.php"
click node_checkout "https://github.com/givanz/vvveb/blob/master/app/controller/checkout/checkout.php"
click node_orders "https://github.com/givanz/vvveb/blob/master/app/controller/user/orders.php"
click node_admin_entry "https://github.com/givanz/vvveb/blob/master/admin/index.php"
click node_content_admin "https://github.com/givanz/vvveb/blob/master/admin/controller/content/posts.php"
click node_product_admin "https://github.com/givanz/vvveb/blob/master/admin/controller/product/products.php"
click node_order_admin "https://github.com/givanz/vvveb/blob/master/admin/controller/order/orders.php"
click node_site_admin "https://github.com/givanz/vvveb/blob/master/admin/controller/settings/sites.php"
click node_page_builder "https://github.com/givanz/vvveb/blob/master/public/js/vvvebjs/builder.js"
click node_rest_api "https://github.com/givanz/vvveb/blob/master/rest/controller/index.php"
click node_graphql_api "https://github.com/givanz/vvveb/blob/master/graphql/controller/index.php"
click node_frontcontroller "https://github.com/givanz/vvveb/blob/master/system/core/frontcontroller.php"
click node_route_matcher "https://github.com/givanz/vvveb/blob/master/system/routes.php"
click node_database "https://github.com/givanz/vvveb/blob/master/system/db.php"
click node_installer "https://github.com/givanz/vvveb/blob/master/install/controller/index.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_app_routes,node_catalog,node_product_detail,node_cart,node_checkout,node_orders toneBlue
class node_admin_entry,node_content_admin,node_product_admin,node_order_admin,node_site_admin,node_page_builder toneAmber
class node_rest_api,node_graphql_api toneMint
class node_frontcontroller,node_route_matcher,node_database toneRose
class node_installer,node_customer,node_admin_user toneIndigo
```

## Components

### Storefront

- [Storefront Routes](https://github.com/givanz/vvveb/blob/master/config/app-routes.php): `config/app-routes.php`
- [Product Catalog](https://github.com/givanz/vvveb/blob/master/app/controller/product/index.php): `app/controller/product/index.php`
- [Product Details](https://github.com/givanz/vvveb/blob/master/app/controller/product/product.php): `app/controller/product/product.php`
- [Cart Operations](https://github.com/givanz/vvveb/blob/master/app/controller/cart/cart.php): `app/controller/cart/cart.php`
- [Checkout](https://github.com/givanz/vvveb/blob/master/app/controller/checkout/checkout.php): `app/controller/checkout/checkout.php`
- [Customer Orders](https://github.com/givanz/vvveb/blob/master/app/controller/user/orders.php): `app/controller/user/orders.php`

### Administration

- [Admin Entry](https://github.com/givanz/vvveb/blob/master/admin/index.php): `admin/index.php`
- [Content Management](https://github.com/givanz/vvveb/blob/master/admin/controller/content/posts.php): `admin/controller/content/posts.php`
- [Product Management](https://github.com/givanz/vvveb/blob/master/admin/controller/product/products.php): `admin/controller/product/products.php`
- [Order Management](https://github.com/givanz/vvveb/blob/master/admin/controller/order/orders.php): `admin/controller/order/orders.php`
- [Site Settings](https://github.com/givanz/vvveb/blob/master/admin/controller/settings/sites.php): `admin/controller/settings/sites.php`
- [Page Builder](https://github.com/givanz/vvveb/blob/master/public/js/vvvebjs/builder.js): `public/js/vvvebjs/builder.js`

### API Interfaces

- [REST API](https://github.com/givanz/vvveb/blob/master/rest/controller/index.php): `rest/controller/index.php`
- [GraphQL API](https://github.com/givanz/vvveb/blob/master/graphql/controller/index.php): `graphql/controller/index.php`

### Runtime Services

- [Front Controller](https://github.com/givanz/vvveb/blob/master/system/core/frontcontroller.php): `system/core/frontcontroller.php`
- [Route Matcher](https://github.com/givanz/vvveb/blob/master/system/routes.php): `system/routes.php`
- [Database Drivers](https://github.com/givanz/vvveb/blob/master/system/db.php): `system/db.php`

### Installation

- [Installer](https://github.com/givanz/vvveb/blob/master/install/controller/index.php): `install/controller/index.php`

### Other components

- **Customer**
- **Administrator**

## Connections

- Customer → Storefront Routes: requests pages
- Storefront Routes → Route Matcher: defines routes
- Front Controller → Route Matcher: matches paths
- Front Controller → Product Catalog: dispatches
- Front Controller → Product Details: dispatches
- Front Controller → Cart Operations: dispatches
- Front Controller → Checkout: dispatches
- Front Controller → Customer Orders: dispatches
- Customer → Product Catalog: browses
- Customer → Cart Operations: updates cart
- Customer → Checkout: submits purchase
- Customer → Customer Orders: views orders
- Administrator → Admin Entry: opens console
- Admin Entry → Content Management: dispatches
- Admin Entry → Product Management: dispatches
- Admin Entry → Order Management: dispatches
- Admin Entry → Site Settings: dispatches
- Administrator → Page Builder: edits pages
- Customer → REST API: API requests
- Customer → GraphQL API: GraphQL requests
- Administrator → Installer: sets up system
- Product Catalog → Database Drivers: reads catalog
- Cart Operations → Database Drivers: accesses cart data
- Checkout → Database Drivers: persists purchase
