# pratik0192/makextrab2b architecture

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

- Interactive diagram: https://gitdiagram.com/pratik0192/makextrab2b
- Repository: https://github.com/pratik0192/makextrab2b

## Overview

This is a Next.js wholesale-commerce and business-operations application: it combines a public product catalogue and enquiry entry points with administrative and sales workspaces for leads, orders, warehouse dispatch, and invoicing. The sampled code shows server-side route handling, shared persistence, tax calculation, and invoice-document generation. The README is only the generic Next.js starter, so capability details and most page-to-endpoint relationships come from the repository tree; those connections are not asserted where no relationship was shown.

Main entry points: [`src/app/api/leads/route.ts`](https://github.com/pratik0192/makextrab2b/blob/main/src/app/api/leads/route.ts) (Lead intake), [`src/lib/prisma.ts`](https://github.com/pratik0192/makextrab2b/blob/main/src/lib/prisma.ts) (Application database), [`src/app/api/admin/products/route.ts`](https://github.com/pratik0192/makextrab2b/blob/main/src/app/api/admin/products/route.ts) (Product API), [`src/lib/invoices.ts`](https://github.com/pratik0192/makextrab2b/blob/main/src/lib/invoices.ts) (Invoice operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Catalogue and storefront"]
  node_catalogue["Public catalogue"]
  node_enquiry["Wholesale enquiries"]
  node_catalog_admin["Catalogue management"]
  node_catalog_services["Catalogue services"]
  node_product_routes["Product API<br/>[route.ts]"]
end

subgraph group_crm["Sales and customer operations"]
  node_lead_route["Lead intake<br/>[route.ts]"]
  node_lead_workspace["Lead workspaces"]
  node_sales_workspace["Sales workspaces"]
  node_sales_api["Sales API"]
end

subgraph group_fulfillment["Warehouse and billing"]
  node_warehouse_workspace["Warehouse operations"]
  node_warehouse_api["Warehouse API"]
  node_invoice_workspace["Invoice workspace"]
  node_invoice_logic["Invoice operations<br/>[invoices.ts]"]
  node_tax_calculation["Tax calculation"]
end

subgraph group_platform["Application platform"]
  node_auth["Authentication<br/>[auth.ts]"]
  node_admin_auth["Admin authorization<br/>[admin-api.ts]"]
  node_database[("Application database<br/>[prisma.ts]")]
  node_cloudinary["Cloudinary assets"]
  node_invoice_pdf["Invoice PDF rendering<br/>[invoice-pdf.ts]"]
  node_http_client["HTTP client<br/>[axios.ts]"]
end

node_visitor(("Visitor"))

node_catalog_admin -->|"loads and updates"| node_catalog_services
node_enquiry -.->|"submits enquiry"| node_lead_route
node_lead_route -->|"creates lead"| node_database
node_lead_route -->|"uploads documents"| node_cloudinary
node_lead_route -->|"rate limits"| node_auth
node_product_routes -->|"reads and writes"| node_database
node_product_routes -->|"requires admin"| node_admin_auth
node_product_routes -->|"uploads images"| node_cloudinary
node_admin_auth -->|"checks session"| node_auth
node_auth -->|"loads user"| node_database
node_invoice_workspace -->|"sends requests"| node_http_client
node_invoice_workspace -->|"renders dispatch invoicing"| node_warehouse_workspace
node_invoice_logic -->|"calculates dispatch tax"| node_tax_calculation
node_invoice_logic -->|"renders invoice PDF"| node_invoice_pdf
node_invoice_logic -->|"stores PDF"| node_cloudinary
node_tax_calculation -->|"loads billing data"| node_database

click node_catalogue "https://github.com/pratik0192/makextrab2b/tree/main/src/components/storefront"
click node_enquiry "https://github.com/pratik0192/makextrab2b/blob/main/src/components/storefront/WholesaleEnquiryForm.tsx"
click node_catalog_admin "https://github.com/pratik0192/makextrab2b/blob/main/src/components/admin/CatalogueTaxonomyManager.tsx"
click node_catalog_services "https://github.com/pratik0192/makextrab2b/tree/main/src/services"
click node_product_routes "https://github.com/pratik0192/makextrab2b/blob/main/src/app/api/admin/products/route.ts"
click node_lead_route "https://github.com/pratik0192/makextrab2b/blob/main/src/app/api/leads/route.ts"
click node_lead_workspace "https://github.com/pratik0192/makextrab2b/tree/main/src/app/admin/leads"
click node_sales_workspace "https://github.com/pratik0192/makextrab2b/tree/main/src/app/sales"
click node_sales_api "https://github.com/pratik0192/makextrab2b/tree/main/src/app/api/quotations"
click node_warehouse_workspace "https://github.com/pratik0192/makextrab2b/blob/main/src/components/crm/WarehouseOperations.tsx"
click node_warehouse_api "https://github.com/pratik0192/makextrab2b/tree/main/src/app/api/warehouse"
click node_invoice_workspace "https://github.com/pratik0192/makextrab2b/blob/main/src/components/crm/InvoiceWorkspace.tsx"
click node_invoice_logic "https://github.com/pratik0192/makextrab2b/blob/main/src/lib/invoices.ts"
click node_tax_calculation "https://github.com/pratik0192/makextrab2b/blob/main/src/services/tax-calculation.service.ts"
click node_auth "https://github.com/pratik0192/makextrab2b/blob/main/src/lib/auth.ts"
click node_admin_auth "https://github.com/pratik0192/makextrab2b/blob/main/src/lib/admin-api.ts"
click node_database "https://github.com/pratik0192/makextrab2b/blob/main/src/lib/prisma.ts"
click node_invoice_pdf "https://github.com/pratik0192/makextrab2b/blob/main/src/lib/invoice-pdf.ts"
click node_http_client "https://github.com/pratik0192/makextrab2b/blob/main/src/lib/axios.ts"

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_catalogue,node_enquiry,node_catalog_admin,node_catalog_services,node_product_routes toneBlue
class node_lead_route,node_lead_workspace,node_sales_workspace,node_sales_api toneAmber
class node_warehouse_workspace,node_warehouse_api,node_invoice_workspace,node_invoice_logic,node_tax_calculation toneMint
class node_auth,node_admin_auth,node_database,node_cloudinary,node_invoice_pdf,node_http_client toneRose
class node_visitor toneIndigo
```

## Components

### Catalogue and storefront

- [Public catalogue](https://github.com/pratik0192/makextrab2b/tree/main/src/components/storefront): `src/components/storefront`
- [Wholesale enquiries](https://github.com/pratik0192/makextrab2b/blob/main/src/components/storefront/WholesaleEnquiryForm.tsx): `src/components/storefront/WholesaleEnquiryForm.tsx`
- [Catalogue management](https://github.com/pratik0192/makextrab2b/blob/main/src/components/admin/CatalogueTaxonomyManager.tsx): `src/components/admin/CatalogueTaxonomyManager.tsx`
- [Catalogue services](https://github.com/pratik0192/makextrab2b/tree/main/src/services): `src/services`
- [Product API](https://github.com/pratik0192/makextrab2b/blob/main/src/app/api/admin/products/route.ts): `src/app/api/admin/products/route.ts`

### Sales and customer operations

- [Lead intake](https://github.com/pratik0192/makextrab2b/blob/main/src/app/api/leads/route.ts): `src/app/api/leads/route.ts`
- [Lead workspaces](https://github.com/pratik0192/makextrab2b/tree/main/src/app/admin/leads): `src/app/admin/leads`
- [Sales workspaces](https://github.com/pratik0192/makextrab2b/tree/main/src/app/sales): `src/app/sales`
- [Sales API](https://github.com/pratik0192/makextrab2b/tree/main/src/app/api/quotations): `src/app/api/quotations`

### Warehouse and billing

- [Warehouse operations](https://github.com/pratik0192/makextrab2b/blob/main/src/components/crm/WarehouseOperations.tsx): `src/components/crm/WarehouseOperations.tsx`
- [Warehouse API](https://github.com/pratik0192/makextrab2b/tree/main/src/app/api/warehouse): `src/app/api/warehouse`
- [Invoice workspace](https://github.com/pratik0192/makextrab2b/blob/main/src/components/crm/InvoiceWorkspace.tsx): `src/components/crm/InvoiceWorkspace.tsx`
- [Invoice operations](https://github.com/pratik0192/makextrab2b/blob/main/src/lib/invoices.ts): `src/lib/invoices.ts`
- [Tax calculation](https://github.com/pratik0192/makextrab2b/blob/main/src/services/tax-calculation.service.ts): `src/services/tax-calculation.service.ts`

### Application platform

- [Authentication](https://github.com/pratik0192/makextrab2b/blob/main/src/lib/auth.ts): `src/lib/auth.ts`
- [Admin authorization](https://github.com/pratik0192/makextrab2b/blob/main/src/lib/admin-api.ts): `src/lib/admin-api.ts`
- [Application database](https://github.com/pratik0192/makextrab2b/blob/main/src/lib/prisma.ts): `src/lib/prisma.ts`
- **Cloudinary assets**
- [Invoice PDF rendering](https://github.com/pratik0192/makextrab2b/blob/main/src/lib/invoice-pdf.ts): `src/lib/invoice-pdf.ts`
- [HTTP client](https://github.com/pratik0192/makextrab2b/blob/main/src/lib/axios.ts): `src/lib/axios.ts`

### Other components

- **Visitor**

## Connections

- Catalogue management → Catalogue services: loads and updates (evidence: `src/components/admin/CatalogueTaxonomyManager.tsx`)
- Wholesale enquiries → Lead intake: submits enquiry
- Lead intake → Application database: creates lead (evidence: `src/app/api/leads/route.ts`)
- Lead intake → Cloudinary assets: uploads documents (evidence: `src/app/api/leads/route.ts`)
- Lead intake → Authentication: rate limits (evidence: `src/app/api/leads/route.ts`)
- Product API → Application database: reads and writes (evidence: `src/app/api/admin/products/route.ts`)
- Product API → Admin authorization: requires admin (evidence: `src/app/api/admin/products/route.ts`)
- Product API → Cloudinary assets: uploads images (evidence: `src/app/api/admin/products/route.ts`)
- Admin authorization → Authentication: checks session (evidence: `src/lib/admin-api.ts`)
- Authentication → Application database: loads user (evidence: `src/lib/auth.ts`)
- Invoice workspace → HTTP client: sends requests (evidence: `src/components/crm/InvoiceWorkspace.tsx`)
- Invoice workspace → Warehouse operations: renders dispatch invoicing (evidence: `src/components/crm/InvoiceWorkspace.tsx`)
- Invoice operations → Tax calculation: calculates dispatch tax (evidence: `src/lib/invoices.ts`)
- Invoice operations → Invoice PDF rendering: renders invoice PDF (evidence: `src/lib/invoices.ts`)
- Invoice operations → Cloudinary assets: stores PDF (evidence: `src/lib/invoices.ts`)
- Tax calculation → Application database: loads billing data (evidence: `src/services/tax-calculation.service.ts`)
