Este microservicio es el encargado de la gestión de notificaciones dentro de Melodia. Su responsabilidad abarca desde la orquestación de la lógica de envío, el manejo de notificaciones push a través de Firebase Cloud Messaging, hasta el almacenamiento del historial en una base de datos PostgreSQL.
El proyecto utiliza testings de integración para asegurar la calidad del servicio.
Para los módulos de negocio, utilizamos Cucumber. Esto nos permite definir pruebas de integración basadas en comportamiento (BDD) que verifican que los flujos de la aplicación y requisitos de negocio se cumplan.
- Herramienta: Cucumber
- Ubicación:
test/ - Comando:
npm run test:e2e:cov
Utilizamos Husky para gestionar nuestros Git Hooks. Esto asegura que antes de cada commit o push, el código cumpla con los estándares de calidad definidos (linting, formatting), evitando que código con errores llegue al repositorio.
Nuestro pipeline de CI automatizado se encarga de:
- Validar el código (Linting).
- Ejecutar la suite completa de tests.
- Generar el reporte de cobertura.
- Actualizar el badge de coverage en este README.
Para correr el proyecto en local, seguí estos pasos:
- Node.js (versión 20+ recomendada)
- Docker para levantar la base de datos PostgreSQL.
Instala las dependencias del proyecto:
npm installAsegurate de tener un archivo .env (se puede copiar el archivo .env.example y renombrarlo a .env) configurado en la raíz del proyecto con las variables necesarias (DB URL, Credenciales de Firebase, etc.).
Levantá la base de datos:
docker compose up -dInicia la aplicación:
# Modo desarrollo (con watch)
npm run start:dev
# Modo producción
npm run start:prodEl servicio estará disponible en http://localhost:3000 (o el puerto configurado).