# ratons127/cloud-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/ratons127/cloud-management-system
- Repository: https://github.com/ratons127/cloud-management-system

## Overview

This is a multi-tenant billing and service-management platform: administrators configure the catalog and manage accounts, while clients order and manage services, pay or use wallet credit, and access support and account records. The NestJS API owns the domain operations, including recurring billing and provisioning; separate Next.js portals provide the admin and client experiences. The README is empty and source excerpts are partial, so links among unsampled feature areas are omitted or kept at documented module boundaries.

Main entry points: [`apps/client-area/src/lib/api.ts`](https://github.com/ratons127/cloud-management-system/blob/master/apps/client-area/src/lib/api.ts) (Client API client), [`apps/admin-area/src/lib/api.ts`](https://github.com/ratons127/cloud-management-system/blob/master/apps/admin-area/src/lib/api.ts) (Admin API client), [`services/billing-api/src/billing-engine/billing-engine.service.ts`](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/billing-engine/billing-engine.service.ts) (Recurring billing), [`services/billing-api/src/subscriptions/subscriptions.service.ts`](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/subscriptions/subscriptions.service.ts) (Subscriptions and orders)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portals["Web portals"]
  node_admin_portal["Admin portal<br/>[page.tsx]"]
  node_client_portal["Client portal<br/>[page.tsx]"]
  node_admin_api_client["Admin API client<br/>[api.ts]"]
  node_client_api_client["Client API client<br/>[api.ts]"]
end

subgraph group_identity["Identity and accounts"]
  node_admin_auth["Admin authentication"]
  node_client_auth["Client authentication"]
  node_client_management["Client management<br/>[clients.service.ts]"]
  node_user_directory["User directory"]
end

subgraph group_commerce["Commerce and services"]
  node_catalog["Product catalog<br/>[catalog.service.ts]"]
  node_orders["Subscriptions and orders"]
  node_payments["Payment gateways"]
  node_topups["Top-up management<br/>[topups.service.ts]"]
  node_wallet["Wallet and ledger<br/>[wallet.service.ts]"]
  node_invoices["Invoices"]
  node_provisioning["Provisioning"]
end

subgraph group_operations["Platform operations"]
  node_billing_engine["Recurring billing"]
  node_support["Tickets and support<br/>[support.service.ts]"]
  node_status["Incident status"]
  node_usage["Usage and time<br/>[usage.service.ts]"]
  node_audit["Audit log"]
  node_settings["Platform settings"]
  node_webhooks["Webhooks"]
  node_reports["Reports<br/>[reports.service.ts]"]
end

node_admin(("Administrator"))
node_client(("Client user"))
node_external_platforms{{"Service platforms"}}

node_admin -->|"uses"| node_admin_portal
node_client -->|"uses"| node_client_portal
node_admin_portal -->|"requests"| node_admin_api_client
node_client_portal -->|"requests"| node_client_api_client
node_admin_api_client -->|"authenticates"| node_admin_auth
node_client_api_client -->|"authenticates"| node_client_auth
node_admin_api_client -->|"manages accounts"| node_client_management
node_admin_api_client -->|"manages users"| node_user_directory
node_admin_api_client -->|"manages catalog"| node_catalog
node_admin_api_client -->|"manages orders"| node_orders
node_admin_api_client -->|"manages payments"| node_payments
node_admin_api_client -->|"reviews top-ups"| node_topups
node_admin_api_client -->|"handles tickets"| node_support
node_admin_api_client -->|"records actions"| node_audit
node_client_api_client -->|"manages account"| node_client_management
node_client_api_client -->|"browses products"| node_catalog
node_client_api_client -->|"places orders"| node_orders
node_client_api_client -->|"pays"| node_payments
node_client_api_client -->|"requests top-ups"| node_topups
node_client_api_client -->|"views wallet"| node_wallet
node_client_api_client -->|"views invoices"| node_invoices
node_client_api_client -->|"requests support"| node_support
node_client_api_client -->|"views incidents"| node_status
node_client_api_client -->|"views usage"| node_usage
node_catalog -.->|"syncs products"| node_external_platforms
node_orders -->|"requests service setup"| node_provisioning
node_provisioning -.->|"provisions services"| node_external_platforms
node_billing_engine -->|"charges credit"| node_wallet
node_billing_engine -->|"suspends service"| node_provisioning
node_billing_engine -->|"reads billing rules"| node_settings
node_billing_engine -->|"records system actions"| node_audit
node_orders -->|"generates invoices"| node_invoices
node_reports -->|"serves reports"| node_admin_api_client
node_webhooks -->|"offers endpoint management"| node_client_api_client

click node_admin_portal "https://github.com/ratons127/cloud-management-system/blob/master/apps/admin-area/src/app/(dashboard)/page.tsx"
click node_client_portal "https://github.com/ratons127/cloud-management-system/blob/master/apps/client-area/src/app/(dashboard)/page.tsx"
click node_admin_api_client "https://github.com/ratons127/cloud-management-system/blob/master/apps/admin-area/src/lib/api.ts"
click node_client_api_client "https://github.com/ratons127/cloud-management-system/blob/master/apps/client-area/src/lib/api.ts"
click node_admin_auth "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/admin-auth/admin-auth.service.ts"
click node_client_auth "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/client-auth/client-auth.service.ts"
click node_client_management "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/clients/clients.service.ts"
click node_user_directory "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/users/admin-user-directory.service.ts"
click node_catalog "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/catalog/catalog.service.ts"
click node_orders "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/subscriptions/subscriptions.service.ts"
click node_payments "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/payments/payments.controller.ts"
click node_topups "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/payments/topups.service.ts"
click node_wallet "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/wallet/wallet.service.ts"
click node_invoices "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/invoices/invoices.service.ts"
click node_provisioning "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/provisioning/provisioning-registry.service.ts"
click node_billing_engine "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/billing-engine/billing-engine.service.ts"
click node_support "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/support/support.service.ts"
click node_status "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/status-page/status-page.service.ts"
click node_usage "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/usage/usage.service.ts"
click node_audit "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/audit/audit-log.service.ts"
click node_settings "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/settings/settings.service.ts"
click node_webhooks "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/webhooks/webhooks.service.ts"
click node_reports "https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/reports/reports.service.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_admin_portal,node_client_portal,node_admin_api_client,node_client_api_client,node_client toneBlue
class node_admin_auth,node_client_auth,node_client_management,node_user_directory toneAmber
class node_catalog,node_orders,node_payments,node_topups,node_wallet,node_invoices,node_provisioning toneMint
class node_billing_engine,node_support,node_status,node_usage,node_audit,node_settings,node_webhooks,node_reports toneRose
class node_admin,node_external_platforms toneIndigo
```

## Components

### Web portals

- [Admin portal](https://github.com/ratons127/cloud-management-system/blob/master/apps/admin-area/src/app/(dashboard)/page.tsx): `apps/admin-area/src/app/(dashboard)/page.tsx`
- [Client portal](https://github.com/ratons127/cloud-management-system/blob/master/apps/client-area/src/app/(dashboard)/page.tsx): `apps/client-area/src/app/(dashboard)/page.tsx`
- [Admin API client](https://github.com/ratons127/cloud-management-system/blob/master/apps/admin-area/src/lib/api.ts): `apps/admin-area/src/lib/api.ts`
- [Client API client](https://github.com/ratons127/cloud-management-system/blob/master/apps/client-area/src/lib/api.ts): `apps/client-area/src/lib/api.ts`

### Identity and accounts

- [Admin authentication](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/admin-auth/admin-auth.service.ts): `services/billing-api/src/admin-auth/admin-auth.service.ts`
- [Client authentication](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/client-auth/client-auth.service.ts): `services/billing-api/src/client-auth/client-auth.service.ts`
- [Client management](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/clients/clients.service.ts): `services/billing-api/src/clients/clients.service.ts`
- [User directory](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/users/admin-user-directory.service.ts): `services/billing-api/src/users/admin-user-directory.service.ts`

### Commerce and services

- [Product catalog](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/catalog/catalog.service.ts): `services/billing-api/src/catalog/catalog.service.ts`
- [Subscriptions and orders](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/subscriptions/subscriptions.service.ts): `services/billing-api/src/subscriptions/subscriptions.service.ts`
- [Payment gateways](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/payments/payments.controller.ts): `services/billing-api/src/payments/payments.controller.ts`
- [Top-up management](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/payments/topups.service.ts): `services/billing-api/src/payments/topups.service.ts`
- [Wallet and ledger](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/wallet/wallet.service.ts): `services/billing-api/src/wallet/wallet.service.ts`
- [Invoices](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/invoices/invoices.service.ts): `services/billing-api/src/invoices/invoices.service.ts`
- [Provisioning](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/provisioning/provisioning-registry.service.ts): `services/billing-api/src/provisioning/provisioning-registry.service.ts`

### Platform operations

- [Recurring billing](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/billing-engine/billing-engine.service.ts): `services/billing-api/src/billing-engine/billing-engine.service.ts`
- [Tickets and support](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/support/support.service.ts): `services/billing-api/src/support/support.service.ts`
- [Incident status](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/status-page/status-page.service.ts): `services/billing-api/src/status-page/status-page.service.ts`
- [Usage and time](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/usage/usage.service.ts): `services/billing-api/src/usage/usage.service.ts`
- [Audit log](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/audit/audit-log.service.ts): `services/billing-api/src/audit/audit-log.service.ts`
- [Platform settings](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/settings/settings.service.ts): `services/billing-api/src/settings/settings.service.ts`
- [Webhooks](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/webhooks/webhooks.service.ts): `services/billing-api/src/webhooks/webhooks.service.ts`
- [Reports](https://github.com/ratons127/cloud-management-system/blob/master/services/billing-api/src/reports/reports.service.ts): `services/billing-api/src/reports/reports.service.ts`

### Other components

- **Administrator**
- **Client user**
- **Service platforms**

## Connections

- Administrator → Admin portal: uses
- Client user → Client portal: uses
- Admin portal → Admin API client: requests
- Client portal → Client API client: requests
- Admin API client → Admin authentication: authenticates
- Client API client → Client authentication: authenticates
- Admin API client → Client management: manages accounts
- Admin API client → User directory: manages users
- Admin API client → Product catalog: manages catalog
- Admin API client → Subscriptions and orders: manages orders
- Admin API client → Payment gateways: manages payments
- Admin API client → Top-up management: reviews top-ups
- Admin API client → Tickets and support: handles tickets
- Admin API client → Audit log: records actions
- Client API client → Client management: manages account
- Client API client → Product catalog: browses products
- Client API client → Subscriptions and orders: places orders
- Client API client → Payment gateways: pays
- Client API client → Top-up management: requests top-ups
- Client API client → Wallet and ledger: views wallet
- Client API client → Invoices: views invoices
- Client API client → Tickets and support: requests support
- Client API client → Incident status: views incidents
- Client API client → Usage and time: views usage
- Product catalog → Service platforms: syncs products
- Subscriptions and orders → Provisioning: requests service setup
- Provisioning → Service platforms: provisions services
- Recurring billing → Wallet and ledger: charges credit
- Recurring billing → Provisioning: suspends service
- Recurring billing → Platform settings: reads billing rules
- Recurring billing → Audit log: records system actions
- Subscriptions and orders → Invoices: generates invoices
- Reports → Admin API client: serves reports
- Webhooks → Client API client: offers endpoint management
