|
|
@@ -2,6 +2,52 @@
|
|
|
|
|
|
A modern, full-stack video processing system built with Turborepo. Automatically monitors directories, processes videos with HandBrake, and provides a complete web interface for management.
|
|
|
|
|
|
+## System Overview
|
|
|
+
|
|
|
+```mermaid
|
|
|
+graph TB
|
|
|
+ subgraph "User Interfaces"
|
|
|
+ WEB[Web Dashboard<br/>Next.js + React]
|
|
|
+ CLI[Command Line<br/>Node.js CLI]
|
|
|
+ end
|
|
|
+
|
|
|
+ subgraph "API Service"
|
|
|
+ NEST[NestJS Server<br/>REST + WebSocket]
|
|
|
+ end
|
|
|
+
|
|
|
+ subgraph "Core Services"
|
|
|
+ WATCH[File Watcher<br/>Chokidar]
|
|
|
+ QUEUE[Task Queue<br/>Background Processing]
|
|
|
+ HANDBRAKE[Video Encoder<br/>HandBrake CLI]
|
|
|
+ end
|
|
|
+
|
|
|
+ subgraph "Data Storage"
|
|
|
+ DB[(SQLite Database<br/>Files & Tasks)]
|
|
|
+ end
|
|
|
+
|
|
|
+ subgraph "File System"
|
|
|
+ INPUT[Input Directories<br/>Video Files]
|
|
|
+ OUTPUT[Output Directories<br/>Processed Videos]
|
|
|
+ end
|
|
|
+
|
|
|
+ WEB --> NEST
|
|
|
+ CLI --> NEST
|
|
|
+ NEST --> WATCH
|
|
|
+ NEST --> QUEUE
|
|
|
+ QUEUE --> HANDBRAKE
|
|
|
+ WATCH --> DB
|
|
|
+ QUEUE --> DB
|
|
|
+ HANDBRAKE --> DB
|
|
|
+ WATCH --> INPUT
|
|
|
+ HANDBRAKE --> OUTPUT
|
|
|
+
|
|
|
+ style WEB fill:#e3f2fd
|
|
|
+ style NEST fill:#f3e5f5
|
|
|
+ style DB fill:#e8f5e8
|
|
|
+ style INPUT fill:#fff3e0
|
|
|
+ style OUTPUT fill:#e0f2f1
|
|
|
+```
|
|
|
+
|
|
|
## Quick Start
|
|
|
|
|
|
```bash
|
|
|
@@ -39,3 +85,44 @@ For detailed information, see:
|
|
|
├── docs/ # Documentation
|
|
|
└── scripts/ # Build scripts
|
|
|
```
|
|
|
+
|
|
|
+```mermaid
|
|
|
+graph TD
|
|
|
+ ROOT[watch-finished-turbo/] --> APPS[apps/]
|
|
|
+ ROOT --> PACKAGES[packages/]
|
|
|
+ ROOT --> DATA[data/]
|
|
|
+ ROOT --> DOCS[docs/]
|
|
|
+ ROOT --> SCRIPTS[scripts/]
|
|
|
+ ROOT --> CONFIG[Configuration Files<br/>package.json, turbo.json, etc.]
|
|
|
+
|
|
|
+ APPS --> WEB[web/<br/>Next.js UI]
|
|
|
+ APPS --> SERVICE[service/<br/>NestJS API]
|
|
|
+ APPS --> CLI[cli/<br/>Node.js CLI]
|
|
|
+
|
|
|
+ PACKAGES --> ESLINT[eslint-config/<br/>Shared linting]
|
|
|
+ PACKAGES --> TSCONFIG[typescript-config/<br/>Shared TS config]
|
|
|
+ PACKAGES --> UI[ui/<br/>Shared components]
|
|
|
+
|
|
|
+ DATA --> DB[(database.db<br/>SQLite)]
|
|
|
+ DATA --> BACKUP[database.db.bak]
|
|
|
+
|
|
|
+ DOCS --> ARCH[architecture.md<br/>System design]
|
|
|
+ DOCS --> DEV[DEVELOPMENT_NOTES.md<br/>Dev guide]
|
|
|
+ DOCS --> CLI_DOCS[cli.md<br/>CLI reference]
|
|
|
+
|
|
|
+ WEB --> W_SRC[src/app/<br/>Pages]
|
|
|
+ WEB --> W_COMP[src/components/<br/>UI components]
|
|
|
+ WEB --> W_LIB[src/lib/<br/>Utilities]
|
|
|
+
|
|
|
+ SERVICE --> S_SRC[src/<br/>Controllers & Services]
|
|
|
+ SERVICE --> S_TEST[test/<br/>Unit tests]
|
|
|
+
|
|
|
+ CLI --> C_SRC[src/<br/>CLI commands]
|
|
|
+ CLI --> C_BIN[bin/<br/>Entry point]
|
|
|
+
|
|
|
+ style ROOT fill:#e3f2fd
|
|
|
+ style APPS fill:#f3e5f5
|
|
|
+ style PACKAGES fill:#e8f5e8
|
|
|
+ style DATA fill:#fff3e0
|
|
|
+ style DOCS fill:#fce4ec
|
|
|
+```
|