Skip to content

SkyZeroZx/API-Hackaton-NestJS

Repository files navigation

Nest Logo

Es el API REST para la WebAPP/PWA Hackaton For Gentleman Programming integrado con Web Authentication para el inicio de sesion passworless. FrontEnd Hackaton

📒 Index

Comenzando 🚀

Estas instrucciones te permitirán obtener una copia del proyecto en funcionamiento en tu máquina local para propósitos de desarrollo y pruebas.

Puede ver una demo en el enlace:

https://api-hackaton.skyzerozx.com

Pre-Requisitos 📋

Software requerido

NodeJS >= 14.X
NPM >= 8.X
NestJS >= 9.X
MySQL >=8.X

Software opcional

Visual Studio Code ( O el editor de su preferencia)

Instalación 🔧

Para ejecutar un entorno de desarrollo

Previamente ejecutar el comando en la terminal para descargar "node_modules" para el funcionamiento del proyecto

 npm install

Previamente a ejecutar el servidor en desarrollo configurar el archivo .env con las credenciales del servidor correos y base de datos , ejecutar :

 npm run start:dev

Dirigirse a la ruta http://localhost:3000/ donde tendra el API REST levantada

Desarrollo ⚙️

Las siguientes instrucciones serviran para ejecutar en su entorno local la pruebas unitarias realizadas para el proyecto

Build

Para generar el build de producción del proyecto ejecutar el siguiente comando:

 npm run build

Despliegue 👨🏻‍💻

Para desplegar el proyecto mediante Docker se tiene los archivos Dockerfile y docker-compose.prod.yaml, los cuales tienen preconfigurado la imagen y dependencias necesarias para levantar el proyecto

Para construir la imagen y ejecutarla tenemos el siguiente comando , el cual tambien tomara nuestras variable de entorno del archivo env

Ejecutar el siguiente comando en la raiz del proyecto

 docker-compose -f docker-compose.prod.yaml --env-file .env up --build

Docker 1

Docker 2

En caso de requerir volver a ejecutar el contenedor del proyecto previamente creado ejecutar el comando:

 docker-compose -f docker-compose.prod.yaml --env-file .env up

Documentacion

Se realizo la documentación del API Rest usando Swagger el cual puede encontrar en la ruta http://localhost:3000/docs/ en la configuración por default

Swagger 1

Logger

Se integro winston para reemplazar el logger de NestJS para realizar seguimiento y conservacion de los logs segun sea requerido

En el archivo .env se tienen los siguientes apartados configurados por default:

APP_NAME=API-HACKATON
DATE_PATTERN=YYYY-MM-DD
MAX_SIZE=20m
MAX_DAYS=14d

Por default la carpeta donde se guardan los logs es LOG , el formato configurado es JSON

Construido con 🛠️

Las herramientas utilizadas son:

  • NestJS - El framework para construir aplicaciones del lado del servidor eficientes, confiables y escalables.
  • NPM - Manejador de dependencias
  • Docker - Para el despliegue de aplicaciones basado en contenedores
  • Visual Studio Code - Editor de Codigo
  • Prettier - Formateador de Codigo
  • WebAuthn - Estándar web del proyecto FIDO2 de la Alianza FIDO
  • TabNine - Autocompletador de Codigo
  • Swagger - Automatización de Documentación
  • Winston - Logger para NodeJS

Versionado 📌

Usamos GIT para el versionado.