# youpeak24/youpeak architecture

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

## Overview

YouPeak combines a consumer video-and-rewards platform with an administrative web panel, a public marketing site, and an Express/Firebase API. The documented user-facing journey starts on the public site, where visitors can explore features and plans or open account and purchase flows; the consumer app is the product’s primary usage surface. Administrators manage platform operations through a separate panel. Backend excerpts show video handling, payment coordination, reward accounting, scheduled maintenance, and media storage. Several app-to-API connections are not shown in the supplied source, so those links are omitted.

Main entry points: [`admin-panel/src/App.js`](https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/App.js) (Admin application), [`functions/backend/util/generateHistoryUniqueId.js`](https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/generateHistoryUniqueId.js) (History identifiers), [`functions/backend/util/rewardEngine.js`](https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/rewardEngine.js) (Reward engine), [`admin-panel/src/Component/Pages/Report/ManageReport.js`](https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/Component/Pages/Report/ManageReport.js) (Report management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public site"]
  node_landing["Marketing site<br/>[App.jsx]"]
  node_portal["Portal session<br/>[portal.js]"]
end

subgraph group_admin["Administration"]
  node_admin_app["Admin application<br/>[App.js]"]
  node_admin_reports["Report management<br/>[ManageReport.js]"]
  node_admin_rewards["Reward settings<br/>[ManageReward.js]"]
  node_admin_storage["Storage settings"]
end

subgraph group_api["API runtime"]
  node_backend["API application<br/>[index.js]"]
  node_route_registry["Route registry<br/>[index.js]"]
  node_cron["Scheduled tasks<br/>[cron.controller.js]"]
  node_firestore[("Firestore adapter<br/>[connection.js]")]
end

subgraph group_engagement["Video and rewards"]
  node_video_api["Video API"]
  node_user_model[("User records<br/>[user.model.js]")]
  node_reward_engine["Reward engine<br/>[rewardEngine.js]"]
  node_payment_api["Payment API"]
  node_history_id["History identifiers"]
  node_history_models[("Reward histories<br/>[history.model.js]")]
  node_wallet_history[("Wallet histories")]
end

subgraph group_media["Media services"]
  node_video_pipeline["Video pipeline"]
  node_cloudflare_storage["Cloudflare storage"]
  node_media_policy["Media policy<br/>[mediaPolicy.js]"]
end

node_visitor(("Visitor"))
node_admin_user(("Administrator"))
node_consumer_app["Consumer app"]

node_visitor -->|"visits"| node_landing
node_landing -->|"uses session"| node_portal
node_admin_user -->|"uses"| node_admin_app
node_admin_app -->|"routes to"| node_admin_reports
node_admin_app -->|"routes to"| node_admin_rewards
node_admin_app -->|"routes to"| node_admin_storage
node_admin_reports -->|"selects views"| node_admin_reports
node_admin_rewards -->|"selects panels"| node_admin_rewards
node_backend -->|"mounts routes"| node_route_registry
node_video_api -->|"queries users"| node_user_model
node_video_api -.->|"uses database"| node_firestore
node_reward_engine -->|"reads and updates"| node_firestore
node_reward_engine -->|"creates identifiers"| node_history_id
node_history_id -->|"checks uniqueness"| node_history_models
node_history_id -->|"checks uniqueness"| node_wallet_history
node_payment_api -->|"uses database"| node_firestore
node_cron -.->|"runs maintenance"| node_reward_engine
node_video_pipeline -->|"uses storage"| node_cloudflare_storage
node_cloudflare_storage -->|"builds media URLs"| node_media_policy
node_visitor -->|"uses"| node_consumer_app

click node_landing "https://github.com/youpeak24/youpeak/blob/main/landing/src/App.jsx"
click node_portal "https://github.com/youpeak24/youpeak/blob/main/landing/src/lib/portal.js"
click node_admin_app "https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/App.js"
click node_admin_reports "https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/Component/Pages/Report/ManageReport.js"
click node_admin_rewards "https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/Component/Pages/RewardSetting/ManageReward.js"
click node_admin_storage "https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/Component/Pages/Setting/StorageSettingPage.js"
click node_backend "https://github.com/youpeak24/youpeak/blob/main/functions/backend/index.js"
click node_route_registry "https://github.com/youpeak24/youpeak/blob/main/functions/backend/routes/index.js"
click node_cron "https://github.com/youpeak24/youpeak/blob/main/functions/backend/controllers/cron.controller.js"
click node_firestore "https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/connection.js"
click node_video_api "https://github.com/youpeak24/youpeak/blob/main/functions/backend/controllers/client/video.controller.js"
click node_user_model "https://github.com/youpeak24/youpeak/blob/main/functions/backend/models/user.model.js"
click node_reward_engine "https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/rewardEngine.js"
click node_payment_api "https://github.com/youpeak24/youpeak/blob/main/functions/backend/controllers/client/payment.controller.js"
click node_history_id "https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/generateHistoryUniqueId.js"
click node_history_models "https://github.com/youpeak24/youpeak/blob/main/functions/backend/models/history.model.js"
click node_wallet_history "https://github.com/youpeak24/youpeak/blob/main/functions/backend/models/walletHistory.model.js"
click node_video_pipeline "https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/videoPipeline.service.js"
click node_cloudflare_storage "https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/cloudflareStorage.service.js"
click node_media_policy "https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/mediaPolicy.js"
click node_consumer_app "https://github.com/youpeak24/youpeak/tree/main/flutter"

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_landing,node_portal toneBlue
class node_admin_app,node_admin_reports,node_admin_rewards,node_admin_storage toneAmber
class node_backend,node_route_registry,node_cron,node_firestore toneMint
class node_video_api,node_user_model,node_reward_engine,node_payment_api,node_history_id,node_history_models,node_wallet_history toneRose
class node_video_pipeline,node_cloudflare_storage,node_media_policy,node_visitor,node_admin_user toneIndigo
class node_consumer_app toneTeal
```

## Components

### Public site

- [Marketing site](https://github.com/youpeak24/youpeak/blob/main/landing/src/App.jsx): `landing/src/App.jsx`
- [Portal session](https://github.com/youpeak24/youpeak/blob/main/landing/src/lib/portal.js): `landing/src/lib/portal.js`

### Administration

- [Admin application](https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/App.js): `admin-panel/src/App.js`
- [Report management](https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/Component/Pages/Report/ManageReport.js): `admin-panel/src/Component/Pages/Report/ManageReport.js`
- [Reward settings](https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/Component/Pages/RewardSetting/ManageReward.js): `admin-panel/src/Component/Pages/RewardSetting/ManageReward.js`
- [Storage settings](https://github.com/youpeak24/youpeak/blob/main/admin-panel/src/Component/Pages/Setting/StorageSettingPage.js): `admin-panel/src/Component/Pages/Setting/StorageSettingPage.js`

### API runtime

- [API application](https://github.com/youpeak24/youpeak/blob/main/functions/backend/index.js): `functions/backend/index.js`
- [Route registry](https://github.com/youpeak24/youpeak/blob/main/functions/backend/routes/index.js): `functions/backend/routes/index.js`
- [Scheduled tasks](https://github.com/youpeak24/youpeak/blob/main/functions/backend/controllers/cron.controller.js): `functions/backend/controllers/cron.controller.js`
- [Firestore adapter](https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/connection.js): `functions/backend/util/connection.js`

### Video and rewards

- [Video API](https://github.com/youpeak24/youpeak/blob/main/functions/backend/controllers/client/video.controller.js): `functions/backend/controllers/client/video.controller.js`
- [User records](https://github.com/youpeak24/youpeak/blob/main/functions/backend/models/user.model.js): `functions/backend/models/user.model.js`
- [Reward engine](https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/rewardEngine.js): `functions/backend/util/rewardEngine.js`
- [Payment API](https://github.com/youpeak24/youpeak/blob/main/functions/backend/controllers/client/payment.controller.js): `functions/backend/controllers/client/payment.controller.js`
- [History identifiers](https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/generateHistoryUniqueId.js): `functions/backend/util/generateHistoryUniqueId.js`
- [Reward histories](https://github.com/youpeak24/youpeak/blob/main/functions/backend/models/history.model.js): `functions/backend/models/history.model.js`
- [Wallet histories](https://github.com/youpeak24/youpeak/blob/main/functions/backend/models/walletHistory.model.js): `functions/backend/models/walletHistory.model.js`

### Media services

- [Video pipeline](https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/videoPipeline.service.js): `functions/backend/util/videoPipeline.service.js`
- [Cloudflare storage](https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/cloudflareStorage.service.js): `functions/backend/util/cloudflareStorage.service.js`
- [Media policy](https://github.com/youpeak24/youpeak/blob/main/functions/backend/util/mediaPolicy.js): `functions/backend/util/mediaPolicy.js`

### Other components

- **Visitor**
- **Administrator**
- [Consumer app](https://github.com/youpeak24/youpeak/tree/main/flutter): `flutter`

## Connections

- Visitor → Marketing site: visits (evidence: `README.md`)
- Marketing site → Portal session: uses session (evidence: `landing/src/App.jsx`)
- Administrator → Admin application: uses (evidence: `README.md`)
- Admin application → Report management: routes to (evidence: `admin-panel/src/App.js`)
- Admin application → Reward settings: routes to (evidence: `admin-panel/src/App.js`)
- Admin application → Storage settings: routes to (evidence: `admin-panel/src/App.js`)
- Report management → Report management: selects views (evidence: `admin-panel/src/Component/Pages/Report/ManageReport.js`)
- Reward settings → Reward settings: selects panels (evidence: `admin-panel/src/Component/Pages/RewardSetting/ManageReward.js`)
- API application → Route registry: mounts routes (evidence: `functions/backend/index.js`)
- Video API → User records: queries users (evidence: `functions/backend/controllers/client/video.controller.js`)
- Video API → Firestore adapter: uses database (evidence: `functions/backend/controllers/client/video.controller.js`)
- Reward engine → Firestore adapter: reads and updates (evidence: `functions/backend/util/rewardEngine.js`)
- Reward engine → History identifiers: creates identifiers (evidence: `functions/backend/util/rewardEngine.js`)
- History identifiers → Reward histories: checks uniqueness (evidence: `functions/backend/util/generateHistoryUniqueId.js`)
- History identifiers → Wallet histories: checks uniqueness (evidence: `functions/backend/util/generateHistoryUniqueId.js`)
- Payment API → Firestore adapter: uses database (evidence: `functions/backend/controllers/client/payment.controller.js`)
- Scheduled tasks → Reward engine: runs maintenance (evidence: `functions/backend/controllers/cron.controller.js`)
- Video pipeline → Cloudflare storage: uses storage (evidence: `functions/backend/util/videoPipeline.service.js`)
- Cloudflare storage → Media policy: builds media URLs (evidence: `functions/backend/util/cloudflareStorage.service.js`)
- Visitor → Consumer app: uses (evidence: `README.md`)
