# trishank18/tilevista architecture

> Architecture diagram of the GitHub repository trishank18/tilevista, 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/trishank18/tilevista
- Repository: https://github.com/trishank18/tilevista

## Overview

TileVista is a tile-commerce storefront with customer accounts, product discovery, cart and checkout, order tracking, enquiries, and an administration area. The customer flow is browsing products, adding items to a cart, placing an order, then viewing order status; account authentication gates personal orders. Admins manage orders, customers, enquiries, settings, and catalog content. The tree and excerpts show both a Flask/SQLite API and Netlify functions using blob stores; their deployment relationship is not established, so they are shown as separate backend implementations. Some feature wiring is inferred only where the sampled code or endpoint names support it.

Main entry points: [`netlify/functions/admin-data.js`](https://github.com/trishank18/tilevista/blob/main/netlify/functions/admin-data.js) (Admin data API), [`admin/dashboard.html`](https://github.com/trishank18/tilevista/blob/main/admin/dashboard.html) (Admin pages), [`netlify/functions/orders.js`](https://github.com/trishank18/tilevista/blob/main/netlify/functions/orders.js) (Order API), [`products.html`](https://github.com/trishank18/tilevista/blob/main/products.html) (Storefront pages)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Customer storefront"]
  node_storefront_pages["Storefront pages<br/>[products.html]"]
  node_product_browse["Product discovery<br/>[products.js]"]
  node_cart["Cart and checkout<br/>[cart.js]"]
  node_site_runtime["Site runtime<br/>[main.js]"]
end

subgraph group_customer["Customer services"]
  node_account_pages["Account pages<br/>[profile.html]"]
  node_order_pages["Order pages<br/>[my-orders.html]"]
  node_inquiry_pages["Enquiry pages<br/>[quote.html]"]
end

subgraph group_admin["Administration"]
  node_admin_pages["Admin pages<br/>[dashboard.html]"]
  node_admin_runtime["Admin dashboard runtime<br/>[admin.js]"]
  node_admin_catalog["Catalog management<br/>[admin-products.js]"]
  node_admin_data_ui["Admin data views<br/>[admin-data.js]"]
  node_admin_extra_ui["Admin settings and enquiries<br/>[admin-extra.js]"]
end

subgraph group_backend["Backend services"]
  node_product_api["Product API<br/>[products.js]"]
  node_customer_auth["Customer authentication<br/>[auth.js]"]
  node_orders_api["Order API<br/>[orders.js]"]
  node_inquiry_api["Inquiry API<br/>[submit-inquiry.js]"]
  node_admin_auth_api["Admin authentication<br/>[admin-auth.js]"]
  node_admin_data_api["Admin data API<br/>[admin-data.js]"]
  node_sqlite_api["Flask API<br/>[app.py]"]
end

subgraph group_state["Persistent state"]
  node_blob_auth[("Account blob store<br/>[auth.js]")]
  node_blob_orders[("Order blob store<br/>[orders.js]")]
  node_blob_inquiries[("Inquiry blob store<br/>[submit-inquiry.js]")]
  node_sqlite_db[("SQLite database<br/>[app.py]")]
end

node_shopper(("Shopper"))

node_shopper -->|"browses"| node_storefront_pages
node_storefront_pages -->|"loads"| node_product_browse
node_product_browse -->|"requests products"| node_product_api
node_site_runtime -->|"loads deleted IDs"| node_product_api
node_shopper -->|"shops"| node_cart
node_cart -->|"places order"| node_orders_api
node_shopper -->|"manages account"| node_account_pages
node_account_pages -->|"authenticates"| node_customer_auth
node_shopper -->|"views orders"| node_order_pages
node_order_pages -->|"requests orders"| node_orders_api
node_shopper -->|"submits enquiry"| node_inquiry_pages
node_inquiry_pages -->|"submits fields"| node_inquiry_api
node_shopper -->|"administers"| node_admin_pages
node_admin_pages -->|"loads"| node_admin_runtime
node_admin_catalog -->|"manages catalog"| node_admin_data_api
node_admin_data_ui -->|"requests data"| node_admin_data_api
node_admin_extra_ui -->|"requests data"| node_admin_data_api
node_admin_pages -->|"authenticates"| node_admin_auth_api
node_customer_auth -->|"reads and writes"| node_blob_auth
node_orders_api -->|"reads and writes"| node_blob_orders
node_inquiry_api -->|"writes inquiry"| node_blob_inquiries
node_admin_data_api -->|"reads users"| node_blob_auth
node_admin_data_api -->|"reads orders"| node_blob_orders
node_admin_data_api -->|"reads enquiries"| node_blob_inquiries
node_sqlite_api -->|"reads and writes"| node_sqlite_db

click node_storefront_pages "https://github.com/trishank18/tilevista/blob/main/products.html"
click node_product_browse "https://github.com/trishank18/tilevista/blob/main/js/products.js"
click node_cart "https://github.com/trishank18/tilevista/blob/main/js/cart.js"
click node_site_runtime "https://github.com/trishank18/tilevista/blob/main/js/main.js"
click node_account_pages "https://github.com/trishank18/tilevista/blob/main/profile.html"
click node_order_pages "https://github.com/trishank18/tilevista/blob/main/my-orders.html"
click node_inquiry_pages "https://github.com/trishank18/tilevista/blob/main/quote.html"
click node_product_api "https://github.com/trishank18/tilevista/blob/main/netlify/functions/products.js"
click node_customer_auth "https://github.com/trishank18/tilevista/blob/main/netlify/functions/auth.js"
click node_orders_api "https://github.com/trishank18/tilevista/blob/main/netlify/functions/orders.js"
click node_inquiry_api "https://github.com/trishank18/tilevista/blob/main/netlify/functions/submit-inquiry.js"
click node_admin_pages "https://github.com/trishank18/tilevista/blob/main/admin/dashboard.html"
click node_admin_runtime "https://github.com/trishank18/tilevista/blob/main/js/admin.js"
click node_admin_catalog "https://github.com/trishank18/tilevista/blob/main/js/admin-products.js"
click node_admin_data_ui "https://github.com/trishank18/tilevista/blob/main/js/admin-data.js"
click node_admin_extra_ui "https://github.com/trishank18/tilevista/blob/main/js/admin-extra.js"
click node_admin_auth_api "https://github.com/trishank18/tilevista/blob/main/netlify/functions/admin-auth.js"
click node_admin_data_api "https://github.com/trishank18/tilevista/blob/main/netlify/functions/admin-data.js"
click node_blob_auth "https://github.com/trishank18/tilevista/blob/main/netlify/functions/auth.js"
click node_blob_orders "https://github.com/trishank18/tilevista/blob/main/netlify/functions/orders.js"
click node_blob_inquiries "https://github.com/trishank18/tilevista/blob/main/netlify/functions/submit-inquiry.js"
click node_sqlite_api "https://github.com/trishank18/tilevista/blob/main/app.py"
click node_sqlite_db "https://github.com/trishank18/tilevista/blob/main/app.py"

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_pages,node_product_browse,node_cart,node_site_runtime toneBlue
class node_account_pages,node_order_pages,node_inquiry_pages toneAmber
class node_admin_pages,node_admin_runtime,node_admin_catalog,node_admin_data_ui,node_admin_extra_ui toneMint
class node_product_api,node_customer_auth,node_orders_api,node_inquiry_api,node_admin_auth_api,node_admin_data_api,node_sqlite_api toneRose
class node_blob_auth,node_blob_orders,node_blob_inquiries,node_sqlite_db,node_shopper toneIndigo
```

## Components

### Customer storefront

- [Storefront pages](https://github.com/trishank18/tilevista/blob/main/products.html): `products.html`
- [Product discovery](https://github.com/trishank18/tilevista/blob/main/js/products.js): `js/products.js`
- [Cart and checkout](https://github.com/trishank18/tilevista/blob/main/js/cart.js): `js/cart.js`
- [Site runtime](https://github.com/trishank18/tilevista/blob/main/js/main.js): `js/main.js`

### Customer services

- [Account pages](https://github.com/trishank18/tilevista/blob/main/profile.html): `profile.html`
- [Order pages](https://github.com/trishank18/tilevista/blob/main/my-orders.html): `my-orders.html`
- [Enquiry pages](https://github.com/trishank18/tilevista/blob/main/quote.html): `quote.html`

### Administration

- [Admin pages](https://github.com/trishank18/tilevista/blob/main/admin/dashboard.html): `admin/dashboard.html`
- [Admin dashboard runtime](https://github.com/trishank18/tilevista/blob/main/js/admin.js): `js/admin.js`
- [Catalog management](https://github.com/trishank18/tilevista/blob/main/js/admin-products.js): `js/admin-products.js`
- [Admin data views](https://github.com/trishank18/tilevista/blob/main/js/admin-data.js): `js/admin-data.js`
- [Admin settings and enquiries](https://github.com/trishank18/tilevista/blob/main/js/admin-extra.js): `js/admin-extra.js`

### Backend services

- [Product API](https://github.com/trishank18/tilevista/blob/main/netlify/functions/products.js): `netlify/functions/products.js`
- [Customer authentication](https://github.com/trishank18/tilevista/blob/main/netlify/functions/auth.js): `netlify/functions/auth.js`
- [Order API](https://github.com/trishank18/tilevista/blob/main/netlify/functions/orders.js): `netlify/functions/orders.js`
- [Inquiry API](https://github.com/trishank18/tilevista/blob/main/netlify/functions/submit-inquiry.js): `netlify/functions/submit-inquiry.js`
- [Admin authentication](https://github.com/trishank18/tilevista/blob/main/netlify/functions/admin-auth.js): `netlify/functions/admin-auth.js`
- [Admin data API](https://github.com/trishank18/tilevista/blob/main/netlify/functions/admin-data.js): `netlify/functions/admin-data.js`
- [Flask API](https://github.com/trishank18/tilevista/blob/main/app.py): `app.py`

### Persistent state

- [Account blob store](https://github.com/trishank18/tilevista/blob/main/netlify/functions/auth.js): `netlify/functions/auth.js`
- [Order blob store](https://github.com/trishank18/tilevista/blob/main/netlify/functions/orders.js): `netlify/functions/orders.js`
- [Inquiry blob store](https://github.com/trishank18/tilevista/blob/main/netlify/functions/submit-inquiry.js): `netlify/functions/submit-inquiry.js`
- [SQLite database](https://github.com/trishank18/tilevista/blob/main/app.py): `app.py`

### Other components

- **Shopper**

## Connections

- Shopper → Storefront pages: browses
- Storefront pages → Product discovery: loads
- Product discovery → Product API: requests products
- Site runtime → Product API: loads deleted IDs
- Shopper → Cart and checkout: shops
- Cart and checkout → Order API: places order
- Shopper → Account pages: manages account
- Account pages → Customer authentication: authenticates
- Shopper → Order pages: views orders
- Order pages → Order API: requests orders
- Shopper → Enquiry pages: submits enquiry
- Enquiry pages → Inquiry API: submits fields
- Shopper → Admin pages: administers
- Admin pages → Admin dashboard runtime: loads
- Catalog management → Admin data API: manages catalog
- Admin data views → Admin data API: requests data
- Admin settings and enquiries → Admin data API: requests data
- Admin pages → Admin authentication: authenticates
- Customer authentication → Account blob store: reads and writes
- Order API → Order blob store: reads and writes
- Inquiry API → Inquiry blob store: writes inquiry
- Admin data API → Account blob store: reads users
- Admin data API → Order blob store: reads orders
- Admin data API → Inquiry blob store: reads enquiries
- Flask API → SQLite database: reads and writes
