AvanzaCast/README.md

176 lines
4.2 KiB
Markdown

# 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