# dudekula-raja/neon-project architecture

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

- Interactive diagram: https://gitdiagram.com/dudekula-raja/neon-project
- Repository: https://github.com/dudekula-raja/neon-project

## Overview

Biryani Spot is a restaurant ordering and operations web application. The customer journey centers on browsing a bilingual menu, building a cart, placing an order, and tracking it; separate admin and delivery-partner areas support operations. Sampled API handlers confirm menu, order, user, authentication, seeding, and image-upload behavior. The page-to-API wiring and several page implementations were not sampled, so those connections are left unspecified.

Main entry points: [`lib/prisma.ts`](https://github.com/dudekula-raja/neon-project/blob/main/lib/prisma.ts) (Prisma client), [`app/api/auth/[...nextauth]/route.ts`](https://github.com/dudekula-raja/neon-project/blob/main/app/api/auth/%5B...nextauth%5D/route.ts) (Session authentication), [`app/api/orders/route.ts`](https://github.com/dudekula-raja/neon-project/blob/main/app/api/orders/route.ts) (Orders API), [`app/api/users/route.ts`](https://github.com/dudekula-raja/neon-project/blob/main/app/api/users/route.ts) (Users API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Customer experience"]
  node_home["Restaurant home<br/>[page.tsx]"]
  node_menu_page["Menu browsing<br/>[page.tsx]"]
  node_cart["Cart drawer<br/>[CartDrawer.tsx]"]
  node_cart_state["Cart state<br/>[CartContext.tsx]"]
  node_tracking["Order tracking<br/>[page.tsx]"]
  node_language["Language settings"]
end

subgraph group_operations["Restaurant operations"]
  node_admin_page["Admin console<br/>[page.tsx]"]
  node_partner_page["Partner console<br/>[page.tsx]"]
  node_user_page["User account<br/>[page.tsx]"]
end

subgraph group_backend["Application services"]
  node_menu_api["Menu API<br/>[route.ts]"]
  node_orders_api["Orders API<br/>[route.ts]"]
  node_users_api["Users API<br/>[route.ts]"]
  node_auth_api["Session authentication<br/>[route.ts]"]
  node_seed_api["Menu seeding<br/>[route.ts]"]
  node_upload_api["Image upload<br/>[route.ts]"]
end

subgraph group_data["Data and integrations"]
  node_prisma["Prisma client<br/>[prisma.ts]"]
  node_schema["Data model<br/>[schema.prisma]"]
  node_menu_seed["Menu seed data<br/>[menu.json]"]
  node_users_file["Local user records<br/>[users.json]"]
  node_database[("Neon database")]
  node_cloudinary["Cloudinary media"]
end

node_visitor(("Customer"))
node_admin_actor(("Administrator"))
node_partner_actor(("Delivery partner"))

node_visitor -->|"opens"| node_home
node_admin_actor -->|"opens"| node_admin_page
node_partner_actor -->|"opens"| node_partner_page
node_menu_api -->|"queries"| node_prisma
node_orders_api -->|"reads/writes"| node_prisma
node_users_api -->|"reads/writes"| node_prisma
node_users_api -->|"checks session"| node_auth_api
node_orders_api -->|"checks session"| node_auth_api
node_auth_api -->|"reads users"| node_users_file
node_seed_api -->|"reads items"| node_menu_seed
node_seed_api -->|"seeds items"| node_prisma
node_upload_api -.->|"uploads image"| node_cloudinary
node_prisma -->|"queries"| node_database

click node_home "https://github.com/dudekula-raja/neon-project/blob/main/app/page.tsx"
click node_menu_page "https://github.com/dudekula-raja/neon-project/blob/main/app/menu/page.tsx"
click node_cart "https://github.com/dudekula-raja/neon-project/blob/main/components/CartDrawer.tsx"
click node_cart_state "https://github.com/dudekula-raja/neon-project/blob/main/context/CartContext.tsx"
click node_tracking "https://github.com/dudekula-raja/neon-project/blob/main/app/track/page.tsx"
click node_language "https://github.com/dudekula-raja/neon-project/blob/main/context/LanguageContext.tsx"
click node_admin_page "https://github.com/dudekula-raja/neon-project/blob/main/app/admin/page.tsx"
click node_partner_page "https://github.com/dudekula-raja/neon-project/blob/main/app/partner/page.tsx"
click node_user_page "https://github.com/dudekula-raja/neon-project/blob/main/app/user/page.tsx"
click node_menu_api "https://github.com/dudekula-raja/neon-project/blob/main/app/api/menu/route.ts"
click node_orders_api "https://github.com/dudekula-raja/neon-project/blob/main/app/api/orders/route.ts"
click node_users_api "https://github.com/dudekula-raja/neon-project/blob/main/app/api/users/route.ts"
click node_auth_api "https://github.com/dudekula-raja/neon-project/blob/main/app/api/auth/%5B...nextauth%5D/route.ts"
click node_seed_api "https://github.com/dudekula-raja/neon-project/blob/main/app/api/seed/route.ts"
click node_upload_api "https://github.com/dudekula-raja/neon-project/blob/main/app/api/upload/route.ts"
click node_prisma "https://github.com/dudekula-raja/neon-project/blob/main/lib/prisma.ts"
click node_schema "https://github.com/dudekula-raja/neon-project/blob/main/prisma/schema.prisma"
click node_menu_seed "https://github.com/dudekula-raja/neon-project/blob/main/data/menu.json"
click node_users_file "https://github.com/dudekula-raja/neon-project/blob/main/data/users.json"

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_home,node_menu_page,node_cart,node_cart_state,node_tracking,node_language toneBlue
class node_admin_page,node_partner_page,node_user_page toneAmber
class node_menu_api,node_orders_api,node_users_api,node_auth_api,node_seed_api,node_upload_api toneMint
class node_prisma,node_schema,node_menu_seed,node_users_file,node_database,node_cloudinary toneRose
class node_visitor,node_admin_actor,node_partner_actor toneIndigo
```

## Components

### Customer experience

- [Restaurant home](https://github.com/dudekula-raja/neon-project/blob/main/app/page.tsx): `app/page.tsx`
- [Menu browsing](https://github.com/dudekula-raja/neon-project/blob/main/app/menu/page.tsx): `app/menu/page.tsx`
- [Cart drawer](https://github.com/dudekula-raja/neon-project/blob/main/components/CartDrawer.tsx): `components/CartDrawer.tsx`
- [Cart state](https://github.com/dudekula-raja/neon-project/blob/main/context/CartContext.tsx): `context/CartContext.tsx`
- [Order tracking](https://github.com/dudekula-raja/neon-project/blob/main/app/track/page.tsx): `app/track/page.tsx`
- [Language settings](https://github.com/dudekula-raja/neon-project/blob/main/context/LanguageContext.tsx): `context/LanguageContext.tsx`

### Restaurant operations

- [Admin console](https://github.com/dudekula-raja/neon-project/blob/main/app/admin/page.tsx): `app/admin/page.tsx`
- [Partner console](https://github.com/dudekula-raja/neon-project/blob/main/app/partner/page.tsx): `app/partner/page.tsx`
- [User account](https://github.com/dudekula-raja/neon-project/blob/main/app/user/page.tsx): `app/user/page.tsx`

### Application services

- [Menu API](https://github.com/dudekula-raja/neon-project/blob/main/app/api/menu/route.ts): `app/api/menu/route.ts`
- [Orders API](https://github.com/dudekula-raja/neon-project/blob/main/app/api/orders/route.ts): `app/api/orders/route.ts`
- [Users API](https://github.com/dudekula-raja/neon-project/blob/main/app/api/users/route.ts): `app/api/users/route.ts`
- [Session authentication](https://github.com/dudekula-raja/neon-project/blob/main/app/api/auth/%5B...nextauth%5D/route.ts): `app/api/auth/[...nextauth]/route.ts`
- [Menu seeding](https://github.com/dudekula-raja/neon-project/blob/main/app/api/seed/route.ts): `app/api/seed/route.ts`
- [Image upload](https://github.com/dudekula-raja/neon-project/blob/main/app/api/upload/route.ts): `app/api/upload/route.ts`

### Data and integrations

- [Prisma client](https://github.com/dudekula-raja/neon-project/blob/main/lib/prisma.ts): `lib/prisma.ts`
- [Data model](https://github.com/dudekula-raja/neon-project/blob/main/prisma/schema.prisma): `prisma/schema.prisma`
- [Menu seed data](https://github.com/dudekula-raja/neon-project/blob/main/data/menu.json): `data/menu.json`
- [Local user records](https://github.com/dudekula-raja/neon-project/blob/main/data/users.json): `data/users.json`
- **Neon database**
- **Cloudinary media**

### Other components

- **Customer**
- **Administrator**
- **Delivery partner**

## Connections

- Customer → Restaurant home: opens
- Administrator → Admin console: opens
- Delivery partner → Partner console: opens
- Menu API → Prisma client: queries
- Orders API → Prisma client: reads/writes
- Users API → Prisma client: reads/writes
- Users API → Session authentication: checks session
- Orders API → Session authentication: checks session
- Session authentication → Local user records: reads users
- Menu seeding → Menu seed data: reads items
- Menu seeding → Prisma client: seeds items
- Image upload → Cloudinary media: uploads image
- Prisma client → Neon database: queries
