# tbs-toha/my-ecommerce-website architecture

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

- Interactive diagram: https://gitdiagram.com/tbs-toha/my-ecommerce-website
- Repository: https://github.com/tbs-toha/my-ecommerce-website

## Overview

TOHA’S MART is a server-backed storefront: customers browse products, manage carts and wishlists, and place cash-on-delivery orders; administrators manage catalog, inventory, orders, reviews, and reports. The browser clients call an Express API, with account and commerce routes handling customer operations and separate authentication and administration routes. SQLite holds application data and sessions. The README documents checkout and administration capabilities not fully visible in the sampled excerpts; their detailed internal call paths are therefore not inferred.

Main entry points: [`server.js`](https://github.com/tbs-toha/my-ecommerce-website/blob/main/server.js) (Express Server), [`customer-routes.js`](https://github.com/tbs-toha/my-ecommerce-website/blob/main/customer-routes.js) (Customer Commerce Routes), [`auth-routes.js`](https://github.com/tbs-toha/my-ecommerce-website/blob/main/auth-routes.js) (Authentication Routes), [`schema.sql`](https://github.com/tbs-toha/my-ecommerce-website/blob/main/schema.sql) (SQLite Database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_catalog["Product Catalog UI<br/>[app.js]"]
  node_seed_catalog["Seed Catalog<br/>[products.js]"]
  node_auth_ui["Sign In / Register<br/>[auth.js]"]
  node_cart_ui["Cart<br/>[cart.js]"]
  node_checkout_ui["Checkout<br/>[checkout.js]"]
  node_wishlist_ui["Wishlist<br/>[wishlist.js]"]
  node_account_ui["Account<br/>[account.js]"]
  node_order_ui["Order Details<br/>[order-details.js]"]
end

subgraph group_customer["Customer Commerce"]
end

subgraph group_admin["Administration"]
  node_admin_ui["Admin Console<br/>[admin.js]"]
  node_admin_commerce_ui["Admin Commerce UI<br/>[admin-commerce.js]"]
end

subgraph group_server["API Services"]
  node_auth_routes["Authentication Routes<br/>[auth-routes.js]"]
  node_customer_routes["Customer Commerce Routes<br/>[customer-routes.js]"]
  node_admin_routes["Admin Routes<br/>[admin-routes.js]"]
  node_server_entry["Express Server<br/>[server.js]"]
end

subgraph group_persistence["Persistence"]
  node_session_store["SQLite Session Store<br/>[session-store.js]"]
  node_sqlite[("SQLite Database<br/>[schema.sql]")]
end

node_shopper(("Shopper"))

node_shopper -->|"browses"| node_catalog
node_catalog -->|"uses fallback catalog"| node_seed_catalog
node_catalog -->|"requests products"| node_server_entry
node_shopper -->|"registers or signs in"| node_auth_ui
node_auth_ui -->|"posts credentials"| node_auth_routes
node_shopper -->|"manages cart"| node_cart_ui
node_shopper -->|"creates wishlist"| node_wishlist_ui
node_shopper -->|"places COD order"| node_checkout_ui
node_shopper -->|"manages account"| node_account_ui
node_shopper -->|"views order status"| node_order_ui
node_shopper -->|"administers store"| node_admin_ui
node_admin_ui -.->|"loads commerce tools"| node_admin_commerce_ui
node_admin_commerce_ui -->|"requests admin data"| node_admin_routes
node_account_ui -->|"requests account data"| node_customer_routes
node_server_entry -->|"registers routes"| node_auth_routes
node_server_entry -->|"registers routes"| node_customer_routes
node_server_entry -->|"registers routes"| node_admin_routes
node_server_entry -->|"configures sessions"| node_session_store
node_session_store -->|"reads and writes sessions"| node_sqlite
node_auth_routes -->|"reads and writes accounts"| node_sqlite
node_customer_routes -->|"uses password helpers"| node_auth_routes
node_customer_routes -->|"reads and writes commerce data"| node_sqlite
node_admin_routes -->|"reads and writes admin data"| node_sqlite

click node_catalog "https://github.com/tbs-toha/my-ecommerce-website/blob/main/app.js"
click node_seed_catalog "https://github.com/tbs-toha/my-ecommerce-website/blob/main/products.js"
click node_auth_ui "https://github.com/tbs-toha/my-ecommerce-website/blob/main/auth.js"
click node_cart_ui "https://github.com/tbs-toha/my-ecommerce-website/blob/main/cart.js"
click node_checkout_ui "https://github.com/tbs-toha/my-ecommerce-website/blob/main/checkout.js"
click node_wishlist_ui "https://github.com/tbs-toha/my-ecommerce-website/blob/main/wishlist.js"
click node_account_ui "https://github.com/tbs-toha/my-ecommerce-website/blob/main/account.js"
click node_order_ui "https://github.com/tbs-toha/my-ecommerce-website/blob/main/order-details.js"
click node_admin_ui "https://github.com/tbs-toha/my-ecommerce-website/blob/main/admin.js"
click node_admin_commerce_ui "https://github.com/tbs-toha/my-ecommerce-website/blob/main/admin-commerce.js"
click node_auth_routes "https://github.com/tbs-toha/my-ecommerce-website/blob/main/auth-routes.js"
click node_customer_routes "https://github.com/tbs-toha/my-ecommerce-website/blob/main/customer-routes.js"
click node_admin_routes "https://github.com/tbs-toha/my-ecommerce-website/blob/main/admin-routes.js"
click node_server_entry "https://github.com/tbs-toha/my-ecommerce-website/blob/main/server.js"
click node_session_store "https://github.com/tbs-toha/my-ecommerce-website/blob/main/session-store.js"
click node_sqlite "https://github.com/tbs-toha/my-ecommerce-website/blob/main/schema.sql"

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_catalog,node_seed_catalog,node_auth_ui,node_cart_ui,node_checkout_ui,node_wishlist_ui,node_account_ui,node_order_ui toneBlue
class node_admin_ui,node_admin_commerce_ui toneMint
class node_auth_routes,node_customer_routes,node_admin_routes,node_server_entry toneRose
class node_session_store,node_sqlite,node_shopper toneIndigo
```

## Components

### Storefront

- [Product Catalog UI](https://github.com/tbs-toha/my-ecommerce-website/blob/main/app.js): `app.js`
- [Seed Catalog](https://github.com/tbs-toha/my-ecommerce-website/blob/main/products.js): `products.js`
- [Sign In / Register](https://github.com/tbs-toha/my-ecommerce-website/blob/main/auth.js): `auth.js`
- [Cart](https://github.com/tbs-toha/my-ecommerce-website/blob/main/cart.js): `cart.js`
- [Checkout](https://github.com/tbs-toha/my-ecommerce-website/blob/main/checkout.js): `checkout.js`
- [Wishlist](https://github.com/tbs-toha/my-ecommerce-website/blob/main/wishlist.js): `wishlist.js`
- [Account](https://github.com/tbs-toha/my-ecommerce-website/blob/main/account.js): `account.js`
- [Order Details](https://github.com/tbs-toha/my-ecommerce-website/blob/main/order-details.js): `order-details.js`

### Administration

- [Admin Console](https://github.com/tbs-toha/my-ecommerce-website/blob/main/admin.js): `admin.js`
- [Admin Commerce UI](https://github.com/tbs-toha/my-ecommerce-website/blob/main/admin-commerce.js): `admin-commerce.js`

### API Services

- [Authentication Routes](https://github.com/tbs-toha/my-ecommerce-website/blob/main/auth-routes.js): `auth-routes.js`
- [Customer Commerce Routes](https://github.com/tbs-toha/my-ecommerce-website/blob/main/customer-routes.js): `customer-routes.js`
- [Admin Routes](https://github.com/tbs-toha/my-ecommerce-website/blob/main/admin-routes.js): `admin-routes.js`
- [Express Server](https://github.com/tbs-toha/my-ecommerce-website/blob/main/server.js): `server.js`

### Persistence

- [SQLite Session Store](https://github.com/tbs-toha/my-ecommerce-website/blob/main/session-store.js): `session-store.js`
- [SQLite Database](https://github.com/tbs-toha/my-ecommerce-website/blob/main/schema.sql): `schema.sql`

### Other components

- **Shopper**

## Connections

- Shopper → Product Catalog UI: browses (evidence: `README.md`)
- Product Catalog UI → Seed Catalog: uses fallback catalog (evidence: `app.js`)
- Product Catalog UI → Express Server: requests products (evidence: `app.js`)
- Shopper → Sign In / Register: registers or signs in (evidence: `README.md`)
- Sign In / Register → Authentication Routes: posts credentials (evidence: `auth.js`)
- Shopper → Cart: manages cart (evidence: `README.md`)
- Shopper → Wishlist: creates wishlist (evidence: `README.md`)
- Shopper → Checkout: places COD order (evidence: `README.md`)
- Shopper → Account: manages account (evidence: `README.md`)
- Shopper → Order Details: views order status (evidence: `README.md`)
- Shopper → Admin Console: administers store (evidence: `README.md`)
- Admin Console → Admin Commerce UI: loads commerce tools
- Admin Commerce UI → Admin Routes: requests admin data (evidence: `admin-commerce.js`)
- Account → Customer Commerce Routes: requests account data (evidence: `account.js`)
- Express Server → Authentication Routes: registers routes (evidence: `server.js`)
- Express Server → Customer Commerce Routes: registers routes (evidence: `server.js`)
- Express Server → Admin Routes: registers routes (evidence: `server.js`)
- Express Server → SQLite Session Store: configures sessions (evidence: `server.js`)
- SQLite Session Store → SQLite Database: reads and writes sessions (evidence: `session-store.js`)
- Authentication Routes → SQLite Database: reads and writes accounts (evidence: `auth-routes.js`)
- Customer Commerce Routes → Authentication Routes: uses password helpers (evidence: `customer-routes.js`)
- Customer Commerce Routes → SQLite Database: reads and writes commerce data (evidence: `customer-routes.js`)
- Admin Routes → SQLite Database: reads and writes admin data (evidence: `admin-routes.js`)
