176 lines
4.2 KiB
Markdown
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
|