Nest back para api de un E-COMMERCE, el cual se encarga de gestionar la información de los productos, categorías, usuarios, roles, permisos, entre otros. Ademas de hacer el proceso de autenticación y autorización de los usuarios.
Puede comprar, añadiendo productos al carrito de compras, y realizar el proceso de pago, además de obtener el recibo de la compra.
Asi mismo puede hacer compras
$ yarn install
Para poder conectarse a la base de datos, se debe crear un archivo .env en la raíz del proyecto con las siguientes variables de entorno:
NODE_ENV="development"
API_KEY="XXXXXXXXXXXXXXXXXXX"
JWT_SECRET="XXXXXX-789"
JWT_EXPIRATION_TIME="3600s"
JWT_REFRESH_SECRET="XXXXXX-123"
JWT_REFRESH_EXPIRATION_TIME="30m"
JWT_REFRESH_KEY="XXXXXX-456"
MONGODB_URI="mongodb://root:example@localhost:27017/dn-name"
MONGO_INITDB_ROOT_USERNAME="root"
MONGO_INITDB_ROOT_PASSWORD="example"
MONGO_DATABASE="dn-name"
MONGO_DATABASE_HOST="localhost"
MONGO_DATABASE_PORT="27017"
#SI QUIERE USAR PM2
PM2_PUBLIC_KEY="XXX"
PM2_SECRET_KEY="XXX"
Debe crear la carpeta ./mongo
en la raíz del proyecto para que se pueda montar el volumen de la base de datos.
mkdir mongo
Luego, se debe correr el siguiente comando:
yarn run db:up
Eliminar los contenedores creados:
yarn run db:delete
# development
$ yarn run start
# watch mode
$ yarn run start:dev
# production mode
$ yarn run start:prod
# unit tests
$ yarn run test
# e2e tests
$ yarn run test:e2e
# test coverage
$ yarn run test:cov
# unit tests
$ yarn run test
Para correr solo una prueba unitaria en particular, se debe correr el siguiente comando:
# unit tests
$ jest --watch src/nombre-del-archivo.spec.ts
Para correr las prueba E2E, se debe correr el siguiente comando:
yarn test:e2e
Devuelve el reporte de las pruebas E2E de solo el cubrimiento de los controladores, asi mismo en la carpeta coverage-e2e
se puede encontrar el reporte de las pruebas E2E, esta carpeta esta siendo ignorada por el archivo .gitignore
.
- ENVIRONMENT_NAME -> Nombre del entorno que se desea construir (test, dev, prod)
$ docker build --build-arg ENVIRONMENT_NAME=test -t mongo-app .
Correr docker, se deben pasar las variables de entorno del archivo .env dado que se ignoran en el archivo Dockerfile.
$ docker run -e PM2_PUBLIC_KEY=xxx -e PM2_SECRET_KEY=xxx -e MONGODB_URI=xxx -e MONGO_INITDB_ROOT_USERNAME=xxx -e MONGO_INITDB_ROOT_PASSWORD=xxx -e MONGO_DATABASE=xxx -e MONGO_DATABASE_HOST=xxx -e MONGO_DATABASE_PORT=xxx -e NODE_ENV=development -e API_KEY=xxx -e JWT_SECRET=xxx -e JWT_EXPIRATION_TIME=xxx -e JWT_REFRESH_SECRET=xxx -e JWT_REFRESH_EXPIRATION_TIME=xxx -e JWT_REFRESH_KEY=xxx -e RESEND_API_KEY=xxx -e EMAIL_SENDER=xxx -p 3000:3000 --name mongonest-app mongo-app
Para correr en segundo plano, se debe añadir el flag -d
al comando anterior.
Recuerde que si ya existe un contenedor con el mismo nombre, debe eliminarlo antes de correr el comando anterior, o sino puede campiar el nombre del contenedor a lanzar
Para correr la aplicación con PM2, se debe correr el siguiente comando:
$ pm2 start dist/main.js --name movie-app
O pasando el .yml
de configuración:
$ pm2-runtime process.yml
Ejecución de PM2 en modo de desarrollo:
Para el consumo de las apis debe enviar el x-api-key
en el header de la petición, además este debe ser incluido en las variables de entorno del archivo .env
.
Ejemplo:
API_KEY="rqzekuqwl9k69gp"
Para el consumo de las apis privadas debe enviar el Authorization
en el header de la petición, además este debe ser incluido en las variables de entorno del archivo .env
.
Ejemplo:
JWT_SECRET="secret-key-123"
JWT_EXPIRATION_TIME="20h"
Para el consumo de las apis privadas debe enviar el Authorization
en el header de la petición, además este debe ser incluido en las variables de entorno del archivo .env
.
Ejemplo:
JWT_REFRESH_SECRET="refresh-secret-key-123"
JWT_REFRESH_EXPIRATION_TIME="1h"
Se hace uso de Resend
para el envio de correos, se cuenta con una blacklist que es manejada con un archivo de constantes.
El correo se utiliza para la validación de nuevos usuarios, cambio de contraseña, envio de notificaciones /o errores, entre otros.
Ejemplo de recibo de compra en formato PDF:
Descargue el ejemplo de recibo de compra en formato PDF aquí.
Ejemplo de plan de pagos de una compra a 36 cuotas con interes del 10% EA en formato PDF:
Descargue el ejemplo del plan de pago a cuotas en el siguiente link aquí.
Nest is MIT licensed.