Una plataforma de streaming completa inspirada en Netflix, construida con arquitectura de microservicios.
Prisma es una plataforma completa de streaming de vídeo que permite a los usuarios explorar un catálogo, reproducir contenido en alta calidad mediante streaming adaptativo HLS y gestionar sus suscripciones. Los administradores disponen de un panel dedicado para gestionar todo el contenido y los metadatos.
El sistema está compuesto por 5 servicios independientes que se comunican entre sí y se despliegan mediante Docker.
┌─────────────────┐ ┌─────────────────┐
│ App Móvil │ │ App Admin │
│ Flutter/Dart │ │ Vue.js │
└────────┬────────┘ └────────┬────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Servidor │ │ Servidor │
│ Catálogo │ │ de Medios │
│ SpringBoot/Java │ │ Express/Node.js │
└────────┬────────┘ └────────┬────────┘
│ │
▼ ▼
┌─────────────────────────────────────────┐
│ Sistema de Gestión (Odoo) │
│ Autenticación · Suscripciones · JWT │
└────────┬──────────────┬────────────────-┘
│ │
┌────▼────┐ ┌─────▼──────┐ ┌────────────┐
│ MongoDB │ │ MySQL │ │ PostgreSQL │
│Catálogo │ │ Odoo │ │ Medios │
└─────────┘ └────────────┘ └────────────┘
| Servicio | Tecnología | Responsabilidad |
|---|---|---|
| 📱 App Móvil | Flutter / Dart | Cliente multiplataforma iOS & Android |
| 🖥️ App Admin | Vue.js | Panel de administración de contenido |
| 📚 Catálogo | SpringBoot (Java) | API REST de metadatos, categorías y series |
| 🎞️ Medios | Express (Node.js) | Streaming HLS adaptativo (720p / 1080p / 4K) |
| 👤 Gestión | Odoo (Python) | Autenticación JWT, suscripciones y pagos |
- 🔐 Autenticación con tokens JWT
- 🎬 Reproducción en streaming adaptativo (HLS) según ancho de banda
- 📋 Catálogo con filtros por categoría, género y serie
- 📊 Historial de reproducciones con progreso guardado
- 💳 Gestión de suscripción y métodos de pago (Visa, MasterCard, PayPal)
- 👥 Múltiples perfiles por cuenta
- ⬆️ Subida y eliminación de vídeos
- ✏️ Gestión de metadatos del catálogo
- 🔄 Pipeline automático de procesamiento de vídeo con FFmpeg
Cuando un administrador sube un vídeo, el sistema ejecuta automáticamente:
1. 📤 Subida del .mp4 original
↓
2. 🔍 Extracción de metadatos (FFmpeg)
↓
3. ✂️ Segmentación en 720p / 1080p / 4K (FFmpeg)
↓
4. 💾 Almacenamiento en /Public/video:id/:resolution
↓
5. 📄 Generación del index.m3u8 (HLS playlist)
- Docker y Docker Compose
- Node.js v18+
- Flutter SDK
# 1. Clona el repositorio
git clone https://github.com/Gabriel-marchante/Prisma.git
cd Prisma
# 2. Levanta todos los servicios
docker compose up -d
# 3. Servicios disponibles
# Catálogo: http://localhost:8080
# Medios: http://localhost:3001
# Odoo: http://localhost:8069| Método | Ruta | Descripción |
|---|---|---|
GET |
/cataleg |
Lista el catálogo paginado (10 por página) |
GET |
/cataleg/:id |
Detalle completo de un vídeo |
POST |
/cataleg |
Añade un vídeo (admin) |
PATCH |
/cataleg/:id |
Actualiza metadatos (admin) |
DELETE |
/cataleg/:id |
Elimina un vídeo (admin) |
| Método | Ruta | Descripción |
|---|---|---|
GET |
/Public/video:id/:resolution |
Streaming HLS por resolución |
POST |
/vid |
Sube un fichero de vídeo (admin) |
DELETE |
/vid/:id |
Elimina un vídeo (admin) |
| Método | Ruta | Descripción |
|---|---|---|
POST |
/login |
Inicio de sesión → JWT |
POST |
/user |
Registro de usuario |
POST |
/sub/cancel/:user |
Cancela suscripción |
PUT |
/sub/payment/:id |
Modifica método de pago |
Desarrollado por Macloud Team (Gabriel Marchante).