# tpavans/ld-interiors-ai architecture

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

- Interactive diagram: https://gitdiagram.com/tpavans/ld-interiors-ai
- Repository: https://github.com/tpavans/ld-interiors-ai

## Overview

LD Interiors is a custom-furniture showroom and ordering application. Customers browse and rate designs, submit orders, pay and track progress; administrators manage catalog entries and orders. The README also describes the conversational assistant, support, and affiliate catalog. The sampled files confirm core API routing, order/payment behavior, and assistant product/order lookups; unsampled implementations are represented only where README/tree evidence supports them.

Main entry points: [`backend/server.js`](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/server.js) (Express API), [`frontend/src/utils/api.js`](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/utils/api.js) (API client), [`backend/controllers/orderController.js`](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/orderController.js) (Order and payment logic), [`backend/controllers/productController.js`](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/productController.js) (Catalog operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_showroom["Customer showroom"]
  node_showroom["Showroom pages<br/>[page.js]"]
  node_catalog["Product catalog<br/>[page.js]"]
  node_productdetail["Product details<br/>[page.js]"]
  node_productroutes["Catalog routes<br/>[productRoutes.js]"]
  node_productcontroller["Catalog operations"]
  node_categories["Category routes<br/>[categoryRoutes.js]"]
end

subgraph group_commerce["Orders and payments"]
  node_ordersui["Order tracking<br/>[page.js]"]
  node_orderroutes["Order routes<br/>[orderRoutes.js]"]
  node_ordercontroller["Order and payment logic<br/>[orderController.js]"]
  node_phonepe["PhonePe payments"]
end

subgraph group_operations["Admin and support"]
  node_adminui["Admin dashboard"]
  node_supportui["Support form<br/>[page.js]"]
  node_authroutes["Authentication routes<br/>[authRoutes.js]"]
  node_authcontroller["Authentication<br/>[authController.js]"]
  node_supportroutes["Support requests<br/>[supportRoutes.js]"]
  node_analytics["Analytics routes<br/>[analyticsRoutes.js]"]
  node_email["Email notifications<br/>[sendEmail.js]"]
  node_voice["Customer voice calls<br/>[voiceCall.js]"]
end

subgraph group_platform["API and data"]
  node_apiutil["API client<br/>[api.js]"]
  node_server["Express API<br/>[server.js]"]
  node_productmodel[("Product records<br/>[Product.js]")]
  node_ordermodel[("Order records<br/>[Order.js]")]
  node_supportmodel[("Support records<br/>[SupportRequest.js]")]
  node_amazonmodel[("Affiliate records<br/>[AmazonProduct.js]")]
  node_cloudinary["Cloudinary storage<br/>[cloudinary.js]"]
end

subgraph group_discovery["Assistant and affiliate"]
  node_clientwrapper["LD Assistant<br/>[ClientWrapper.js]"]
  node_amazonui["Affiliate endpoint<br/>[route.js]"]
  node_amazonroutes["Affiliate routes<br/>[amazonRoutes.js]"]
  node_amazoncontroller["Affiliate catalog"]
end

node_customer(("Customer"))
node_mongodb[("MongoDB")]
node_cloudinaryservice(("Cloudinary"))
node_paymentservices(("Payment gateways"))

node_customer -->|"browses"| node_showroom
node_customer -->|"explores designs"| node_catalog
node_customer -->|"views design"| node_productdetail
node_customer -->|"tracks order"| node_ordersui
node_customer -->|"requests help"| node_supportui
node_showroom -->|"links to"| node_catalog
node_catalog -->|"requests products"| node_apiutil
node_productdetail -->|"loads and rates"| node_apiutil
node_ordersui -->|"requests tracking"| node_apiutil
node_supportui -->|"submits ticket"| node_apiutil
node_adminui -->|"manages data"| node_apiutil
node_clientwrapper -->|"searches and tracks"| node_apiutil
node_apiutil -->|"sends API requests"| node_server
node_server -->|"dispatches"| node_productroutes
node_server -->|"dispatches"| node_orderroutes
node_server -->|"dispatches"| node_authroutes
node_server -->|"dispatches"| node_supportroutes
node_server -->|"dispatches"| node_amazonroutes
node_server -->|"dispatches"| node_categories
node_server -->|"dispatches"| node_analytics
node_productroutes -->|"invokes"| node_productcontroller
node_productcontroller -->|"reads and writes"| node_productmodel
node_productcontroller -->|"uploads and deletes"| node_cloudinary
node_cloudinary -->|"stores images"| node_cloudinaryservice
node_productcontroller -->|"persists products"| node_mongodb
node_orderroutes -->|"invokes"| node_ordercontroller
node_ordercontroller -->|"reads and updates"| node_ordermodel
node_ordercontroller -->|"manages reference images"| node_cloudinary
node_ordercontroller -->|"sends notices"| node_email
node_ordercontroller -->|"triggers calls"| node_voice
node_ordercontroller -.->|"creates and verifies payments"| node_paymentservices
node_server -->|"dispatches"| node_phonepe
node_phonepe -->|"updates payments"| node_ordermodel
node_phonepe -.->|"initiates and checks"| node_paymentservices
node_authroutes -->|"invokes"| node_authcontroller
node_authcontroller -->|"reads and updates users"| node_mongodb
node_supportroutes -->|"creates and reads"| node_supportmodel
node_supportroutes -->|"sends alert"| node_email
node_amazonui -.->|"proxies requests"| node_amazonroutes
node_amazonroutes -->|"invokes"| node_amazoncontroller
node_amazoncontroller -->|"reads and writes"| node_amazonmodel
node_clientwrapper -->|"loads search catalog"| node_productroutes
node_clientwrapper -->|"tracks by phone"| node_orderroutes

click node_showroom "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/page.js"
click node_catalog "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/products/page.js"
click node_productdetail "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/products/%5Bid%5D/page.js"
click node_clientwrapper "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/components/ClientWrapper.js"
click node_adminui "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/components/AdminDashboardComponent.js"
click node_ordersui "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/orders/page.js"
click node_supportui "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/support/page.js"
click node_apiutil "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/utils/api.js"
click node_amazonui "https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/api/amazon/route.js"
click node_server "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/server.js"
click node_productroutes "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/productRoutes.js"
click node_productcontroller "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/productController.js"
click node_productmodel "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/models/Product.js"
click node_orderroutes "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/orderRoutes.js"
click node_ordercontroller "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/orderController.js"
click node_ordermodel "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/models/Order.js"
click node_authroutes "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/authRoutes.js"
click node_authcontroller "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/authController.js"
click node_supportroutes "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/supportRoutes.js"
click node_supportmodel "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/models/SupportRequest.js"
click node_amazonroutes "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/amazonRoutes.js"
click node_amazoncontroller "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/amazonController.js"
click node_amazonmodel "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/models/AmazonProduct.js"
click node_categories "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/categoryRoutes.js"
click node_analytics "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/analyticsRoutes.js"
click node_phonepe "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/phonepeController.js"
click node_cloudinary "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/config/cloudinary.js"
click node_email "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/utils/sendEmail.js"
click node_voice "https://github.com/tpavans/ld-interiors-ai/blob/main/backend/utils/voiceCall.js"

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_showroom,node_catalog,node_productdetail,node_productroutes,node_productcontroller,node_categories toneBlue
class node_ordersui,node_orderroutes,node_ordercontroller,node_phonepe,node_mongodb toneAmber
class node_adminui,node_supportui,node_authroutes,node_authcontroller,node_supportroutes,node_analytics,node_email,node_voice toneMint
class node_apiutil,node_server,node_productmodel,node_ordermodel,node_supportmodel,node_amazonmodel,node_cloudinary toneRose
class node_clientwrapper,node_amazonui,node_amazonroutes,node_amazoncontroller,node_customer,node_cloudinaryservice,node_paymentservices toneIndigo
```

## Components

### Customer showroom

- [Showroom pages](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/page.js): `frontend/src/app/page.js`
- [Product catalog](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/products/page.js): `frontend/src/app/products/page.js`
- [Product details](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/products/%5Bid%5D/page.js): `frontend/src/app/products/[id]/page.js`
- [Catalog routes](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/productRoutes.js): `backend/routes/productRoutes.js`
- [Catalog operations](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/productController.js): `backend/controllers/productController.js`
- [Category routes](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/categoryRoutes.js): `backend/routes/categoryRoutes.js`

### Orders and payments

- [Order tracking](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/orders/page.js): `frontend/src/app/orders/page.js`
- [Order routes](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/orderRoutes.js): `backend/routes/orderRoutes.js`
- [Order and payment logic](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/orderController.js): `backend/controllers/orderController.js`
- [PhonePe payments](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/phonepeController.js): `backend/controllers/phonepeController.js`

### Admin and support

- [Admin dashboard](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/components/AdminDashboardComponent.js): `frontend/src/components/AdminDashboardComponent.js`
- [Support form](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/support/page.js): `frontend/src/app/support/page.js`
- [Authentication routes](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/authRoutes.js): `backend/routes/authRoutes.js`
- [Authentication](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/authController.js): `backend/controllers/authController.js`
- [Support requests](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/supportRoutes.js): `backend/routes/supportRoutes.js`
- [Analytics routes](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/analyticsRoutes.js): `backend/routes/analyticsRoutes.js`
- [Email notifications](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/utils/sendEmail.js): `backend/utils/sendEmail.js`
- [Customer voice calls](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/utils/voiceCall.js): `backend/utils/voiceCall.js`

### API and data

- [API client](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/utils/api.js): `frontend/src/utils/api.js`
- [Express API](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/server.js): `backend/server.js`
- [Product records](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/models/Product.js): `backend/models/Product.js`
- [Order records](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/models/Order.js): `backend/models/Order.js`
- [Support records](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/models/SupportRequest.js): `backend/models/SupportRequest.js`
- [Affiliate records](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/models/AmazonProduct.js): `backend/models/AmazonProduct.js`
- [Cloudinary storage](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/config/cloudinary.js): `backend/config/cloudinary.js`

### Assistant and affiliate

- [LD Assistant](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/components/ClientWrapper.js): `frontend/src/components/ClientWrapper.js`
- [Affiliate endpoint](https://github.com/tpavans/ld-interiors-ai/blob/main/frontend/src/app/api/amazon/route.js): `frontend/src/app/api/amazon/route.js`
- [Affiliate routes](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/routes/amazonRoutes.js): `backend/routes/amazonRoutes.js`
- [Affiliate catalog](https://github.com/tpavans/ld-interiors-ai/blob/main/backend/controllers/amazonController.js): `backend/controllers/amazonController.js`

### Other components

- **Customer**
- **MongoDB**
- **Cloudinary**
- **Payment gateways**

## Connections

- Customer → Showroom pages: browses
- Customer → Product catalog: explores designs
- Customer → Product details: views design
- Customer → Order tracking: tracks order
- Customer → Support form: requests help
- Showroom pages → Product catalog: links to
- Product catalog → API client: requests products
- Product details → API client: loads and rates
- Order tracking → API client: requests tracking
- Support form → API client: submits ticket
- Admin dashboard → API client: manages data
- LD Assistant → API client: searches and tracks
- API client → Express API: sends API requests
- Express API → Catalog routes: dispatches
- Express API → Order routes: dispatches
- Express API → Authentication routes: dispatches
- Express API → Support requests: dispatches
- Express API → Affiliate routes: dispatches
- Express API → Category routes: dispatches
- Express API → Analytics routes: dispatches
- Catalog routes → Catalog operations: invokes
- Catalog operations → Product records: reads and writes
- Catalog operations → Cloudinary storage: uploads and deletes
- Cloudinary storage → Cloudinary: stores images
- Catalog operations → MongoDB: persists products
- Order routes → Order and payment logic: invokes
- Order and payment logic → Order records: reads and updates
- Order and payment logic → Cloudinary storage: manages reference images
- Order and payment logic → Email notifications: sends notices
- Order and payment logic → Customer voice calls: triggers calls
- Order and payment logic → Payment gateways: creates and verifies payments
- Express API → PhonePe payments: dispatches
- PhonePe payments → Order records: updates payments
- PhonePe payments → Payment gateways: initiates and checks
- Authentication routes → Authentication: invokes
- Authentication → MongoDB: reads and updates users
- Support requests → Support records: creates and reads
- Support requests → Email notifications: sends alert
- Affiliate endpoint → Affiliate routes: proxies requests
- Affiliate routes → Affiliate catalog: invokes
- Affiliate catalog → Affiliate records: reads and writes
- LD Assistant → Catalog routes: loads search catalog
- LD Assistant → Order routes: tracks by phone
