# kakada123/chlatwork architecture

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

- Interactive diagram: https://gitdiagram.com/kakada123/chlatwork
- Repository: https://github.com/kakada123/chlatwork

## Overview

ChlatWork is a multi-product web platform with an API for creator AI, shared moments, bot-connected group workspaces, food discovery, and other utilities. The user-facing pattern is to enter a feature, submit a request, and receive a result or manage saved state; the sampled code shows several API routes delegating to domain services. The README is only a Nuxt starter and documents no product capabilities. This map emphasizes substantiated API workflows; frontend wiring and many unsampled subsystems are not inferred.

Main entry points: [`api/src/group-workspaces/group-workspaces.controller.ts`](https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-workspaces.controller.ts) (Group Workspace API), [`api/src/creator-ai/creator-ai.controller.ts`](https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-ai.controller.ts) (Creator API), [`api/src/creator-ai/creator-generation.service.ts`](https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-generation.service.ts) (Generation Orchestration), [`api/src/youtube-downloader/youtube-downloader.controller.ts`](https://github.com/kakada123/chlatwork/blob/main/api/src/youtube-downloader/youtube-downloader.controller.ts) (YouTube Downloader API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_creator["Creator AI"]
  node_creator_api["Creator API"]
  node_creator_generation["Generation Orchestration"]
  node_creator_credits["Credits And History"]
  node_creator_gateway["AI Provider Gateway"]
  node_creator_upload["Video Upload Tickets"]
end

subgraph group_social["Moments And Groups"]
  node_moments_api["Moments API"]
  node_moments["Moments Domain<br/>[moments.service.ts]"]
  node_birthday_editor["Birthday Editor"]
  node_group_api["Group Workspace API"]
  node_group_workspaces["Workspace Management"]
  node_group_connections["Bot Connections"]
  node_group_votes["Group Voting"]
  node_group_media["Poll Media"]
end

subgraph group_platform["Identity And Access"]
  node_auth_service["Authentication<br/>[auth.service.ts]"]
  node_jwt_guard["JWT Guard<br/>[jwt-auth.guard.ts]"]
  node_prisma[("Application Database<br/>[prisma.service.ts]")]
  node_bot_access["Bot Access Policy"]
end

subgraph group_discovery["Food And Downloads"]
  node_food_engine["Food Recommendation"]
  node_youtube_api["YouTube Downloader API"]
  node_youtube_service["Download Jobs"]
  node_availability["Feature Availability"]
  node_youtube_runner["Download Runner"]
end

node_user(("User"))

node_user -.->|"submits requests"| node_creator_api
node_creator_api -->|"starts generation"| node_creator_generation
node_creator_api -->|"reads credits"| node_creator_credits
node_creator_api -->|"issues tickets"| node_creator_upload
node_creator_generation -->|"checks credits"| node_creator_credits
node_creator_generation -->|"requests generation"| node_creator_gateway
node_creator_generation -->|"checks access"| node_availability
node_creator_credits -->|"stores credit state"| node_prisma
node_creator_credits -->|"checks bot access"| node_bot_access
node_user -.->|"manages moments"| node_moments_api
node_moments_api -->|"delegates moment actions"| node_moments
node_moments_api -->|"delegates editing"| node_birthday_editor
node_moments -->|"reads and writes"| node_prisma
node_user -.->|"manages workspace"| node_group_api
node_group_api -->|"delegates workspace actions"| node_group_workspaces
node_group_api -->|"requests connections"| node_group_connections
node_group_api -->|"delegates voting"| node_group_votes
node_group_api -->|"uploads poll media"| node_group_media
node_group_api -->|"checks manager access"| node_bot_access
node_user -.->|"authenticates"| node_auth_service
node_auth_service -->|"reads and updates accounts"| node_prisma
node_user -.->|"requests downloads"| node_youtube_api
node_youtube_api -->|"manages download jobs"| node_youtube_service
node_youtube_api -->|"checks availability"| node_availability
node_youtube_api -->|"checks runner"| node_youtube_runner

click node_creator_api "https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-ai.controller.ts"
click node_creator_generation "https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-generation.service.ts"
click node_creator_credits "https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-credits.service.ts"
click node_creator_gateway "https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-ai-gateway.service.ts"
click node_creator_upload "https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-video-upload-ticket.service.ts"
click node_moments_api "https://github.com/kakada123/chlatwork/blob/main/api/src/moments/moments.controller.ts"
click node_moments "https://github.com/kakada123/chlatwork/blob/main/api/src/moments/moments.service.ts"
click node_birthday_editor "https://github.com/kakada123/chlatwork/blob/main/api/src/moments/birthday-moment-editor.service.ts"
click node_group_api "https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-workspaces.controller.ts"
click node_group_workspaces "https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-workspace.service.ts"
click node_group_connections "https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-connections.service.ts"
click node_group_votes "https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-vote.service.ts"
click node_group_media "https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-poll-media.service.ts"
click node_auth_service "https://github.com/kakada123/chlatwork/blob/main/api/src/auth/auth.service.ts"
click node_jwt_guard "https://github.com/kakada123/chlatwork/blob/main/api/src/auth/jwt-auth.guard.ts"
click node_prisma "https://github.com/kakada123/chlatwork/blob/main/api/src/prisma/prisma.service.ts"
click node_bot_access "https://github.com/kakada123/chlatwork/blob/main/api/src/bot-admin/bot-access.service.ts"
click node_food_engine "https://github.com/kakada123/chlatwork/blob/main/api/src/food/food-recommendation.engine.ts"
click node_youtube_api "https://github.com/kakada123/chlatwork/blob/main/api/src/youtube-downloader/youtube-downloader.controller.ts"
click node_youtube_service "https://github.com/kakada123/chlatwork/blob/main/api/src/youtube-downloader/youtube-downloader.service.ts"
click node_availability "https://github.com/kakada123/chlatwork/blob/main/api/src/feature-availability/feature-availability.service.ts"
click node_youtube_runner "https://github.com/kakada123/chlatwork/blob/main/api/src/youtube-downloader/youtube-downloader.runner.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_creator_api,node_creator_generation,node_creator_credits,node_creator_gateway,node_creator_upload,node_user toneBlue
class node_moments_api,node_moments,node_birthday_editor,node_group_api,node_group_workspaces,node_group_connections,node_group_votes,node_group_media toneAmber
class node_auth_service,node_jwt_guard,node_prisma,node_bot_access toneMint
class node_food_engine,node_youtube_api,node_youtube_service,node_availability,node_youtube_runner toneRose
```

## Components

### Creator AI

- [Creator API](https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-ai.controller.ts): `api/src/creator-ai/creator-ai.controller.ts`
- [Generation Orchestration](https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-generation.service.ts): `api/src/creator-ai/creator-generation.service.ts`
- [Credits And History](https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-credits.service.ts): `api/src/creator-ai/creator-credits.service.ts`
- [AI Provider Gateway](https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-ai-gateway.service.ts): `api/src/creator-ai/creator-ai-gateway.service.ts`
- [Video Upload Tickets](https://github.com/kakada123/chlatwork/blob/main/api/src/creator-ai/creator-video-upload-ticket.service.ts): `api/src/creator-ai/creator-video-upload-ticket.service.ts`

### Moments And Groups

- [Moments API](https://github.com/kakada123/chlatwork/blob/main/api/src/moments/moments.controller.ts): `api/src/moments/moments.controller.ts`
- [Moments Domain](https://github.com/kakada123/chlatwork/blob/main/api/src/moments/moments.service.ts): `api/src/moments/moments.service.ts`
- [Birthday Editor](https://github.com/kakada123/chlatwork/blob/main/api/src/moments/birthday-moment-editor.service.ts): `api/src/moments/birthday-moment-editor.service.ts`
- [Group Workspace API](https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-workspaces.controller.ts): `api/src/group-workspaces/group-workspaces.controller.ts`
- [Workspace Management](https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-workspace.service.ts): `api/src/group-workspaces/group-workspace.service.ts`
- [Bot Connections](https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-connections.service.ts): `api/src/group-workspaces/group-connections.service.ts`
- [Group Voting](https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-vote.service.ts): `api/src/group-workspaces/group-vote.service.ts`
- [Poll Media](https://github.com/kakada123/chlatwork/blob/main/api/src/group-workspaces/group-poll-media.service.ts): `api/src/group-workspaces/group-poll-media.service.ts`

### Identity And Access

- [Authentication](https://github.com/kakada123/chlatwork/blob/main/api/src/auth/auth.service.ts): `api/src/auth/auth.service.ts`
- [JWT Guard](https://github.com/kakada123/chlatwork/blob/main/api/src/auth/jwt-auth.guard.ts): `api/src/auth/jwt-auth.guard.ts`
- [Application Database](https://github.com/kakada123/chlatwork/blob/main/api/src/prisma/prisma.service.ts): `api/src/prisma/prisma.service.ts`
- [Bot Access Policy](https://github.com/kakada123/chlatwork/blob/main/api/src/bot-admin/bot-access.service.ts): `api/src/bot-admin/bot-access.service.ts`

### Food And Downloads

- [Food Recommendation](https://github.com/kakada123/chlatwork/blob/main/api/src/food/food-recommendation.engine.ts): `api/src/food/food-recommendation.engine.ts`
- [YouTube Downloader API](https://github.com/kakada123/chlatwork/blob/main/api/src/youtube-downloader/youtube-downloader.controller.ts): `api/src/youtube-downloader/youtube-downloader.controller.ts`
- [Download Jobs](https://github.com/kakada123/chlatwork/blob/main/api/src/youtube-downloader/youtube-downloader.service.ts): `api/src/youtube-downloader/youtube-downloader.service.ts`
- [Feature Availability](https://github.com/kakada123/chlatwork/blob/main/api/src/feature-availability/feature-availability.service.ts): `api/src/feature-availability/feature-availability.service.ts`
- [Download Runner](https://github.com/kakada123/chlatwork/blob/main/api/src/youtube-downloader/youtube-downloader.runner.ts): `api/src/youtube-downloader/youtube-downloader.runner.ts`

### Other components

- **User**

## Connections

- User → Creator API: submits requests
- Creator API → Generation Orchestration: starts generation (evidence: `api/src/creator-ai/creator-ai.controller.ts`)
- Creator API → Credits And History: reads credits (evidence: `api/src/creator-ai/creator-ai.controller.ts`)
- Creator API → Video Upload Tickets: issues tickets (evidence: `api/src/creator-ai/creator-ai.controller.ts`)
- Generation Orchestration → Credits And History: checks credits (evidence: `api/src/creator-ai/creator-generation.service.ts`)
- Generation Orchestration → AI Provider Gateway: requests generation (evidence: `api/src/creator-ai/creator-generation.service.ts`)
- Generation Orchestration → Feature Availability: checks access (evidence: `api/src/creator-ai/creator-generation.service.ts`)
- Credits And History → Application Database: stores credit state (evidence: `api/src/creator-ai/creator-credits.service.ts`)
- Credits And History → Bot Access Policy: checks bot access (evidence: `api/src/creator-ai/creator-credits.service.ts`)
- User → Moments API: manages moments
- Moments API → Moments Domain: delegates moment actions (evidence: `api/src/moments/moments.controller.ts`)
- Moments API → Birthday Editor: delegates editing (evidence: `api/src/moments/moments.controller.ts`)
- Moments Domain → Application Database: reads and writes (evidence: `api/src/moments/moments.service.ts`)
- User → Group Workspace API: manages workspace
- Group Workspace API → Workspace Management: delegates workspace actions (evidence: `api/src/group-workspaces/group-workspaces.controller.ts`)
- Group Workspace API → Bot Connections: requests connections (evidence: `api/src/group-workspaces/group-workspaces.controller.ts`)
- Group Workspace API → Group Voting: delegates voting (evidence: `api/src/group-workspaces/group-workspaces.controller.ts`)
- Group Workspace API → Poll Media: uploads poll media (evidence: `api/src/group-workspaces/group-workspaces.controller.ts`)
- Group Workspace API → Bot Access Policy: checks manager access (evidence: `api/src/group-workspaces/group-workspaces.controller.ts`)
- User → Authentication: authenticates
- Authentication → Application Database: reads and updates accounts (evidence: `api/src/auth/auth.service.ts`)
- User → YouTube Downloader API: requests downloads
- YouTube Downloader API → Download Jobs: manages download jobs (evidence: `api/src/youtube-downloader/youtube-downloader.controller.ts`)
- YouTube Downloader API → Feature Availability: checks availability (evidence: `api/src/youtube-downloader/youtube-downloader.controller.ts`)
- YouTube Downloader API → Download Runner: checks runner (evidence: `api/src/youtube-downloader/youtube-downloader.controller.ts`)
