Bookease es un repositorio para la gestión de reservas en distintos tipos de negocios. Este proyecto utiliza NestJS y MongoDB como stack principal y se encuentra en desarrollo. Está destinado únicamente para fines de práctica y aprendizaje.
Para ejecutar este proyecto en su entorno local, debe tener instalado lo siguiente:
- Node.js (versión recomendada 14.x o superior)
- MongoDB
- npm o yarn (recomendado)
Siga estos pasos para configurar el entorno del proyecto:
- Crear un archivo
.env
- Renombra el archivo
.env.example
a.env
para solucionarlo. - Editar la configuración del
.env
según tus necesidades.
Dentro de la carpeta "recursos", ubicada en la raíz del proyecto, encontrarás tanto la estructura de carpetas del mismo como la colección Postman para su utilización o prueba.
src/ ├── application/ │ ├── auth/ # Módulo de autenticación, incluye CQRS, estrategias y controladores │ ├── booking/ # Módulo de reservas, incluye CQRS, servicios y controladores │ └── user/ # Módulo de usuarios, incluye CQRS, servicios y controladores ├── domain/ │ ├── booking/ # Entidad de reserva y su interfaz de repositorio │ ├── user/ # Entidad de usuario y su interfaz de repositorio │ └── login-attempt/ # Entidad de intento de inicio de sesión y su interfaz de repositorio ├── infrastructure/ │ └── mongo/ # Módulo de MongoDB, incluye esquemas y repositorios para cada entidad ├── app.module.ts # Módulo principal de la aplicación └── main.ts # Punto de entrada principal de la aplicación
La estructura de carpetas presentada sigue la arquitectura de NestJS, que es modular y utiliza el patrón CQRS. La aplicación se organiza en capas, incluyendo application
, domain
e infrastructure
. La capa de application
contiene la lógica de negocio y los controladores, la capa de domain
define las entidades y sus interfaces de repositorio, y la capa de infrastructure
maneja la persistencia y conexión con bases de datos, en este caso, MongoDB.
Esta organización en capas y la separación de responsabilidades facilitan la escalabilidad y el mantenimiento del proyecto.
Siga los siguientes pasos para instalar el proyecto en su entorno local:
- Clone el repositorio:
git clone https://github.com/antonio-112/bookease.git
- Cambie al directorio del proyecto:
cd bookease
- Instale las dependencias:
npm install
Una vez que haya completado estos pasos, tendrá una copia del proyecto en su entorno local con todas las dependencias necesarias instaladas. Asegúrese de configurar el archivo .env
según los requisitos previos y siga las instrucciones de ejecución y desarrollo para comenzar a trabajar con el proyecto.
Para ejecutar el proyecto en modo de desarrollo, ejecute el siguiente comando:
npm run start:dev
Para ejecutar el proyecto en modo Read-Eval-Print-Loop (REPL)
npm run start:repl
Para ejecutar el proyecto, ejecute el siguiente comando:
npm run start
o si está utilizando yarn:
yarn start
El servidor se iniciará en el puerto 3000 por defecto. Puede acceder a la API en http://localhost:3000
.
Adicionalmente, hay un archivo llamado bookease
que contiene una colección Postman en la carpeta resources
, la cual puede ser útil para probar los endpoints de la API.
Para iniciar Docker, utilice el siguiente comando:
npm run docker:start
o si está utilizando yarn:
yarn docker:start
Este proyecto utiliza Jest para realizar pruebas unitarias y de integración. Las pruebas se encuentran en la carpeta test
del proyecto.
Para ejecutar las pruebas, siga los siguientes pasos:
- Asegúrese de estar en el directorio principal del proyecto
- Para ejecutar las pruebas, utilice el siguiente comando:
npm run test
- Si desea ver el informe de cobertura de las pruebas, utilice el siguiente comando:
npm run test:cov
Al ejecutar las pruebas, Jest generará un informe detallado de los resultados de las pruebas, así como cualquier error o advertencia que pueda encontrar. El informe de cobertura le mostrará qué partes del código han sido probadas y cuáles no, lo que le permitirá mejorar la calidad y la confiabilidad del proyecto.
Asegúrese de mantener las pruebas actualizadas y de agregar nuevas pruebas cuando se introduzcan nuevas características o se realicen cambios significativos en el código.
Este proyecto es de código abierto y las contribuciones son bienvenidas. Si desea contribuir, siga estos pasos:
- Realice un "fork" del repositorio
- Clone su fork en su entorno local
- Cree una nueva rama con un nombre descriptivo relacionado con la característica o corrección que desea aportar
- Realice sus cambios y envíelos
- Abra una solicitud de extracción (pull request) desde su repositorio al repositorio original
Al contribuir al proyecto, asegúrese de seguir las buenas prácticas de desarrollo y las convenciones del código. También es importante mantener una comunicación abierta con el equipo del proyecto, especialmente al discutir nuevas características o cambios significativos en la estructura del código. Trabajar juntos y mantener una comunicación efectiva garantizará que las contribuciones sean valiosas y beneficiosas para el proyecto.
Este proyecto está licenciado bajo la Licencia MIT. Siéntase libre de usar, modificar y distribuir el código siguiendo los términos de la licencia.
/\_/\ / o o \ ( " )