# cm5722254-beep/spacess-cambodia architecture

> Architecture diagram of the GitHub repository cm5722254-beep/spacess-cambodia, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cm5722254-beep/spacess-cambodia
- Repository: https://github.com/cm5722254-beep/spacess-cambodia

## Overview

Spaces Cambodia is a Flutter social platform backed by a NestJS REST API. Users register or sign in, then use social posts, reels, live streams, chat, AI assistance, and marketplace checkout; media passes through storage, while domain services persist application state. The README documents a Flutter client, but its source files are absent from the supplied tree, so it is represented only as an external user-facing client. Backend service interactions are shown where source references support them; unsampled capability details are kept at subsystem level.

Main entry points: [`apps/backend/src/main.ts`](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/main.ts) (NestJS API), [`apps/backend/src/modules/database/db.service.ts`](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/database/db.service.ts) (Application state), [`apps/backend/src/modules/storage/storage.service.ts`](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/storage/storage.service.ts) (Media storage), [`apps/backend/src/modules/marketplace/marketplace.service.ts`](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/marketplace/marketplace.service.ts) (Listings and checkout)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["API entry"]
  node_api["NestJS API<br/>[main.ts]"]
  node_health["Health checks"]
end

subgraph group_identity["Accounts"]
  node_auth["Account services<br/>[auth.service.ts]"]
  node_authhttp["Auth endpoints<br/>[auth.controller.ts]"]
end

subgraph group_social["Social experience"]
  node_feedhttp["Social endpoints<br/>[feed.controller.ts]"]
  node_feed["Feed and messaging<br/>[feed.service.ts]"]
  node_live["Live streaming"]
end

subgraph group_commerce["Commerce and AI"]
  node_markethttp["Marketplace endpoints"]
  node_market["Listings and checkout"]
  node_aihttp["AI endpoint<br/>[ai.controller.ts]"]
  node_ai["AI assistant<br/>[ai.service.ts]"]
end

subgraph group_platform["Persistence and media"]
  node_storagehttp["Media endpoints"]
  node_storage["Media storage<br/>[storage.service.ts]"]
  node_state[("Application state<br/>[db.service.ts]")]
  node_prisma["Prisma service<br/>[prisma.service.ts]"]
end

node_client["Flutter client"]
node_disk[("Local uploads")]
node_r2[("Cloudflare R2")]
node_bakong["Bakong KHQR"]

node_client -->|"uses REST API"| node_api
node_api -->|"registers modules"| node_authhttp
node_api -->|"registers modules"| node_feedhttp
node_api -->|"registers modules"| node_markethttp
node_api -->|"registers modules"| node_aihttp
node_api -->|"registers modules"| node_storagehttp
node_api -->|"registers modules"| node_health
node_api -->|"registers module"| node_prisma
node_authhttp -->|"delegates to"| node_auth
node_auth -->|"reads and writes"| node_state
node_feedhttp -->|"delegates to"| node_feed
node_feed -->|"reads and writes"| node_state
node_live -->|"updates streams"| node_state
node_live -->|"stores media"| node_storage
node_markethttp -->|"delegates to"| node_market
node_market -->|"reads and writes"| node_state
node_market -.->|"initiates KHQR"| node_bakong
node_aihttp -->|"delegates to"| node_ai
node_ai -->|"uses database"| node_state
node_health -->|"checks service"| node_prisma
node_storagehttp -->|"delegates to"| node_storage
node_storage -->|"writes fallback files"| node_disk
node_storage -->|"uploads and fetches"| node_r2

