Este proyecto es un microservicio Node.js que se conecta a una base de datos MySQL. El proyecto incluye configuraciones para CI/CD, pruebas, linting y commit linting. A continuación se describen los pasos para configurar y ejecutar el proyecto localmente.
Clonar el repositorio:
git clone https://github.com/amurillog26/challenge-hiberus.git
cd challenge-hiberus
Instalar las dependencias:
npm install
Para levantar el entorno de desarrollo local utilizando Docker Compose, asegúrate de tener Docker y Docker Compose instalados.
Crear un archivo .env
en la raíz del proyecto con el siguiente contenido:
MYSQLDB_HOST=mysqldb
MYSQLDB_USER=myuser
MYSQLDB_PASSWORD=mypassword
MYSQLDB_DATABASE=mydatabase
NODE_ENV=development
Levantar los servicios con Docker Compose:
docker-compose up --build
Esto levantará un contenedor para la base de datos MySQL y otro para la aplicación Node.js.
El proyecto utiliza ESLint para mantener la calidad del código. La configuración de ESLint se encuentra en .eslintrc.js
.
Para ejecutar el linter:
npm run lint
El proyecto utiliza Jest para las pruebas unitarias. La configuración de Jest se encuentra en jest.config.js
.
Para ejecutar las pruebas:
npm test
Para asegurar que los mensajes de commit sigan un estándar específico, se utiliza Commitlint junto con Husky y Lint-staged.
Husky se encarga de ejecutar los hooks de Git. Los hooks configurados son:
pre-commit
: Ejecuta lint-staged
para verificar y corregir el código antes de hacer commit.commit-msg
: Ejecuta Commitlint para asegurar que los mensajes de commit sigan el estándar.Lint-staged se configura para ejecutar ESLint en los archivos modificados antes de hacer commit. La configuración se encuentra en el archivo package.json
.
Commitlint asegura que los mensajes de commit sigan el estándar convencional. La configuración se encuentra en commitlint.config.js
.
start
: Inicia la aplicación.test
: Ejecuta las pruebas con Jest.lint
: Ejecuta ESLint para verificar el código.prepare
: Configura Husky.project-root/
├── .husky/
│ ├── commit-msg
│ ├── pre-commit
│ └── _/husky.sh
├── helm/
│ ├── template/
| ├── template/
| ├── _helpers.tpls
| ├── deployment.yaml
| ├── ingress.yaml
| ├── service.yaml
| ├── chart.yaml
│ └── values.yaml
├── src/
│ ├── app.js
│ └── database.js
├── tests/
│ ├── app.test.js
│ └── db.mock.js
├── .eslintignore
├── .eslintrc.js
├── commitlint.config.js
├── docker-compose.yml
├── package.json
└── eslint.config.js
Las contribuciones son bienvenidas. Por favor, asegúrate de seguir las guías de estilo y las convenciones de commit antes de hacer un pull request.
Este proyecto está licenciado bajo la Licencia MIT.