# vinitsharma6433-cpu/dashx architecture

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

## Overview

The repository combines DASHX’s automated short-reel production and publishing system, a Remotion-style reel renderer, and a separate multi-platform poster. The main production flow is orchestrated by the factory pipeline: it creates and processes jobs, checks quality, and can publish results. The tree also documents story-generation tools and multiple reel templates. Source excerpts establish some component calls, but not every production-stage transition; those uncertain connections are omitted rather than inferred.

Main entry points: [`reelfactory/factory/pipeline.py`](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/pipeline.py) (Production Manager), [`poster/poster.py`](https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/poster.py) (Scheduled Poster), [`reelfactory/src/reel/reelScene.tsx`](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/reelScene.tsx) (Reel Scene), [`reelfactory/factory/story.py`](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/story.py) (Story Generation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_production["Factory Production"]
  node_pipeline["Production Manager<br/>[pipeline.py]"]
  node_config["Factory Settings<br/>[config.py]"]
  node_db[("Factory Database<br/>[db.py]")]
  node_logger["Structured Logs<br/>[log.py]"]
  node_queue["Production Queue<br/>[queue.py]"]
  node_bridge["Legacy Script Bridge<br/>[bridge.py]"]
end

subgraph group_content["Stories and Quality"]
  node_story["Story Generation<br/>[story.py]"]
  node_llm["Local LLM<br/>[llm.py]"]
  node_script["Short Scriptwriting<br/>[script.py]"]
  node_quality["Quality Inspection<br/>[qc.py]"]
  node_seo["SEO Metadata<br/>[seo.py]"]
end

subgraph group_render["Reel Rendering"]
  node_reel_entry["Reel Render Entry<br/>[reel.ts]"]
  node_scene["Reel Scene<br/>[reelScene.tsx]"]
  node_templates["Scene Templates<br/>[catchBall.tsx]"]
  node_characters["Character Artwork<br/>[characters.tsx]"]
  node_template_info["Template Definitions<br/>[templateInfo.ts]"]
end

subgraph group_publishing["Publishing"]
  node_youtube["YouTube Publishing<br/>[youtube.py]"]
  node_youtube_service["YouTube"]
end

subgraph group_poster["Auto Poster"]
  node_poster_runner["Scheduled Poster<br/>[poster.py]"]
  node_poster_queue["Poster Queue<br/>[merge_queue.py]"]
  node_meta_check["Meta API Checks<br/>[meta_check.py]"]
  node_meta_platforms["Facebook and Instagram"]
  node_meta_backfill["Comment Backfill"]
end

node_operator(("Operator"))

node_operator -.->|"runs production"| node_pipeline
node_pipeline -->|"loads settings"| node_config
node_pipeline -->|"reads job data"| node_db
node_pipeline -->|"records events"| node_logger
node_pipeline -->|"uses legacy scripts"| node_bridge
node_pipeline -->|"uses story module"| node_story
node_pipeline -->|"runs inspection"| node_quality
node_pipeline -->|"generates metadata"| node_seo
node_pipeline -->|"publishes job"| node_youtube
node_story -.->|"optionally generates"| node_llm
node_llm -.->|"supports writing"| node_script
node_reel_entry -->|"uses definitions"| node_template_info
node_scene -->|"dispatches templates"| node_templates
node_scene -->|"renders characters"| node_characters
node_scene -->|"reads template data"| node_template_info
node_templates -->|"draws characters"| node_characters
node_youtube -->|"uploads videos"| node_youtube_service
node_operator -.->|"schedules posts"| node_poster_runner
node_poster_runner -.->|"reads due items"| node_poster_queue
node_poster_runner -->|"checks responses"| node_meta_check
node_poster_runner -->|"publishes reels"| node_meta_platforms
node_meta_backfill -->|"uses poster helpers"| node_poster_runner

click node_pipeline "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/pipeline.py"
click node_config "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/config.py"
click node_db "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/db.py"
click node_logger "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/log.py"
click node_queue "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/queue.py"
click node_bridge "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/bridge.py"
click node_story "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/story.py"
click node_llm "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/tools/purffle-shorts/purffle_shorts/llm.py"
click node_script "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/tools/purffle-shorts/purffle_shorts/script.py"
click node_quality "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/qc.py"
click node_seo "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/seo.py"
click node_reel_entry "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel.ts"
click node_scene "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/reelScene.tsx"
click node_templates "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/templates/catchBall.tsx"
click node_characters "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/art/characters.tsx"
click node_template_info "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/templateInfo.ts"
click node_youtube "https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/youtube.py"
click node_poster_runner "https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/poster.py"
click node_poster_queue "https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/merge_queue.py"
click node_meta_check "https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/meta_check.py"
click node_meta_backfill "https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/meta_comment_backfill.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_pipeline,node_config,node_db,node_logger,node_queue,node_bridge toneBlue
class node_story,node_llm,node_script,node_quality,node_seo toneAmber
class node_reel_entry,node_scene,node_templates,node_characters,node_template_info toneMint
class node_youtube,node_youtube_service toneRose
class node_poster_runner,node_poster_queue,node_meta_check,node_meta_platforms,node_meta_backfill,node_operator toneIndigo
```

## Components

### Factory Production

- [Production Manager](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/pipeline.py): `reelfactory/factory/pipeline.py`
- [Factory Settings](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/config.py): `reelfactory/factory/config.py`
- [Factory Database](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/db.py): `reelfactory/factory/db.py`
- [Structured Logs](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/log.py): `reelfactory/factory/log.py`
- [Production Queue](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/queue.py): `reelfactory/factory/queue.py`
- [Legacy Script Bridge](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/bridge.py): `reelfactory/factory/bridge.py`

### Stories and Quality

- [Story Generation](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/story.py): `reelfactory/factory/story.py`
- [Local LLM](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/tools/purffle-shorts/purffle_shorts/llm.py): `reelfactory/tools/purffle-shorts/purffle_shorts/llm.py`
- [Short Scriptwriting](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/tools/purffle-shorts/purffle_shorts/script.py): `reelfactory/tools/purffle-shorts/purffle_shorts/script.py`
- [Quality Inspection](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/qc.py): `reelfactory/factory/qc.py`
- [SEO Metadata](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/seo.py): `reelfactory/factory/seo.py`

### Reel Rendering

- [Reel Render Entry](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel.ts): `reelfactory/src/reel.ts`
- [Reel Scene](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/reelScene.tsx): `reelfactory/src/reel/reelScene.tsx`
- [Scene Templates](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/templates/catchBall.tsx): `reelfactory/src/reel/templates/catchBall.tsx`
- [Character Artwork](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/art/characters.tsx): `reelfactory/src/reel/art/characters.tsx`
- [Template Definitions](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/src/reel/templateInfo.ts): `reelfactory/src/reel/templateInfo.ts`

### Publishing

- [YouTube Publishing](https://github.com/vinitsharma6433-cpu/dashx/blob/main/reelfactory/factory/youtube.py): `reelfactory/factory/youtube.py`
- **YouTube**

### Auto Poster

- [Scheduled Poster](https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/poster.py): `poster/poster.py`
- [Poster Queue](https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/merge_queue.py): `poster/merge_queue.py`
- [Meta API Checks](https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/meta_check.py): `poster/meta_check.py`
- **Facebook and Instagram**
- [Comment Backfill](https://github.com/vinitsharma6433-cpu/dashx/blob/main/poster/meta_comment_backfill.py): `poster/meta_comment_backfill.py`

### Other components

- **Operator**

## Connections

- Operator → Production Manager: runs production
- Production Manager → Factory Settings: loads settings (evidence: `reelfactory/factory/pipeline.py`)
- Production Manager → Factory Database: reads job data (evidence: `reelfactory/factory/pipeline.py`)
- Production Manager → Structured Logs: records events (evidence: `reelfactory/factory/pipeline.py`)
- Production Manager → Legacy Script Bridge: uses legacy scripts (evidence: `reelfactory/factory/pipeline.py`)
- Production Manager → Story Generation: uses story module (evidence: `reelfactory/factory/pipeline.py`)
- Production Manager → Quality Inspection: runs inspection (evidence: `reelfactory/factory/pipeline.py`)
- Production Manager → SEO Metadata: generates metadata (evidence: `reelfactory/factory/pipeline.py`)
- Production Manager → YouTube Publishing: publishes job (evidence: `reelfactory/factory/pipeline.py`)
- Story Generation → Local LLM: optionally generates
- Local LLM → Short Scriptwriting: supports writing
- Reel Render Entry → Template Definitions: uses definitions (evidence: `reelfactory/src/reel.ts`)
- Reel Scene → Scene Templates: dispatches templates (evidence: `reelfactory/src/reel/reelScene.tsx`)
- Reel Scene → Character Artwork: renders characters (evidence: `reelfactory/src/reel/reelScene.tsx`)
- Reel Scene → Template Definitions: reads template data (evidence: `reelfactory/src/reel/reelScene.tsx`)
- Scene Templates → Character Artwork: draws characters (evidence: `reelfactory/src/reel/templates/catchBall.tsx`)
- YouTube Publishing → YouTube: uploads videos
- Operator → Scheduled Poster: schedules posts (evidence: `poster/poster.py`)
- Scheduled Poster → Poster Queue: reads due items
- Scheduled Poster → Meta API Checks: checks responses (evidence: `poster/poster.py`)
- Scheduled Poster → Facebook and Instagram: publishes reels (evidence: `poster/poster.py`)
- Comment Backfill → Scheduled Poster: uses poster helpers (evidence: `poster/meta_comment_backfill.py`)
