Plataforma para transmitir audio en tiempo real desde un dispositivo a múltiples dispositivos conectados.
Requisitos: Node.js 20+.
npm install
npm run devCon eso el sistema queda escuchando en http://localhost:3000 (configurable con PORT, ver .env.example). Para comprobar que arrancó:
curl http://localhost:3000/healthnpm testArquitectura: monolito modular (ver docs/adr/0001-usar-monolito-modular.md y docs/Matriz_Comparativa.md).
src/
app.ts composition root: ensambla los módulos, sin lógica de negocio
server.ts punto de entrada del proceso
shared/ configuración transversal (único lugar que lee variables de entorno)
modules/
session/ salas y roles (emisor, receptor, moderador)
audio/ captura, empaquetado y transmisión del audio
sync/ coordinación de reproducción entre receptores
tests/
health.test.ts verifica que el esqueleto arranca y expone los tres módulos
docs/ arc42, ADR, C4, aspectos y registro de uso de IA
Cada módulo expone su API pública únicamente a través de su index.ts. Ningún módulo importa archivos internos de otro módulo; si dos módulos necesitan comunicarse, ese cableado se decide en src/app.ts o se documenta en un ADR si implica una decisión estructural.
Esqueleto ejecutable de la semana 4: aún sin lógica de negocio. La implementación de cada módulo se construye a partir de los aspectos declarados en docs/aspectos.md.
El corte vertical A-01 implementa un flujo básico de sincronización de reproducción entre un emisor y múltiples receptores.
- El emisor crea una sala.
- Se pueden agregar múltiples receptores.
- Los receptores se registran en la sala.
- El emisor puede iniciar la reproducción mediante
PLAY. - El módulo
Syncgenera unstartAtcomún. - El módulo
Audiogenera y distribuye paquetes de audio. - Se puede consultar el estado de la sala.
Instalar dependencias:
npm install