# kirilkirkov/ecommerce-codeigniter-bootstrap architecture

> Architecture diagram of the GitHub repository kirilkirkov/ecommerce-codeigniter-bootstrap, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kirilkirkov/ecommerce-codeigniter-bootstrap
- Repository: https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap

## Overview

This repository is a CodeIgniter-based multilingual, multi-vendor shopping platform. The main customer journey is browsing products, managing a cart, and checking out; the platform also provides vendor and administrator workflows, content management, and a REST API. The graph preserves those documented capabilities, but many application internals were not sampled, so uncertain controller-to-model and payment links are shown as unverified rather than asserted. The framework runtime is included as the internal request-routing layer.

Main entry points: [`application/config/database.php`](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/config/database.php) (Configured database), [`application/controllers/Checkout.php`](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Checkout.php) (Checkout and payments), [`application/modules/admin/controllers/ecommerce/Orders.php`](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/ecommerce/Orders.php) (Order administration), [`application/controllers/Api/Products.php`](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Api/Products.php) (Products API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_home["Browse and search<br/>[Home.php]"]
  node_products["Product pages<br/>[Page.php]"]
  node_publicdata["Catalog and content data<br/>[Public_model.php]"]
end

subgraph group_commerce["Commerce and vendors"]
  node_cartpage["Shopping cart page"]
  node_cart["Cart operations<br/>[ShoppingCart.php]"]
  node_checkout["Checkout and payments<br/>[Checkout.php]"]
  node_vendor["Vendor portal<br/>[Vendor.php]"]
end

subgraph group_management["Administration and content"]
  node_adminorders["Order administration<br/>[Orders.php]"]
  node_adminpublish["Product publishing<br/>[Publish.php]"]
  node_admincontent["Pages and blog<br/>[TextualPages.php]"]
  node_blogpublish["Blog publishing<br/>[BlogPublish.php]"]
end

subgraph group_platform["API and framework"]
  node_database[("Configured database<br/>[database.php]")]
  node_api["Products API<br/>[Products.php]"]
  node_rest["REST controller layer"]
  node_format["Response formatting<br/>[Format.php]"]
  node_runtime["Framework routing<br/>[CodeIgniter.php]"]
  node_routes["Application routes<br/>[routes.php]"]
end

node_shopper(("Shopper"))
node_request(("HTTP request"))

node_shopper -->|"browses"| node_home
node_shopper -.->|"views products"| node_products
node_shopper -->|"opens cart"| node_cartpage
node_cartpage -.->|"uses cart"| node_cart
node_shopper -->|"checks out"| node_checkout
node_home -.->|"loads catalog"| node_publicdata
node_products -.->|"loads content"| node_publicdata
node_checkout -.->|"records orders"| node_database
node_checkout -.->|"creates orders"| node_adminorders
node_adminorders -.->|"updates stock"| node_database
node_adminorders -.->|"sends notification"| node_shopper
node_vendor -.->|"manages vendor data"| node_database
node_adminpublish -.->|"manages products"| node_database
node_admincontent -.->|"manages pages"| node_database
node_blogpublish -.->|"publishes posts"| node_database
node_request -->|"enters"| node_runtime
node_runtime -->|"loads routes"| node_routes
node_routes -->|"routes cart"| node_cartpage
node_routes -->|"routes payment"| node_checkout
node_request -.->|"calls API"| node_api
node_api -.->|"uses REST layer"| node_rest
node_rest -->|"formats responses"| node_format
node_api -.->|"reads product data"| node_publicdata

click node_home "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Home.php"
click node_products "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Page.php"
click node_publicdata "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/models/Public_model.php"
click node_cartpage "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/ShoppingCartPage.php"
click node_cart "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/libraries/ShoppingCart.php"
click node_checkout "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Checkout.php"
click node_vendor "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Vendor.php"
click node_adminorders "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/ecommerce/Orders.php"
click node_adminpublish "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/ecommerce/Publish.php"
click node_admincontent "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/textual_pages/TextualPages.php"
click node_blogpublish "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/blog/BlogPublish.php"
click node_database "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/config/database.php"
click node_api "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Api/Products.php"
click node_rest "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/libraries/REST_Controller.php"
click node_format "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/libraries/Format.php"
click node_runtime "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/system/core/CodeIgniter.php"
click node_routes "https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/config/routes.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_products,node_publicdata toneBlue
class node_cartpage,node_cart,node_checkout,node_vendor toneAmber
class node_adminorders,node_adminpublish,node_admincontent,node_blogpublish,node_request toneMint
class node_database,node_api,node_rest,node_format,node_runtime,node_routes toneRose
class node_shopper toneIndigo
```

## Components

### Storefront

- [Browse and search](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Home.php): `application/controllers/Home.php`
- [Product pages](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Page.php): `application/controllers/Page.php`
- [Catalog and content data](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/models/Public_model.php): `application/models/Public_model.php`

### Commerce and vendors

- [Shopping cart page](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/ShoppingCartPage.php): `application/controllers/ShoppingCartPage.php`
- [Cart operations](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/libraries/ShoppingCart.php): `application/libraries/ShoppingCart.php`
- [Checkout and payments](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Checkout.php): `application/controllers/Checkout.php`
- [Vendor portal](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Vendor.php): `application/controllers/Vendor.php`

### Administration and content

- [Order administration](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/ecommerce/Orders.php): `application/modules/admin/controllers/ecommerce/Orders.php`
- [Product publishing](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/ecommerce/Publish.php): `application/modules/admin/controllers/ecommerce/Publish.php`
- [Pages and blog](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/textual_pages/TextualPages.php): `application/modules/admin/controllers/textual_pages/TextualPages.php`
- [Blog publishing](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/modules/admin/controllers/blog/BlogPublish.php): `application/modules/admin/controllers/blog/BlogPublish.php`

### API and framework

- [Configured database](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/config/database.php): `application/config/database.php`
- [Products API](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/controllers/Api/Products.php): `application/controllers/Api/Products.php`
- [REST controller layer](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/libraries/REST_Controller.php): `application/libraries/REST_Controller.php`
- [Response formatting](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/libraries/Format.php): `application/libraries/Format.php`
- [Framework routing](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/system/core/CodeIgniter.php): `system/core/CodeIgniter.php`
- [Application routes](https://github.com/kirilkirkov/ecommerce-codeigniter-bootstrap/blob/master/application/config/routes.php): `application/config/routes.php`

### Other components

- **Shopper**
- **HTTP request**

## Connections

- Shopper → Browse and search: browses (evidence: `README.md`)
- Shopper → Product pages: views products
- Shopper → Shopping cart page: opens cart
- Shopping cart page → Cart operations: uses cart
- Shopper → Checkout and payments: checks out (evidence: `README.md`)
- Browse and search → Catalog and content data: loads catalog
- Product pages → Catalog and content data: loads content
- Checkout and payments → Configured database: records orders
- Checkout and payments → Order administration: creates orders
- Order administration → Configured database: updates stock
- Order administration → Shopper: sends notification
- Vendor portal → Configured database: manages vendor data
- Product publishing → Configured database: manages products
- Pages and blog → Configured database: manages pages
- Blog publishing → Configured database: publishes posts
- HTTP request → Framework routing: enters
- Framework routing → Application routes: loads routes (evidence: `system/core/CodeIgniter.php`)
- Application routes → Shopping cart page: routes cart (evidence: `application/config/routes.php`)
- Application routes → Checkout and payments: routes payment (evidence: `application/config/routes.php`)
- HTTP request → Products API: calls API
- Products API → REST controller layer: uses REST layer
- REST controller layer → Response formatting: formats responses (evidence: `application/libraries/REST_Controller.php`)
- Products API → Catalog and content data: reads product data
