# ashadansari/veron architecture

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

## Overview

VÉRON is a Nepal-focused clothing storefront with customer accounts and an admin console. The main customer journey is browsing the catalog, selecting product variants, maintaining a cart, and placing a server-validated Cash on Delivery order; order confirmation and account order history follow. Authentication and customer account management form a separate branch, while administrators manage catalog, inventory, orders, and store settings. The graph reflects documented product capabilities and shown imports/calls; checkout, order management, and several route implementations were not excerpted, so their links rely on README statements.

Main entry points: [`src/db/index.ts`](https://github.com/ashadansari/veron/blob/main/src/db/index.ts) (PostgreSQL data), [`src/app/actions/admin.ts`](https://github.com/ashadansari/veron/blob/main/src/app/actions/admin.ts) (Admin actions), [`src/lib/catalog/repository.ts`](https://github.com/ashadansari/veron/blob/main/src/lib/catalog/repository.ts) (Catalog reads), [`src/lib/commerce/checkout.ts`](https://github.com/ashadansari/veron/blob/main/src/lib/commerce/checkout.ts) (Checkout transaction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storefront["Storefront"]
  node_storefront["Storefront pages<br/>[page.tsx]"]
  node_catalog["Catalog reads<br/>[repository.ts]"]
  node_samplecatalog["Sample catalog<br/>[sample-data.ts]"]
  node_productviews["Product views<br/>[page.tsx]"]
  node_cartui["Cart state<br/>[cart-provider.tsx]"]
  node_cartstorage["Browser cart storage<br/>[cart-storage.ts]"]
  node_checkoutui["Checkout review"]
end

subgraph group_identity["Identity and Accounts"]
  node_authui["Authentication forms<br/>[auth-form.tsx]"]
  node_authapi["Auth endpoints<br/>[route.ts]"]
  node_auth["Better Auth<br/>[auth.ts]"]
  node_authorization["Session authorization<br/>[authz.ts]"]
  node_accountservice["Account management<br/>[account-service.ts]"]
end

subgraph group_commerce["Commerce Operations"]
  node_placeorder["Order action<br/>[place-order.ts]"]
  node_checkout["Checkout transaction<br/>[checkout.ts]"]
  node_confirmation["Order confirmation<br/>[page.tsx]"]
  node_paymentcallback["Payment callback<br/>[route.ts]"]
  node_paymentprocessing["Payment processing"]
  node_provider["Payment provider interface"]
  node_orderservice["Order management"]
end

subgraph group_admin["Administration"]
  node_adminui["Admin console<br/>[page.tsx]"]
  node_adminforms["Catalog forms<br/>[admin-forms.tsx]"]
  node_adminactions["Admin actions<br/>[admin.ts]"]
  node_admincatalog["Catalog administration<br/>[catalog-service.ts]"]
  node_admincustomers["Customer administration"]
  node_settings["Store settings"]
end

subgraph group_data["Persistence"]
  node_database[("PostgreSQL data<br/>[index.ts]")]
  node_schema["Commerce and auth schema<br/>[schema.ts]"]
  node_prisma["Prisma catalog client<br/>[prisma.ts]"]
end

node_shopper(("Shopper"))
node_customer(("Customer"))
node_adminuser(("Administrator"))

node_shopper -->|"browses"| node_storefront
node_storefront -->|"loads catalog"| node_catalog
node_catalog -->|"falls back"| node_samplecatalog
node_catalog -->|"queries products"| node_prisma
node_shopper -->|"selects product"| node_productviews
node_productviews -.->|"loads details"| node_catalog
node_shopper -->|"manages cart"| node_cartui
node_cartui -->|"stores snapshot"| node_cartstorage
node_shopper -->|"reviews order"| node_checkoutui
node_checkoutui -->|"submits order"| node_placeorder
node_placeorder -->|"places order"| node_checkout
node_checkout -->|"commits order"| node_database
node_checkout -.->|"supports provider interface"| node_provider
node_shopper -->|"views confirmation"| node_confirmation
node_shopper -->|"signs in"| node_authui
node_authui -->|"uses auth client"| node_auth
node_authapi -->|"dispatches requests"| node_auth
node_auth -->|"persists identity"| node_database
node_customer -->|"manages account"| node_accountservice
node_adminuser -->|"manages store"| node_adminui
node_adminui -->|"checks session"| node_authorization
node_adminforms -->|"submits changes"| node_adminactions
node_adminactions -->|"updates catalog"| node_admincatalog
node_adminactions -->|"manages orders"| node_orderservice
node_adminactions -->|"updates settings"| node_settings
node_admincatalog -->|"reads and writes"| node_database
node_admincustomers -->|"deactivates account"| node_accountservice
node_admincustomers -->|"reads customers"| node_database
node_database -->|"uses schema"| node_schema
node_paymentcallback -->|"handles callback"| node_paymentprocessing

click node_storefront "https://github.com/ashadansari/veron/blob/main/src/app/shop/page.tsx"
click node_catalog "https://github.com/ashadansari/veron/blob/main/src/lib/catalog/repository.ts"
click node_samplecatalog "https://github.com/ashadansari/veron/blob/main/src/lib/catalog/sample-data.ts"
click node_productviews "https://github.com/ashadansari/veron/blob/main/src/app/products/%5Bslug%5D/page.tsx"
click node_cartui "https://github.com/ashadansari/veron/blob/main/src/components/storefront/cart-provider.tsx"
click node_cartstorage "https://github.com/ashadansari/veron/blob/main/src/components/storefront/cart-storage.ts"
click node_checkoutui "https://github.com/ashadansari/veron/blob/main/src/components/storefront/checkout-review.tsx"
click node_placeorder "https://github.com/ashadansari/veron/blob/main/src/app/actions/place-order.ts"
click node_checkout "https://github.com/ashadansari/veron/blob/main/src/lib/commerce/checkout.ts"
click node_confirmation "https://github.com/ashadansari/veron/blob/main/src/app/order/success/%5BorderNumber%5D/page.tsx"
click node_paymentcallback "https://github.com/ashadansari/veron/blob/main/src/app/api/payments/khalti/return/route.ts"
click node_paymentprocessing "https://github.com/ashadansari/veron/blob/main/src/lib/commerce/payment-processing.ts"
click node_provider "https://github.com/ashadansari/veron/blob/main/src/lib/commerce/payment-provider.ts"
click node_authui "https://github.com/ashadansari/veron/blob/main/src/components/auth-form.tsx"
click node_authapi "https://github.com/ashadansari/veron/blob/main/src/app/api/auth/%5B...all%5D/route.ts"
click node_auth "https://github.com/ashadansari/veron/blob/main/src/lib/auth.ts"
click node_authorization "https://github.com/ashadansari/veron/blob/main/src/lib/authz.ts"
click node_accountservice "https://github.com/ashadansari/veron/blob/main/src/lib/account-service.ts"
click node_adminui "https://github.com/ashadansari/veron/blob/main/src/app/admin/page.tsx"
click node_adminforms "https://github.com/ashadansari/veron/blob/main/src/components/admin/admin-forms.tsx"
click node_adminactions "https://github.com/ashadansari/veron/blob/main/src/app/actions/admin.ts"
click node_admincatalog "https://github.com/ashadansari/veron/blob/main/src/lib/admin/catalog-service.ts"
click node_admincustomers "https://github.com/ashadansari/veron/blob/main/src/lib/admin/customer-service.ts"
click node_orderservice "https://github.com/ashadansari/veron/blob/main/src/lib/commerce/order-management.ts"
click node_settings "https://github.com/ashadansari/veron/blob/main/src/lib/admin/settings-service.ts"
click node_database "https://github.com/ashadansari/veron/blob/main/src/db/index.ts"
click node_schema "https://github.com/ashadansari/veron/blob/main/src/db/schema.ts"
click node_prisma "https://github.com/ashadansari/veron/blob/main/src/lib/prisma.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_storefront,node_catalog,node_samplecatalog,node_productviews,node_cartui,node_cartstorage,node_checkoutui toneBlue
class node_authui,node_authapi,node_auth,node_authorization,node_accountservice toneAmber
class node_placeorder,node_checkout,node_confirmation,node_paymentcallback,node_paymentprocessing,node_provider,node_orderservice toneMint
class node_adminui,node_adminforms,node_adminactions,node_admincatalog,node_admincustomers,node_settings toneRose
class node_database,node_schema,node_prisma,node_shopper,node_customer,node_adminuser toneIndigo
```

## Components

### Storefront

- [Storefront pages](https://github.com/ashadansari/veron/blob/main/src/app/shop/page.tsx): `src/app/shop/page.tsx`
- [Catalog reads](https://github.com/ashadansari/veron/blob/main/src/lib/catalog/repository.ts): `src/lib/catalog/repository.ts`
- [Sample catalog](https://github.com/ashadansari/veron/blob/main/src/lib/catalog/sample-data.ts): `src/lib/catalog/sample-data.ts`
- [Product views](https://github.com/ashadansari/veron/blob/main/src/app/products/%5Bslug%5D/page.tsx): `src/app/products/[slug]/page.tsx`
- [Cart state](https://github.com/ashadansari/veron/blob/main/src/components/storefront/cart-provider.tsx): `src/components/storefront/cart-provider.tsx`
- [Browser cart storage](https://github.com/ashadansari/veron/blob/main/src/components/storefront/cart-storage.ts): `src/components/storefront/cart-storage.ts`
- [Checkout review](https://github.com/ashadansari/veron/blob/main/src/components/storefront/checkout-review.tsx): `src/components/storefront/checkout-review.tsx`

### Identity and Accounts

- [Authentication forms](https://github.com/ashadansari/veron/blob/main/src/components/auth-form.tsx): `src/components/auth-form.tsx`
- [Auth endpoints](https://github.com/ashadansari/veron/blob/main/src/app/api/auth/%5B...all%5D/route.ts): `src/app/api/auth/[...all]/route.ts`
- [Better Auth](https://github.com/ashadansari/veron/blob/main/src/lib/auth.ts): `src/lib/auth.ts`
- [Session authorization](https://github.com/ashadansari/veron/blob/main/src/lib/authz.ts): `src/lib/authz.ts`
- [Account management](https://github.com/ashadansari/veron/blob/main/src/lib/account-service.ts): `src/lib/account-service.ts`

### Commerce Operations

- [Order action](https://github.com/ashadansari/veron/blob/main/src/app/actions/place-order.ts): `src/app/actions/place-order.ts`
- [Checkout transaction](https://github.com/ashadansari/veron/blob/main/src/lib/commerce/checkout.ts): `src/lib/commerce/checkout.ts`
- [Order confirmation](https://github.com/ashadansari/veron/blob/main/src/app/order/success/%5BorderNumber%5D/page.tsx): `src/app/order/success/[orderNumber]/page.tsx`
- [Payment callback](https://github.com/ashadansari/veron/blob/main/src/app/api/payments/khalti/return/route.ts): `src/app/api/payments/khalti/return/route.ts`
- [Payment processing](https://github.com/ashadansari/veron/blob/main/src/lib/commerce/payment-processing.ts): `src/lib/commerce/payment-processing.ts`
- [Payment provider interface](https://github.com/ashadansari/veron/blob/main/src/lib/commerce/payment-provider.ts): `src/lib/commerce/payment-provider.ts`
- [Order management](https://github.com/ashadansari/veron/blob/main/src/lib/commerce/order-management.ts): `src/lib/commerce/order-management.ts`

### Administration

- [Admin console](https://github.com/ashadansari/veron/blob/main/src/app/admin/page.tsx): `src/app/admin/page.tsx`
- [Catalog forms](https://github.com/ashadansari/veron/blob/main/src/components/admin/admin-forms.tsx): `src/components/admin/admin-forms.tsx`
- [Admin actions](https://github.com/ashadansari/veron/blob/main/src/app/actions/admin.ts): `src/app/actions/admin.ts`
- [Catalog administration](https://github.com/ashadansari/veron/blob/main/src/lib/admin/catalog-service.ts): `src/lib/admin/catalog-service.ts`
- [Customer administration](https://github.com/ashadansari/veron/blob/main/src/lib/admin/customer-service.ts): `src/lib/admin/customer-service.ts`
- [Store settings](https://github.com/ashadansari/veron/blob/main/src/lib/admin/settings-service.ts): `src/lib/admin/settings-service.ts`

### Persistence

- [PostgreSQL data](https://github.com/ashadansari/veron/blob/main/src/db/index.ts): `src/db/index.ts`
- [Commerce and auth schema](https://github.com/ashadansari/veron/blob/main/src/db/schema.ts): `src/db/schema.ts`
- [Prisma catalog client](https://github.com/ashadansari/veron/blob/main/src/lib/prisma.ts): `src/lib/prisma.ts`

### Other components

- **Shopper**
- **Customer**
- **Administrator**

## Connections

- Shopper → Storefront pages: browses (evidence: `README.md`)
- Storefront pages → Catalog reads: loads catalog (evidence: `README.md`)
- Catalog reads → Sample catalog: falls back (evidence: `src/lib/catalog/repository.ts`)
- Catalog reads → Prisma catalog client: queries products (evidence: `src/lib/catalog/repository.ts`)
- Shopper → Product views: selects product (evidence: `README.md`)
- Product views → Catalog reads: loads details
- Shopper → Cart state: manages cart (evidence: `README.md`)
- Cart state → Browser cart storage: stores snapshot (evidence: `src/components/storefront/cart-provider.tsx`)
- Shopper → Checkout review: reviews order (evidence: `README.md`)
- Checkout review → Order action: submits order (evidence: `src/components/storefront/checkout-review.tsx`)
- Order action → Checkout transaction: places order (evidence: `src/app/actions/place-order.ts`)
- Checkout transaction → PostgreSQL data: commits order (evidence: `README.md`)
- Checkout transaction → Payment provider interface: supports provider interface
- Shopper → Order confirmation: views confirmation (evidence: `README.md`)
- Shopper → Authentication forms: signs in (evidence: `README.md`)
- Authentication forms → Better Auth: uses auth client (evidence: `src/components/auth-form.tsx`)
- Auth endpoints → Better Auth: dispatches requests (evidence: `src/app/api/auth/[...all]/route.ts`)
- Better Auth → PostgreSQL data: persists identity (evidence: `src/lib/auth.ts`)
- Customer → Account management: manages account (evidence: `README.md`)
- Administrator → Admin console: manages store (evidence: `README.md`)
- Admin console → Session authorization: checks session (evidence: `README.md`)
- Catalog forms → Admin actions: submits changes (evidence: `src/components/admin/admin-forms.tsx`)
- Admin actions → Catalog administration: updates catalog (evidence: `src/app/actions/admin.ts`)
- Admin actions → Order management: manages orders (evidence: `src/app/actions/admin.ts`)
- Admin actions → Store settings: updates settings (evidence: `src/app/actions/admin.ts`)
- Catalog administration → PostgreSQL data: reads and writes (evidence: `src/lib/admin/catalog-service.ts`)
- Customer administration → Account management: deactivates account (evidence: `src/lib/admin/customer-service.ts`)
- Customer administration → PostgreSQL data: reads customers (evidence: `src/lib/admin/customer-service.ts`)
- PostgreSQL data → Commerce and auth schema: uses schema (evidence: `src/db/index.ts`)
- Payment callback → Payment processing: handles callback (evidence: `src/app/api/payments/khalti/return/route.ts`)