click node_api "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/main.ts"
click node_auth "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/auth/auth.service.ts"
click node_authhttp "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/auth/auth.controller.ts"
click node_feedhttp "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/feed/feed.controller.ts"
click node_feed "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/feed/feed.service.ts"
click node_live "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/feed/live-stream.controller.ts"
click node_markethttp "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/marketplace/marketplace.controller.ts"
click node_market "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/marketplace/marketplace.service.ts"
click node_aihttp "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/ai/ai.controller.ts"
click node_ai "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/ai/ai.service.ts"
click node_health "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/health/health.controller.ts"
click node_storagehttp "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/storage/storage.controller.ts"
click node_storage "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/storage/storage.service.ts"
click node_state "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/database/db.service.ts"
click node_prisma "https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/prisma/prisma.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_api,node_health,node_client toneBlue
class node_auth,node_authhttp,node_disk,node_r2 toneAmber
class node_feedhttp,node_feed,node_live toneMint
class node_markethttp,node_market,node_aihttp,node_ai toneRose
class node_storagehttp,node_storage,node_state,node_prisma,node_bakong toneIndigo
```

## Components

### API entry

- [NestJS API](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/main.ts): `apps/backend/src/main.ts`
- [Health checks](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/health/health.controller.ts): `apps/backend/src/modules/health/health.controller.ts`

### Accounts

- [Account services](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/auth/auth.service.ts): `apps/backend/src/modules/auth/auth.service.ts`
- [Auth endpoints](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/auth/auth.controller.ts): `apps/backend/src/modules/auth/auth.controller.ts`

### Social experience

- [Social endpoints](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/feed/feed.controller.ts): `apps/backend/src/modules/feed/feed.controller.ts`
- [Feed and messaging](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/feed/feed.service.ts): `apps/backend/src/modules/feed/feed.service.ts`
- [Live streaming](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/feed/live-stream.controller.ts): `apps/backend/src/modules/feed/live-stream.controller.ts`

### Commerce and AI

- [Marketplace endpoints](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/marketplace/marketplace.controller.ts): `apps/backend/src/modules/marketplace/marketplace.controller.ts`
- [Listings and checkout](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/marketplace/marketplace.service.ts): `apps/backend/src/modules/marketplace/marketplace.service.ts`
- [AI endpoint](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/ai/ai.controller.ts): `apps/backend/src/modules/ai/ai.controller.ts`
- [AI assistant](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/ai/ai.service.ts): `apps/backend/src/modules/ai/ai.service.ts`

### Persistence and media

- [Media endpoints](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/storage/storage.controller.ts): `apps/backend/src/modules/storage/storage.controller.ts`
- [Media storage](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/storage/storage.service.ts): `apps/backend/src/modules/storage/storage.service.ts`
- [Application state](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/database/db.service.ts): `apps/backend/src/modules/database/db.service.ts`
- [Prisma service](https://github.com/cm5722254-beep/spacess-cambodia/blob/main/apps/backend/src/modules/prisma/prisma.service.ts): `apps/backend/src/modules/prisma/prisma.service.ts`

### Other components

- **Flutter client**
- **Local uploads**
- **Cloudflare R2**
- **Bakong KHQR**

## Connections

- Flutter client → NestJS API: uses REST API
- NestJS API → Auth endpoints: registers modules
- NestJS API → Social endpoints: registers modules
- NestJS API → Marketplace endpoints: registers modules
- NestJS API → AI endpoint: registers modules
- NestJS API → Media endpoints: registers modules
- NestJS API → Health checks: registers modules
- NestJS API → Prisma service: registers module
- Auth endpoints → Account services: delegates to (evidence: `apps/backend/src/modules/auth/auth.controller.ts`)
- Account services → Application state: reads and writes (evidence: `apps/backend/src/modules/auth/auth.service.ts`)
- Social endpoints → Feed and messaging: delegates to (evidence: `apps/backend/src/modules/feed/feed.controller.ts`)
- Feed and messaging → Application state: reads and writes (evidence: `apps/backend/src/modules/feed/feed.service.ts`)
- Live streaming → Application state: updates streams (evidence: `apps/backend/src/modules/feed/live-stream.controller.ts`)
- Live streaming → Media storage: stores media (evidence: `apps/backend/src/modules/feed/live-stream.controller.ts`)
- Marketplace endpoints → Listings and checkout: delegates to (evidence: `apps/backend/src/modules/marketplace/marketplace.controller.ts`)
- Listings and checkout → Application state: reads and writes (evidence: `apps/backend/src/modules/marketplace/marketplace.service.ts`)
- Listings and checkout → Bakong KHQR: initiates KHQR
- AI endpoint → AI assistant: delegates to (evidence: `apps/backend/src/modules/ai/ai.controller.ts`)
- AI assistant → Application state: uses database (evidence: `apps/backend/src/modules/ai/ai.service.ts`)
- Health checks → Prisma service: checks service (evidence: `apps/backend/src/modules/health/health.controller.ts`)
- Media endpoints → Media storage: delegates to (evidence: `apps/backend/src/modules/storage/storage.controller.ts`)
- Media storage → Local uploads: writes fallback files (evidence: `apps/backend/src/modules/storage/storage.service.ts`)
- Media storage → Cloudflare R2: uploads and fetches (evidence: `apps/backend/src/modules/storage/storage.service.ts`)
