# pinninti-thanuj-babu/godavari-ruchulu-bot architecture

> Architecture diagram of the GitHub repository pinninti-thanuj-babu/godavari-ruchulu-bot, 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/pinninti-thanuj-babu/godavari-ruchulu-bot
- Repository: https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot

## Overview

Godavari Ruchulu Bot is a WhatsApp AI ordering agent with a restaurant-admin portal. Its customer workflow covers menu discovery, cart/order staging and confirmation, payment, and delivery; the admin portal manages restaurant operations and receives order and delivery updates. Source excerpts support several specific service calls, but not the complete WhatsApp startup and conversation wiring, so uncertain links are omitted. The tree and package description identify capabilities whose detailed implementation was not sampled.

Main entry points: [`godavari-ruchulu-bot/src/admin/server.ts`](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/admin/server.ts) (Admin portal API), [`godavari-ruchulu-bot/src/db.ts`](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/db.ts) (Application database), [`godavari-ruchulu-bot/src/whatsapp/session-manager.ts`](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/session-manager.ts) (Conversation and cart), [`godavari-ruchulu-bot/src/services/order.ts`](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/order.ts) (Order and payment services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Runtime entry"]
  node_index["Application startup<br/>[index.ts]"]
end

subgraph group_whatsapp["WhatsApp ordering"]
  node_botrun["Bot runtime<br/>[run.ts]"]
  node_session["Conversation and cart<br/>[session-manager.ts]"]
  node_adapter["WhatsApp adapter<br/>[adapter.ts]"]
  node_renderers["Message rendering<br/>[renderers.ts]"]
  node_aiagent["AI agent<br/>[agent.ts]"]
  node_aitools["Ordering tools<br/>[tools.ts]"]
end

subgraph group_operations["Restaurant operations"]
  node_menu["Menu services<br/>[menu.ts]"]
  node_customerdata["Customer and order services<br/>[customer.ts]"]
  node_order["Order and payment services<br/>[order.ts]"]
  node_restaurant["Restaurant data<br/>[restaurant.ts]"]
  node_admin["Admin portal API<br/>[server.ts]"]
  node_adminui["Admin dashboard<br/>[app.js]"]
  node_auth["Admin authentication<br/>[auth.ts]"]
  node_events["Admin event notifications<br/>[events.ts]"]
  node_database[("Application database<br/>[db.ts]")]
end

subgraph group_logistics["Delivery logistics"]
  node_deliverymanager["Delivery management"]
  node_deliveryorchestrator["Delivery orchestration<br/>[orchestrator.ts]"]
end

subgraph group_integrations["External integrations"]
  node_llm["LLM providers<br/>[llm.ts]"]
  node_shiprocket["Shiprocket integration<br/>[shiprocket.ts]"]
  node_payments["Razorpay<br/>[razorpay.ts]"]
  node_whatsappcloud["WhatsApp Cloud API<br/>[cloud.ts]"]
end

node_customer(("Customer"))
node_adminuser(("Restaurant staff"))

node_index -->|"starts portal"| node_admin
node_index -->|"starts bot"| node_botrun
node_customer -->|"messages"| node_botrun
node_session -->|"loads customer"| node_customerdata
node_session -->|"loads order"| node_order
node_session -->|"reads menu"| node_menu
node_session -->|"renders replies"| node_renderers
node_session -->|"logs messages"| node_customerdata
node_adminuser -->|"uses dashboard"| node_adminui
node_adminui -->|"calls API"| node_admin
node_admin -->|"reads menu"| node_menu
node_admin -->|"updates payment"| node_order
node_admin -->|"loads customer"| node_customerdata
node_admin -->|"authenticates"| node_auth
node_admin -->|"notifies updates"| node_events
node_deliverymanager -->|"requests quotes"| node_deliveryorchestrator
node_deliverymanager -->|"dispatches order"| node_deliveryorchestrator
node_deliverymanager -->|"notifies status"| node_events
node_deliveryorchestrator -->|"quotes and dispatches"| node_shiprocket
node_deliveryorchestrator -->|"reads tracking"| node_database
node_menu -->|"reads menu data"| node_database
node_customerdata -->|"reads and writes"| node_database
node_order -->|"reads and writes"| node_database
node_restaurant -->|"reads configuration"| node_database
node_auth -->|"checks accounts"| node_database
node_deliverymanager -->|"stores quotes and dispatch"| node_database
node_aiagent -->|"requests completions"| node_llm
node_aitools -.->|"uses menu data"| node_menu
node_aitools -.->|"uses order actions"| node_order
node_order -.->|"creates payment links"| node_payments
node_botrun -.->|"connects API"| node_whatsappcloud

click node_index "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/index.ts"
click node_botrun "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/run.ts"
click node_session "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/session-manager.ts"
click node_adapter "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/adapter.ts"
click node_renderers "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/renderers.ts"
click node_aiagent "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/ai/agent.ts"
click node_aitools "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/ai/tools.ts"
click node_llm "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/ai/llm.ts"
click node_menu "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/menu.ts"
click node_customerdata "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/customer.ts"
click node_order "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/order.ts"
click node_restaurant "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/restaurant.ts"
click node_admin "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/admin/server.ts"
click node_adminui "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/admin/public/js/app.js"
click node_auth "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/admin/auth.ts"
click node_events "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/events.ts"
click node_deliverymanager "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/delivery/delivery-manager.ts"
click node_deliveryorchestrator "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/delivery/orchestrator.ts"
click node_shiprocket "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/delivery/shiprocket.ts"
click node_payments "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/razorpay.ts"
click node_whatsappcloud "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/cloud.ts"
click node_database "https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/db.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_index toneBlue
class node_botrun,node_session,node_adapter,node_renderers,node_aiagent,node_aitools toneAmber
class node_menu,node_customerdata,node_order,node_restaurant,node_admin,node_adminui,node_auth,node_events,node_database toneMint
class node_deliverymanager,node_deliveryorchestrator toneRose
class node_llm,node_shiprocket,node_payments,node_whatsappcloud,node_customer,node_adminuser toneIndigo
```

## Components

### Runtime entry

- [Application startup](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/index.ts): `godavari-ruchulu-bot/src/index.ts`

### WhatsApp ordering

- [Bot runtime](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/run.ts): `godavari-ruchulu-bot/src/whatsapp/run.ts`
- [Conversation and cart](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/session-manager.ts): `godavari-ruchulu-bot/src/whatsapp/session-manager.ts`
- [WhatsApp adapter](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/adapter.ts): `godavari-ruchulu-bot/src/whatsapp/adapter.ts`
- [Message rendering](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/renderers.ts): `godavari-ruchulu-bot/src/whatsapp/renderers.ts`
- [AI agent](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/ai/agent.ts): `godavari-ruchulu-bot/src/ai/agent.ts`
- [Ordering tools](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/ai/tools.ts): `godavari-ruchulu-bot/src/ai/tools.ts`

### Restaurant operations

- [Menu services](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/menu.ts): `godavari-ruchulu-bot/src/services/menu.ts`
- [Customer and order services](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/customer.ts): `godavari-ruchulu-bot/src/services/customer.ts`
- [Order and payment services](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/order.ts): `godavari-ruchulu-bot/src/services/order.ts`
- [Restaurant data](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/restaurant.ts): `godavari-ruchulu-bot/src/services/restaurant.ts`
- [Admin portal API](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/admin/server.ts): `godavari-ruchulu-bot/src/admin/server.ts`
- [Admin dashboard](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/admin/public/js/app.js): `godavari-ruchulu-bot/src/admin/public/js/app.js`
- [Admin authentication](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/admin/auth.ts): `godavari-ruchulu-bot/src/admin/auth.ts`
- [Admin event notifications](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/events.ts): `godavari-ruchulu-bot/src/services/events.ts`
- [Application database](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/db.ts): `godavari-ruchulu-bot/src/db.ts`

### Delivery logistics

- [Delivery management](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/delivery/delivery-manager.ts): `godavari-ruchulu-bot/src/services/delivery/delivery-manager.ts`
- [Delivery orchestration](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/delivery/orchestrator.ts): `godavari-ruchulu-bot/src/services/delivery/orchestrator.ts`

### External integrations

- [LLM providers](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/ai/llm.ts): `godavari-ruchulu-bot/src/ai/llm.ts`
- [Shiprocket integration](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/delivery/shiprocket.ts): `godavari-ruchulu-bot/src/services/delivery/shiprocket.ts`
- [Razorpay](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/services/razorpay.ts): `godavari-ruchulu-bot/src/services/razorpay.ts`
- [WhatsApp Cloud API](https://github.com/pinninti-thanuj-babu/godavari-ruchulu-bot/blob/main/godavari-ruchulu-bot/src/whatsapp/cloud.ts): `godavari-ruchulu-bot/src/whatsapp/cloud.ts`

### Other components

- **Customer**
- **Restaurant staff**

## Connections

- Application startup → Admin portal API: starts portal
- Application startup → Bot runtime: starts bot
- Customer → Bot runtime: messages
- Conversation and cart → Customer and order services: loads customer
- Conversation and cart → Order and payment services: loads order
- Conversation and cart → Menu services: reads menu
- Conversation and cart → Message rendering: renders replies
- Conversation and cart → Customer and order services: logs messages
- Restaurant staff → Admin dashboard: uses dashboard
- Admin dashboard → Admin portal API: calls API
- Admin portal API → Menu services: reads menu
- Admin portal API → Order and payment services: updates payment
- Admin portal API → Customer and order services: loads customer
- Admin portal API → Admin authentication: authenticates
- Admin portal API → Admin event notifications: notifies updates
- Delivery management → Delivery orchestration: requests quotes
- Delivery management → Delivery orchestration: dispatches order
- Delivery management → Admin event notifications: notifies status
- Delivery orchestration → Shiprocket integration: quotes and dispatches
- Delivery orchestration → Application database: reads tracking
- Menu services → Application database: reads menu data
- Customer and order services → Application database: reads and writes
- Order and payment services → Application database: reads and writes
- Restaurant data → Application database: reads configuration
- Admin authentication → Application database: checks accounts
- Delivery management → Application database: stores quotes and dispatch
- AI agent → LLM providers: requests completions
- Ordering tools → Menu services: uses menu data
- Ordering tools → Order and payment services: uses order actions
- Order and payment services → Razorpay: creates payment links
- Bot runtime → WhatsApp Cloud API: connects API
