# charisnetwork/bill_easy architecture

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

## Overview

Bill Easy is a multi-company billing and business-management SaaS, with a separate platform-admin portal. The main workflow is a business user signing in, creating invoices or purchases, and managing related customers, stock, payments, and reporting; document previews and PDFs support the billing lifecycle. The tree documents additional quotation, purchase-order, e-way-bill, expense, AI, and subscription capabilities. Sampled source confirms invoice and purchase state updates, plus admin plan/coupon/affiliate management; several feature paths are represented from the tree, so their detailed wiring is not inferred.

Main entry points: [`packages/core-app/backend/server.js`](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/server.js) (Core API), [`packages/core-app/backend/config/database.js`](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/config/database.js) (Core business database), [`packages/core-app/backend/controllers/invoiceController.js`](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/invoiceController.js) (Invoice lifecycle), [`packages/core-app/frontend/src/App.jsx`](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/frontend/src/App.jsx) (Business portal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_business["Business workspace"]
  node_core_ui["Business portal<br/>[App.jsx]"]
  node_auth["Identity and company context<br/>[authController.js]"]
  node_api["Core API<br/>[server.js]"]
  node_subscription["Plans and usage"]
end

subgraph group_operations["Sales and operations"]
  node_sales_ui["Sales workspace"]
  node_invoice["Invoice lifecycle"]
  node_invoice_services["Numbering and PDF"]
  node_purchase["Purchasing and stock"]
  node_catalog["Customer and product records"]
  node_quotations["Quotes and orders"]
  node_eway["E-way bills"]
  node_expenses_reports["Expenses and reports"]
  node_ai["AI assistant<br/>[aiController.js]"]
end

subgraph group_platform["Platform administration"]
  node_admin_ui["Admin control center<br/>[App.jsx]"]
  node_admin_gateway["Admin gateway<br/>[server.js]"]
  node_admin_api["Admin API and auth<br/>[server.js]"]
  node_admin_routes["Admin routes<br/>[adminRoutes.js]"]
  node_admin_management["Plans coupons affiliates"]
  node_admin_analytics["Platform analytics"]
end

subgraph group_persistence["Persistence and integrations"]
  node_database[("Core business database<br/>[database.js]")]
  node_file_storage[("Asset storage<br/>[storage.js]")]
  node_saas_db[("SaaS database<br/>[db.js]")]
  node_admin_db[("Admin database<br/>[db.js]")]
end

node_business_user(("Business user"))
node_admin_user(("Platform administrator"))
node_gcs[("Google Cloud Storage")]

node_business_user -->|"uses"| node_core_ui
node_core_ui -->|"authenticates via"| node_auth
node_core_ui -->|"opens"| node_sales_ui
node_sales_ui -->|"requests API"| node_api
node_api -->|"routes requests"| node_invoice
node_api -->|"routes requests"| node_purchase
node_api -->|"routes requests"| node_catalog
node_api -->|"routes requests"| node_quotations
node_api -->|"routes requests"| node_eway
node_api -->|"routes requests"| node_expenses_reports
node_api -->|"routes requests"| node_ai
node_api -->|"routes requests"| node_subscription
node_invoice -->|"generates documents"| node_invoice_services
node_invoice -->|"reads and writes"| node_database
node_purchase -->|"updates stock"| node_database
node_catalog -->|"reads and writes"| node_database
node_quotations -->|"reads and writes"| node_database
node_eway -->|"reads and writes"| node_database
node_expenses_reports -->|"queries records"| node_database
node_subscription -->|"reads and writes"| node_database
node_invoice -->|"updates usage"| node_subscription
node_admin_user -->|"uses"| node_admin_ui
node_admin_ui -->|"requests API"| node_admin_gateway
node_admin_gateway -->|"proxies API"| node_admin_api
node_admin_api -->|"dispatches"| node_admin_routes
node_admin_routes -->|"calls"| node_admin_management
node_admin_routes -->|"calls"| node_admin_analytics
node_admin_management -->|"manages plans and coupons"| node_saas_db
node_admin_management -->|"manages affiliates"| node_admin_db
node_admin_analytics -->|"queries metrics"| node_saas_db
node_file_storage -.->|"uploads assets"| node_gcs

click node_core_ui "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/frontend/src/App.jsx"
click node_auth "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/authController.js"
click node_api "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/server.js"
click node_sales_ui "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/frontend/src/pages/CreateInvoicePage.jsx"
click node_invoice "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/invoiceController.js"
click node_invoice_services "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/services/invoicePdfService.js"
click node_purchase "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/purchaseController.js"
click node_catalog "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/customerController.js"
click node_quotations "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/quotationController.js"
click node_eway "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/ewayBillController.js"
click node_expenses_reports "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/reportController.js"
click node_ai "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/aiController.js"
click node_subscription "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/services/subscriptionService.js"
click node_database "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/config/database.js"
click node_file_storage "https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/utils/storage.js"
click node_admin_ui "https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/frontend/src/App.jsx"
click node_admin_gateway "https://github.com/charisnetwork/bill_easy/blob/main/admin/server.js"
click node_admin_api "https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/server.js"
click node_admin_routes "https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/routes/adminRoutes.js"
click node_admin_management "https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/controllers/managementController.js"
click node_admin_analytics "https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/controllers/analyticsController.js"
click node_saas_db "https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/config/db.js"
click node_admin_db "https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/config/db.js"

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_core_ui,node_auth,node_api,node_subscription,node_business_user toneBlue
class node_sales_ui,node_invoice,node_invoice_services,node_purchase,node_catalog,node_quotations,node_eway,node_expenses_reports,node_ai,node_gcs toneAmber
class node_admin_ui,node_admin_gateway,node_admin_api,node_admin_routes,node_admin_management,node_admin_analytics toneMint
class node_database,node_file_storage,node_saas_db,node_admin_db toneRose
class node_admin_user toneIndigo
```

## Components

### Business workspace

- [Business portal](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/frontend/src/App.jsx): `packages/core-app/frontend/src/App.jsx`
- [Identity and company context](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/authController.js): `packages/core-app/backend/controllers/authController.js`
- [Core API](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/server.js): `packages/core-app/backend/server.js`
- [Plans and usage](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/services/subscriptionService.js): `packages/core-app/backend/services/subscriptionService.js`

### Sales and operations

- [Sales workspace](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/frontend/src/pages/CreateInvoicePage.jsx): `packages/core-app/frontend/src/pages/CreateInvoicePage.jsx`
- [Invoice lifecycle](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/invoiceController.js): `packages/core-app/backend/controllers/invoiceController.js`
- [Numbering and PDF](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/services/invoicePdfService.js): `packages/core-app/backend/services/invoicePdfService.js`
- [Purchasing and stock](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/purchaseController.js): `packages/core-app/backend/controllers/purchaseController.js`
- [Customer and product records](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/customerController.js): `packages/core-app/backend/controllers/customerController.js`
- [Quotes and orders](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/quotationController.js): `packages/core-app/backend/controllers/quotationController.js`
- [E-way bills](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/ewayBillController.js): `packages/core-app/backend/controllers/ewayBillController.js`
- [Expenses and reports](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/reportController.js): `packages/core-app/backend/controllers/reportController.js`
- [AI assistant](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/controllers/aiController.js): `packages/core-app/backend/controllers/aiController.js`

### Platform administration

- [Admin control center](https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/frontend/src/App.jsx): `packages/admin-app/frontend/src/App.jsx`
- [Admin gateway](https://github.com/charisnetwork/bill_easy/blob/main/admin/server.js): `admin/server.js`
- [Admin API and auth](https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/server.js): `packages/admin-app/backend/server.js`
- [Admin routes](https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/routes/adminRoutes.js): `packages/admin-app/backend/routes/adminRoutes.js`
- [Plans coupons affiliates](https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/controllers/managementController.js): `packages/admin-app/backend/controllers/managementController.js`
- [Platform analytics](https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/controllers/analyticsController.js): `packages/admin-app/backend/controllers/analyticsController.js`

### Persistence and integrations

- [Core business database](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/config/database.js): `packages/core-app/backend/config/database.js`
- [Asset storage](https://github.com/charisnetwork/bill_easy/blob/main/packages/core-app/backend/utils/storage.js): `packages/core-app/backend/utils/storage.js`
- [SaaS database](https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/config/db.js): `packages/admin-app/backend/config/db.js`
- [Admin database](https://github.com/charisnetwork/bill_easy/blob/main/packages/admin-app/backend/config/db.js): `packages/admin-app/backend/config/db.js`

### Other components

- **Business user**
- **Platform administrator**
- **Google Cloud Storage**

## Connections

- Business user → Business portal: uses
- Business portal → Identity and company context: authenticates via
- Business portal → Sales workspace: opens
- Sales workspace → Core API: requests API
- Core API → Invoice lifecycle: routes requests
- Core API → Purchasing and stock: routes requests
- Core API → Customer and product records: routes requests
- Core API → Quotes and orders: routes requests
- Core API → E-way bills: routes requests
- Core API → Expenses and reports: routes requests
- Core API → AI assistant: routes requests
- Core API → Plans and usage: routes requests
- Invoice lifecycle → Numbering and PDF: generates documents
- Invoice lifecycle → Core business database: reads and writes
- Purchasing and stock → Core business database: updates stock
- Customer and product records → Core business database: reads and writes
- Quotes and orders → Core business database: reads and writes
- E-way bills → Core business database: reads and writes
- Expenses and reports → Core business database: queries records
- Plans and usage → Core business database: reads and writes
- Invoice lifecycle → Plans and usage: updates usage
- Platform administrator → Admin control center: uses
- Admin control center → Admin gateway: requests API
- Admin gateway → Admin API and auth: proxies API
- Admin API and auth → Admin routes: dispatches
- Admin routes → Plans coupons affiliates: calls
- Admin routes → Platform analytics: calls
- Plans coupons affiliates → SaaS database: manages plans and coupons
- Plans coupons affiliates → Admin database: manages affiliates
- Platform analytics → SaaS database: queries metrics
- Asset storage → Google Cloud Storage: uploads assets
