Este proyecto está desarrollado con NestJS y utiliza PostgreSQL como base de datos. La arquitectura del proyecto sigue la arquitectura Hexagonal y se han implementado algunos patrones de diseño como el Factory.
- Node.js & npm
- Docker
- Un archivo
.env
con las mismas propiedades que el archivo.env.example
.
El proyecto requiere las siguientes variables de entorno:
GOOGLE_PLACES_API_KEY
GOOGLE_GEOCODE_API_KEY
Estas API keys deben estar presentes en tu archivo .env
. El valor de los secrets mencionados se encuentran adjuntos en un archivo txt en el siguiente Drive Enlace.
La documentación de los endpoints está disponible en Swagger. Puedes acceder a ella en la ruta /docs
una vez que la aplicación esté en ejecución.
http://localhost:3000/docs
Para levantar la aplicación utilizando Docker, asegúrate de tener un archivo .env
en la raíz del proyecto con las configuraciones necesarias. Luego, ejecuta el siguiente comando:
docker compose up
Para ejecutar las pruebas unitarias, utiliza el siguiente comando:
npm run test
Para ejecutar las pruebas end-to-end (e2e), utiliza el siguiente comando:
npm run test:e2e
- APIs Utilizadas: Se ha utilizado la API de Google Place y Google Geocode para la búsqueda de lugares y geocodificación cuando se pasa solo el nombre de la ciudad.
- Encriptación del Token: Se ha utilizado encriptación RSA con llave pública y privada para los tokens.
- Arquitectura Hexagonal: El proyecto está estructurado siguiendo la arquitectura hexagonal para mejorar la separación de preocupaciones y la facilidad de mantenimiento.