# kora2024/kora-app architecture

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

- Interactive diagram: https://gitdiagram.com/kora2024/kora-app
- Repository: https://github.com/kora2024/kora-app

## Overview

KORA is a cultural streaming and creator platform: audiences discover and play works, while creators publish content and access analytics and royalty information. The backend serves catalog, creator, subscription, live, podcast, recommendation, advertising, reputation, and CVE capabilities; FrekCore ingestion supplies catalog works, and the CVE models cultural value. The frontend also includes onboarding and a territory globe with locally stored audio “Eclats.” Several backend routes and frontend screens are unsampled, so their capabilities are represented without asserting undocumented runtime links.

Main entry points: [`backend/server.py`](https://github.com/kora2024/kora-app/blob/main/backend/server.py) (API server and auth), [`backend/routes/content_routes.py`](https://github.com/kora2024/kora-app/blob/main/backend/routes/content_routes.py) (Content routes), [`frontend/src/globe/KoraGlobe.tsx`](https://github.com/kora2024/kora-app/blob/main/frontend/src/globe/KoraGlobe.tsx) (Territory globe), [`frontend/app`](https://github.com/kora2024/kora-app/tree/main/frontend/app) (KORA mobile app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Audience app"]
  node_mobile["KORA mobile app"]
  node_globe["Territory globe<br/>[KoraGlobe.tsx]"]
  node_appstate["Onboarding and territory state<br/>[useKoraStore.ts]"]
  node_eclat[("Eclat local storage<br/>[eclatStorage.ts]")]
  node_catalogui["Catalog client<br/>[catalogService.ts]"]
end

subgraph group_catalog["Catalog and ingestion"]
  node_catalogroutes["Catalog routes<br/>[catalog_routes.py]"]
  node_catalogservice["Catalog service<br/>[catalog_service.py]"]
  node_contentroutes["Content routes<br/>[content_routes.py]"]
  node_frekbridge["FrekCore bridge<br/>[frekcore_bridge.py]"]
  node_registerwork["Work registration"]
  node_frekrouter["FrekCore routes<br/>[frekcore_routes.py]"]
  node_ingestion["Catalog ingestion"]
  node_apiv1["Works and releases API<br/>[api_v1_routes.py]"]
end

subgraph group_creator["Creator platform"]
  node_creators["Creator dashboard and uploads<br/>[creators_routes.py]"]
end

subgraph group_trust["Value and trust"]
  node_cve["Cultural value engine<br/>[cve_engine.py]"]
  node_cvemodels["CVE records<br/>[cve_models.py]"]
  node_cveapi["CVE routes<br/>[cve_routes.py]"]
  node_cveservice["CVE service<br/>[cve_service.py]"]
  node_reputation["Reputation and moderation"]
  node_rbac["Access control<br/>[rbac.py]"]
  node_rbacroutes["Access routes<br/>[rbac_routes.py]"]
end

subgraph group_platform["Platform services"]
  node_server["API server and auth<br/>[server.py]"]
  node_mongo[("MongoDB")]
  node_ads["Advertising<br/>[ads_routes.py]"]
  node_developer["Developer API access"]
  node_podcast["Podcasts<br/>[podcast_routes.py]"]
  node_live["Live streaming<br/>[live_routes.py]"]
  node_playlist["Playlists<br/>[playlist_routes.py]"]
  node_recommendation["Recommendations"]
  node_subscription["Subscriptions"]
end

node_listener(("Listener"))

node_listener -->|"uses"| node_mobile
node_globe -->|"reads territory state"| node_appstate
node_globe -->|"uses Eclat type"| node_eclat
node_mobile -.->|"catalog access"| node_catalogui
node_server -->|"mounts"| node_catalogroutes
node_server -->|"mounts"| node_contentroutes
node_server -->|"mounts"| node_frekrouter
node_server -->|"mounts"| node_apiv1
node_server -->|"mounts"| node_creators
node_server -->|"mounts"| node_cveapi
node_server -->|"mounts"| node_reputation
node_server -->|"mounts"| node_ads
node_server -->|"mounts"| node_developer
node_server -->|"mounts"| node_podcast
node_server -->|"mounts"| node_live
node_server -->|"mounts"| node_playlist
node_server -->|"mounts"| node_recommendation
node_server -->|"mounts"| node_subscription
node_server -.->|"mounts"| node_rbacroutes
node_server -->|"connects to"| node_mongo
node_catalogroutes -->|"calls"| node_catalogservice
node_contentroutes -->|"uses"| node_frekbridge
node_contentroutes -->|"uses"| node_registerwork
node_frekrouter -->|"calls"| node_ingestion
node_cveapi -->|"uses engine"| node_cve
node_cveservice -->|"uses models"| node_cvemodels
node_rbacroutes -->|"uses"| node_rbac

click node_mobile "https://github.com/kora2024/kora-app/tree/main/frontend/app"
click node_globe "https://github.com/kora2024/kora-app/blob/main/frontend/src/globe/KoraGlobe.tsx"
click node_appstate "https://github.com/kora2024/kora-app/blob/main/frontend/src/store/useKoraStore.ts"
click node_eclat "https://github.com/kora2024/kora-app/blob/main/frontend/src/utils/eclatStorage.ts"
click node_catalogui "https://github.com/kora2024/kora-app/blob/main/frontend/src/services/catalogService.ts"
click node_server "https://github.com/kora2024/kora-app/blob/main/backend/server.py"
click node_catalogroutes "https://github.com/kora2024/kora-app/blob/main/backend/routes/catalog_routes.py"
click node_catalogservice "https://github.com/kora2024/kora-app/blob/main/backend/services/catalog_service.py"
click node_contentroutes "https://github.com/kora2024/kora-app/blob/main/backend/routes/content_routes.py"
click node_frekbridge "https://github.com/kora2024/kora-app/blob/main/backend/services/frekcore_bridge.py"
click node_registerwork "https://github.com/kora2024/kora-app/blob/main/backend/services/frekcore_register_work.py"
click node_frekrouter "https://github.com/kora2024/kora-app/blob/main/backend/routes/frekcore_routes.py"
click node_ingestion "https://github.com/kora2024/kora-app/blob/main/backend/services/frekcore_ingestion.py"
click node_apiv1 "https://github.com/kora2024/kora-app/blob/main/backend/routes/api_v1_routes.py"
click node_creators "https://github.com/kora2024/kora-app/blob/main/backend/routes/creators_routes.py"
click node_cve "https://github.com/kora2024/kora-app/blob/main/backend/models/cve_engine.py"
click node_cvemodels "https://github.com/kora2024/kora-app/blob/main/backend/models/cve_models.py"
click node_cveapi "https://github.com/kora2024/kora-app/blob/main/backend/routes/cve_routes.py"
click node_cveservice "https://github.com/kora2024/kora-app/blob/main/backend/services/cve_service.py"
click node_reputation "https://github.com/kora2024/kora-app/blob/main/backend/routes/reputation_routes.py"
click node_rbac "https://github.com/kora2024/kora-app/blob/main/backend/models/rbac.py"
click node_rbacroutes "https://github.com/kora2024/kora-app/blob/main/backend/routes/rbac_routes.py"
click node_ads "https://github.com/kora2024/kora-app/blob/main/backend/routes/ads_routes.py"
click node_developer "https://github.com/kora2024/kora-app/blob/main/backend/routes/developer_routes.py"
click node_podcast "https://github.com/kora2024/kora-app/blob/main/backend/routes/podcast_routes.py"
click node_live "https://github.com/kora2024/kora-app/blob/main/backend/routes/live_routes.py"
click node_playlist "https://github.com/kora2024/kora-app/blob/main/backend/routes/playlist_routes.py"
click node_recommendation "https://github.com/kora2024/kora-app/blob/main/backend/routes/recommendation_routes.py"
click node_subscription "https://github.com/kora2024/kora-app/blob/main/backend/routes/subscription_routes.py"

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_mobile,node_globe,node_appstate,node_eclat,node_catalogui toneBlue
class node_catalogroutes,node_catalogservice,node_contentroutes,node_frekbridge,node_registerwork,node_frekrouter,node_ingestion,node_apiv1 toneAmber
class node_creators toneMint
class node_cve,node_cvemodels,node_cveapi,node_cveservice,node_reputation,node_rbac,node_rbacroutes toneRose
class node_server,node_mongo,node_ads,node_developer,node_podcast,node_live,node_playlist,node_recommendation,node_subscription,node_listener toneIndigo
```

## Components

### Audience app

- [KORA mobile app](https://github.com/kora2024/kora-app/tree/main/frontend/app): `frontend/app`
- [Territory globe](https://github.com/kora2024/kora-app/blob/main/frontend/src/globe/KoraGlobe.tsx): `frontend/src/globe/KoraGlobe.tsx`
- [Onboarding and territory state](https://github.com/kora2024/kora-app/blob/main/frontend/src/store/useKoraStore.ts): `frontend/src/store/useKoraStore.ts`
- [Eclat local storage](https://github.com/kora2024/kora-app/blob/main/frontend/src/utils/eclatStorage.ts): `frontend/src/utils/eclatStorage.ts`
- [Catalog client](https://github.com/kora2024/kora-app/blob/main/frontend/src/services/catalogService.ts): `frontend/src/services/catalogService.ts`

### Catalog and ingestion

- [Catalog routes](https://github.com/kora2024/kora-app/blob/main/backend/routes/catalog_routes.py): `backend/routes/catalog_routes.py`
- [Catalog service](https://github.com/kora2024/kora-app/blob/main/backend/services/catalog_service.py): `backend/services/catalog_service.py`
- [Content routes](https://github.com/kora2024/kora-app/blob/main/backend/routes/content_routes.py): `backend/routes/content_routes.py`
- [FrekCore bridge](https://github.com/kora2024/kora-app/blob/main/backend/services/frekcore_bridge.py): `backend/services/frekcore_bridge.py`
- [Work registration](https://github.com/kora2024/kora-app/blob/main/backend/services/frekcore_register_work.py): `backend/services/frekcore_register_work.py`
- [FrekCore routes](https://github.com/kora2024/kora-app/blob/main/backend/routes/frekcore_routes.py): `backend/routes/frekcore_routes.py`
- [Catalog ingestion](https://github.com/kora2024/kora-app/blob/main/backend/services/frekcore_ingestion.py): `backend/services/frekcore_ingestion.py`
- [Works and releases API](https://github.com/kora2024/kora-app/blob/main/backend/routes/api_v1_routes.py): `backend/routes/api_v1_routes.py`

### Creator platform

- [Creator dashboard and uploads](https://github.com/kora2024/kora-app/blob/main/backend/routes/creators_routes.py): `backend/routes/creators_routes.py`

### Value and trust

- [Cultural value engine](https://github.com/kora2024/kora-app/blob/main/backend/models/cve_engine.py): `backend/models/cve_engine.py`
- [CVE records](https://github.com/kora2024/kora-app/blob/main/backend/models/cve_models.py): `backend/models/cve_models.py`
- [CVE routes](https://github.com/kora2024/kora-app/blob/main/backend/routes/cve_routes.py): `backend/routes/cve_routes.py`
- [CVE service](https://github.com/kora2024/kora-app/blob/main/backend/services/cve_service.py): `backend/services/cve_service.py`
- [Reputation and moderation](https://github.com/kora2024/kora-app/blob/main/backend/routes/reputation_routes.py): `backend/routes/reputation_routes.py`
- [Access control](https://github.com/kora2024/kora-app/blob/main/backend/models/rbac.py): `backend/models/rbac.py`
- [Access routes](https://github.com/kora2024/kora-app/blob/main/backend/routes/rbac_routes.py): `backend/routes/rbac_routes.py`

### Platform services

- [API server and auth](https://github.com/kora2024/kora-app/blob/main/backend/server.py): `backend/server.py`
- **MongoDB**
- [Advertising](https://github.com/kora2024/kora-app/blob/main/backend/routes/ads_routes.py): `backend/routes/ads_routes.py`
- [Developer API access](https://github.com/kora2024/kora-app/blob/main/backend/routes/developer_routes.py): `backend/routes/developer_routes.py`
- [Podcasts](https://github.com/kora2024/kora-app/blob/main/backend/routes/podcast_routes.py): `backend/routes/podcast_routes.py`
- [Live streaming](https://github.com/kora2024/kora-app/blob/main/backend/routes/live_routes.py): `backend/routes/live_routes.py`
- [Playlists](https://github.com/kora2024/kora-app/blob/main/backend/routes/playlist_routes.py): `backend/routes/playlist_routes.py`
- [Recommendations](https://github.com/kora2024/kora-app/blob/main/backend/routes/recommendation_routes.py): `backend/routes/recommendation_routes.py`
- [Subscriptions](https://github.com/kora2024/kora-app/blob/main/backend/routes/subscription_routes.py): `backend/routes/subscription_routes.py`

### Other components

- **Listener**

## Connections

- Listener → KORA mobile app: uses
- Territory globe → Onboarding and territory state: reads territory state (evidence: `frontend/src/globe/KoraGlobe.tsx`)
- Territory globe → Eclat local storage: uses Eclat type (evidence: `frontend/src/globe/KoraGlobe.tsx`)
- KORA mobile app → Catalog client: catalog access
- API server and auth → Catalog routes: mounts (evidence: `backend/server.py`)
- API server and auth → Content routes: mounts (evidence: `backend/server.py`)
- API server and auth → FrekCore routes: mounts (evidence: `backend/server.py`)
- API server and auth → Works and releases API: mounts (evidence: `backend/server.py`)
- API server and auth → Creator dashboard and uploads: mounts (evidence: `backend/server.py`)
- API server and auth → CVE routes: mounts (evidence: `backend/server.py`)
- API server and auth → Reputation and moderation: mounts (evidence: `backend/server.py`)
- API server and auth → Advertising: mounts (evidence: `backend/server.py`)
- API server and auth → Developer API access: mounts (evidence: `backend/server.py`)
- API server and auth → Podcasts: mounts (evidence: `backend/server.py`)
- API server and auth → Live streaming: mounts (evidence: `backend/server.py`)
- API server and auth → Playlists: mounts (evidence: `backend/server.py`)
- API server and auth → Recommendations: mounts (evidence: `backend/server.py`)
- API server and auth → Subscriptions: mounts (evidence: `backend/server.py`)
- API server and auth → Access routes: mounts (evidence: `backend/server.py`)
- API server and auth → MongoDB: connects to (evidence: `backend/server.py`)
- Catalog routes → Catalog service: calls (evidence: `backend/routes/catalog_routes.py`)
- Content routes → FrekCore bridge: uses (evidence: `backend/routes/content_routes.py`)
- Content routes → Work registration: uses (evidence: `backend/routes/content_routes.py`)
- FrekCore routes → Catalog ingestion: calls (evidence: `backend/routes/frekcore_routes.py`)
- CVE routes → Cultural value engine: uses engine (evidence: `backend/routes/cve_routes.py`)
- CVE service → CVE records: uses models (evidence: `backend/services/cve_service.py`)
- Access routes → Access control: uses (evidence: `backend/routes/rbac_routes.py`)
