https://github.com/skyzerozx/api-hackaton-nestjs
API Hackaton for GentlemanProgramming
https://github.com/skyzerozx/api-hackaton-nestjs
gentleman-programming nestjs typescript web-authentication
Last synced: about 1 month ago
JSON representation
API Hackaton for GentlemanProgramming
- Host: GitHub
- URL: https://github.com/skyzerozx/api-hackaton-nestjs
- Owner: SkyZeroZx
- License: mit
- Created: 2022-10-30T21:37:17.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-30T21:37:20.000Z (over 3 years ago)
- Last Synced: 2025-10-07T08:57:36.485Z (9 months ago)
- Topics: gentleman-programming, nestjs, typescript, web-authentication
- Language: TypeScript
- Homepage: https://api-hackaton.skyzerozx.com
- Size: 516 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Es el API REST para la WebAPP/PWA Hackaton For Gentleman Programming integrado con Web Authentication para el inicio de sesion passworless.
FrontEnd Hackaton
## :ledger: Index
- [Pre-Requisitos](#pre-requisitos-)
- [Instalación](#instalación-)
- [Desarrollo](#desarrollo-%EF%B8%8F)
- [Build](#build)
- [Despligue](#despliegue-)
- [Logger](#logger)
- [Documentación](#documentacion)
- [Construido](#construido-con-)
## 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
```


_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_

## 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](https://nestjs.com/) - El framework para construir aplicaciones del lado del servidor eficientes, confiables y escalables.
- [NPM](https://www.npmjs.com/) - Manejador de dependencias
- [Docker](https://www.docker.com/) - Para el despliegue de aplicaciones basado en contenedores
- [Visual Studio Code](https://code.visualstudio.com/) - Editor de Codigo
- [Prettier](https://prettier.io/) - Formateador de Codigo
- [WebAuthn](https://webauthn.guide/) - Estándar web del proyecto FIDO2 de la Alianza FIDO
- [TabNine](https://www.tabnine.com/) - Autocompletador de Codigo
- [Swagger](https://swagger.io/) - Automatización de Documentación
- [Winston](https://github.com/winstonjs/winston) - Logger para NodeJS
## Versionado 📌
Usamos [GIT](https://git-scm.com/) para el versionado.