34 lines
1.4 KiB
Markdown
34 lines
1.4 KiB
Markdown
# StudioFlow — Backend (API & Worker)
|
|
|
|
## Übersicht
|
|
Dieses Projekt enthält die gesamte Geschäftslogik, die API-Endpunkte und den Hintergrund-Worker für StudioFlow. Es basiert auf NestJS und nutzt Prisma als ORM.
|
|
|
|
## Technologie-Stack
|
|
- **Framework:** NestJS 10 (TypeScript)
|
|
- **ORM:** Prisma 6
|
|
- **Datenbank:** PostgreSQL 16
|
|
- **Queue:** BullMQ (via Redis 7)
|
|
- **Auth:** Passport.js + Google OAuth 2.0
|
|
- **Validierung:** class-validator + zod
|
|
- **Dokumentation:** Swagger (@nestjs/swagger)
|
|
|
|
## Kernmodule
|
|
1. **Render-Engine:** Wandelt Video-Konfigurationen in finale Beschreibungen um.
|
|
2. **Quota-Management:** Überwacht und plant YouTube API-Units (Hash-basierter Diff).
|
|
3. **Bulk-Jobs:** Verarbeitet Massenänderungen asynchron via BullMQ.
|
|
4. **Linting:** Validiert Metadaten gegen vordefinierte Regeln.
|
|
5. **Sync-Service:** Kommuniziert mit der YouTube Data API v3.
|
|
|
|
## Setup & Start
|
|
1. `npm install`
|
|
2. Prisma-Client generieren: `npx prisma generate`
|
|
3. Server starten: `npm run start:dev` (Main Entry: `src/main.ts`)
|
|
4. Worker starten: `npm run start:worker` (Worker Entry: `src/worker.ts`)
|
|
|
|
## Verzeichnisstruktur
|
|
- `src/main.ts`: Entrypoint für die REST API
|
|
- `src/worker.ts`: Entrypoint für den BullMQ Worker
|
|
- `src/shared/render-engine/`: Die zentrale Rendering-Logik
|
|
- `src/modules/`: Alle fachlichen Module (Videos, Blocks, Templates, etc.)
|
|
- `prisma/`: Datenbank-Schema und Migrationen
|