# AvanzaCast - Plataforma de Streaming SaaS Modular# AvanzaCast - Vite prototype ## 📋 DescripciónPequeño prototipo con Vite + React + TypeScript + Tailwind (estilo Vristo minimal). Plataforma de streaming en vivo tipo StreamYard con arquitectura modular SaaS: - 🎬 Transmisión multistream (YouTube, Facebook, Twitch, LinkedIn)Instalación: - 🎥 Estudio virtual con WebRTC - 💬 Chat en tiempo real```bash - 📹 Grabación y almacenamiento en la nubecd vite-app - 👥 Gestión de invitados y colaboraciónnpm install - 🎨 Personalización de escenas con overlaysnpm run dev - 💳 Sistema de suscripciones y pagos``` ## 🏗️ Arquitectura MonorepoEl servidor dev arranca en http://localhost:5173 por defecto. Este proyecto usa **npm workspaces** con 4 módulos principales: ``` packages/ ├── landing-page/ # Landing y registro (Puerto 3000) ├── backend-api/ # API REST + WebSocket (Puerto 4000) ├── broadcast-studio/ # Estudio de streaming (Puerto 3001) └── admin-panel/ # Panel SaaS admin (Puerto 3002) ``` ### 🌐 Landing Page (Puerto 3000) - **Tech**: React 18 + Vite + Tailwind CSS - **Función**: Marketing, registro, login - **Rutas**: `/`, `/login`, `/register` ### 🔌 Backend API (Puerto 4000) - **Tech**: Node.js 20 + Express + TypeScript + Prisma + PostgreSQL + Redis - **Función**: Autenticación JWT, gestión usuarios, pagos, integraciones - **Endpoints**: `/api/v1/*` ### 🎬 Broadcast Studio (Puerto 3001) - **Tech**: React 18 + Vite + WebRTC + Socket.IO + Tailwind CSS - **Función**: Estudio virtual, multistream, escenas, overlays - **Características**: Transmisión en vivo, gestión de cámaras y audio ### ⚙️ Admin Panel (Puerto 3002) - **Tech**: React 18 + Vite + Ant Design + Recharts - **Función**: Panel SaaS (usuarios, suscripciones, analytics, facturación) - **Características**: Dashboard, gestión usuarios, planes de pago ## 🚀 Instalación y Desarrollo ### Requisitos - Node.js >= 20.0.0 - npm >= 10.0.0 - PostgreSQL 15 - Redis 7 ### Instalación ```bash # Instalar todas las dependencias del monorepo npm install ``` ### Desarrollo ```bash # Todos los módulos simultáneamente npm run dev # Módulos individuales npm run dev:landing # Landing page (3000) npm run dev:api # Backend API (4000) npm run dev:studio # Broadcast Studio (3001) npm run dev:admin # Admin Panel (3002) ``` ### Build ```bash # Build completo npm run build # Build individual npm run build:landing npm run build:api npm run build:studio npm run build:admin ``` ## 📦 Stack Tecnológico ### Frontend (Landing, Studio, Admin) - React 18.2.0 - Vite 4.3.9 - TypeScript 5.2.2 - Tailwind CSS 3.4.16 - React Router v6 - Ant Design 5.x (Admin Panel) - Zustand (Estado global) ### Backend API - Node.js 20 LTS - Express 4.18 - TypeScript 5.2.2 - Prisma ORM - PostgreSQL 15 - Redis 7 - Socket.IO 4.6 - JWT + bcrypt - Stripe (pagos) ### Integraciones - YouTube Data API v3 - Facebook Graph API - Twitch API - LinkedIn API - AWS S3 / MinIO (almacenamiento) - FFmpeg (procesamiento video) ## 📚 Documentación Completa Consulta `ARCHITECTURE.md` para: - Diagramas de arquitectura - Flujos de autenticación - Estructura de base de datos - API endpoints completos - Variables de entorno - Patrones de comunicación entre módulos ## 🔐 Configuración de Backend 1. Copia el archivo de ejemplo: ```bash cp packages/backend-api/.env.example packages/backend-api/.env ``` 2. Configura las variables de entorno (DATABASE_URL, JWT_SECRET, etc.) 3. Ejecuta migraciones de Prisma: ```bash cd packages/backend-api npm run prisma:migrate ``` ## 📈 Roadmap MVP - [x] Estructura monorepo - [x] Landing page funcional - [x] Backend API base - [x] Broadcast Studio UI base - [x] Admin Panel UI base - [ ] Autenticación JWT completa - [ ] Base de datos PostgreSQL + Prisma - [ ] WebRTC streaming - [ ] Multistream (YouTube, Facebook) - [ ] Sistema de suscripciones Stripe - [ ] Grabación en la nube ## 🤝 Contribución 1. Fork el proyecto 2. Crea una rama feature (`git checkout -b feature/AmazingFeature`) 3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`) 4. Push a la rama (`git push origin feature/AmazingFeature`) 5. Abre un Pull Request ## 📄 Licencia Proyecto privado - Todos los derechos reservados