# bikrambox/readybill_webapp architecture

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

## Overview

ReadyBill is a multi-region grocery point-of-sale and shop-management application, with a Vue SPA and modular Laravel API. The main workflow is shop/staff access, inventory and customer management, cart checkout and billing, then transaction and report review; India and Germany have parallel domain modules with regional tax and unit configuration. Separate capabilities include account and subscription management, agent sales, and administrative oversight. The graph uses README-described capabilities where source excerpts were not sampled; those links are not presented as inspected call chains.

Main entry points: [`frontend/src/main.js`](https://github.com/bikrambox/readybill_webapp/blob/main/frontend/src/main.js) (Vue application), [`backend/Modules/GroceryIndia/Http/Controllers/API/BillingController.php`](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Http/Controllers/API/BillingController.php) (India billing), [`backend/Modules/GroceryGermany/Http/Controllers/API/BillingController.php`](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Http/Controllers/API/BillingController.php) (Germany billing), [`backend/Modules/CoreWeb/Resources/views/GroceryIndia/sell.blade.php`](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/CoreWeb/Resources/views/GroceryIndia/sell.blade.php) (Shop and staff)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client experience"]
  node_shop_staff["Shop and staff<br/>[sell.blade.php]"]
  node_vue_app["Vue application<br/>[main.js]"]
  node_subscription_ui["Agent subscriptions"]
  node_coreweb["Web experience"]
end

subgraph group_identity["Identity and access"]
  node_auth_api["Authentication API<br/>[AuthController.php]"]
  node_auth_routes["Authentication routes<br/>[api.php]"]
  node_auth_user[("User accounts<br/>[User.php]")]
end

subgraph group_commerce["Regional shop operations"]
  node_india_ops["India operations<br/>[ItemController.php]"]
  node_india_billing["India billing"]
  node_india_helpers["India commerce logic<br/>[BillingHelpher.php]"]
  node_india_entities[("India shop records<br/>[Billing.php]")]
  node_germany_ops["Germany operations<br/>[ItemController.php]"]
  node_germany_billing["Germany billing"]
  node_germany_helpers["Germany commerce logic<br/>[BillingHelpher.php]"]
  node_germany_entities[("Germany shop records<br/>[Billing.php]")]
end

subgraph group_platform["Shared services"]
  node_core_api["Shared API services<br/>[OTPController.php]"]
  node_reports["Reports and exports"]
end

subgraph group_oversight["Administration and agents"]
  node_admin["Admin console"]
  node_agents["Agent services"]
  node_agent_commissions[("Subscription commissions")]
end

node_consumer(("Shop or agent user"))
node_reverb["Realtime delivery"]

node_consumer -->|"uses"| node_vue_app
node_vue_app -->|"requests access"| node_auth_api
node_auth_routes -->|"routes to"| node_auth_api
node_auth_api -->|"reads and updates"| node_auth_user
node_vue_app -->|"uses shop screens"| node_shop_staff
node_shop_staff -.->|"manages India shop"| node_india_ops
node_shop_staff -.->|"manages Germany shop"| node_germany_ops
node_india_ops -->|"manages records"| node_india_entities
node_india_billing -->|"builds bill response"| node_india_helpers
node_india_billing -->|"creates and updates bills"| node_india_entities
node_india_billing -->|"broadcasts sale"| node_reverb
node_germany_ops -->|"manages records"| node_germany_entities
node_germany_billing -->|"builds bill response"| node_germany_helpers
node_germany_billing -->|"creates and updates bills"| node_germany_entities
node_germany_billing -->|"broadcasts sale"| node_reverb
node_india_ops -.->|"serves shop data"| node_reports
node_vue_app -.->|"loads shared data"| node_core_api
node_consumer -->|"uses web pages"| node_coreweb
node_consumer -->|"administers shops"| node_admin
node_consumer -->|"manages subscriptions"| node_subscription_ui
node_subscription_ui -->|"assigns plans"| node_agents
node_agents -->|"reads earnings"| node_agent_commissions
node_admin -.->|"reviews accounts"| node_auth_user

click node_shop_staff "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/CoreWeb/Resources/views/GroceryIndia/sell.blade.php"
click node_vue_app "https://github.com/bikrambox/readybill_webapp/blob/main/frontend/src/main.js"
click node_subscription_ui "https://github.com/bikrambox/readybill_webapp/blob/main/frontend/src/modules/AuthorizedAgents/components/subscription/SubscriptionManager.vue"
click node_coreweb "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/CoreWeb/Http/Controllers/IndexController.php"
click node_auth_api "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Authentication/Http/Controllers/API/AuthController.php"
click node_auth_routes "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Authentication/Routes/api.php"
click node_auth_user "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Authentication/Entities/User.php"
click node_india_ops "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Http/Controllers/API/ItemController.php"
click node_india_billing "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Http/Controllers/API/BillingController.php"
click node_india_helpers "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Helpers/BillingHelpher.php"
click node_india_entities "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Entities/Billing.php"
click node_germany_ops "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Http/Controllers/API/ItemController.php"
click node_germany_billing "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Http/Controllers/API/BillingController.php"
click node_germany_helpers "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Helpers/BillingHelpher.php"
click node_germany_entities "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Entities/Billing.php"
click node_core_api "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Core/Http/Controllers/API/OTPController.php"
click node_reports "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Http/Controllers/API/ReportController.php"
click node_admin "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Admin/Http/Controllers/AdminDashboardController.php"
click node_agents "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Agent/Http/Controllers/API/AssignSubscriptionController.php"
click node_agent_commissions "https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Agent/Entities/SubscriptionCommission.php"

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_shop_staff,node_vue_app,node_subscription_ui,node_coreweb,node_consumer toneBlue
class node_auth_api,node_auth_routes,node_auth_user toneAmber
class node_india_ops,node_india_billing,node_india_helpers,node_india_entities,node_germany_ops,node_germany_billing,node_germany_helpers,node_germany_entities toneMint
class node_core_api,node_reports toneRose
class node_admin,node_agents,node_agent_commissions,node_reverb toneIndigo
```

## Components

### Client experience

- [Shop and staff](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/CoreWeb/Resources/views/GroceryIndia/sell.blade.php): `backend/Modules/CoreWeb/Resources/views/GroceryIndia/sell.blade.php`
- [Vue application](https://github.com/bikrambox/readybill_webapp/blob/main/frontend/src/main.js): `frontend/src/main.js`
- [Agent subscriptions](https://github.com/bikrambox/readybill_webapp/blob/main/frontend/src/modules/AuthorizedAgents/components/subscription/SubscriptionManager.vue): `frontend/src/modules/AuthorizedAgents/components/subscription/SubscriptionManager.vue`
- [Web experience](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/CoreWeb/Http/Controllers/IndexController.php): `backend/Modules/CoreWeb/Http/Controllers/IndexController.php`

### Identity and access

- [Authentication API](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Authentication/Http/Controllers/API/AuthController.php): `backend/Modules/Authentication/Http/Controllers/API/AuthController.php`
- [Authentication routes](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Authentication/Routes/api.php): `backend/Modules/Authentication/Routes/api.php`
- [User accounts](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Authentication/Entities/User.php): `backend/Modules/Authentication/Entities/User.php`

### Regional shop operations

- [India operations](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Http/Controllers/API/ItemController.php): `backend/Modules/GroceryIndia/Http/Controllers/API/ItemController.php`
- [India billing](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Http/Controllers/API/BillingController.php): `backend/Modules/GroceryIndia/Http/Controllers/API/BillingController.php`
- [India commerce logic](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Helpers/BillingHelpher.php): `backend/Modules/GroceryIndia/Helpers/BillingHelpher.php`
- [India shop records](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Entities/Billing.php): `backend/Modules/GroceryIndia/Entities/Billing.php`
- [Germany operations](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Http/Controllers/API/ItemController.php): `backend/Modules/GroceryGermany/Http/Controllers/API/ItemController.php`
- [Germany billing](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Http/Controllers/API/BillingController.php): `backend/Modules/GroceryGermany/Http/Controllers/API/BillingController.php`
- [Germany commerce logic](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Helpers/BillingHelpher.php): `backend/Modules/GroceryGermany/Helpers/BillingHelpher.php`
- [Germany shop records](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryGermany/Entities/Billing.php): `backend/Modules/GroceryGermany/Entities/Billing.php`

### Shared services

- [Shared API services](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Core/Http/Controllers/API/OTPController.php): `backend/Modules/Core/Http/Controllers/API/OTPController.php`
- [Reports and exports](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/GroceryIndia/Http/Controllers/API/ReportController.php): `backend/Modules/GroceryIndia/Http/Controllers/API/ReportController.php`

### Administration and agents

- [Admin console](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Admin/Http/Controllers/AdminDashboardController.php): `backend/Modules/Admin/Http/Controllers/AdminDashboardController.php`
- [Agent services](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Agent/Http/Controllers/API/AssignSubscriptionController.php): `backend/Modules/Agent/Http/Controllers/API/AssignSubscriptionController.php`
- [Subscription commissions](https://github.com/bikrambox/readybill_webapp/blob/main/backend/Modules/Agent/Entities/SubscriptionCommission.php): `backend/Modules/Agent/Entities/SubscriptionCommission.php`

### Other components

- **Shop or agent user**
- **Realtime delivery**

## Connections

- Shop or agent user → Vue application: uses
- Vue application → Authentication API: requests access
- Authentication routes → Authentication API: routes to
- Authentication API → User accounts: reads and updates
- Vue application → Shop and staff: uses shop screens
- Shop and staff → India operations: manages India shop
- Shop and staff → Germany operations: manages Germany shop
- India operations → India shop records: manages records
- India billing → India commerce logic: builds bill response
- India billing → India shop records: creates and updates bills
- India billing → Realtime delivery: broadcasts sale
- Germany operations → Germany shop records: manages records
- Germany billing → Germany commerce logic: builds bill response
- Germany billing → Germany shop records: creates and updates bills
- Germany billing → Realtime delivery: broadcasts sale
- India operations → Reports and exports: serves shop data
- Vue application → Shared API services: loads shared data
- Shop or agent user → Web experience: uses web pages
- Shop or agent user → Admin console: administers shops
- Shop or agent user → Agent subscriptions: manages subscriptions
- Agent subscriptions → Agent services: assigns plans
- Agent services → Subscription commissions: reads earnings
- Admin console → User accounts: reviews accounts
