Este proyecto tuvo como objetivo la implementación de todo un sistema Backend para el Frontend realizado en Teslo Shop Frontend. Se realizó un sistema RestFull API creando diferentes endpoints para realizar las operaciones de un CRUD con rutas protegidas mediante sessiones generadas usando JWT. La arquitectura utilizada fue de un modelo de 3 capas (MVC) para asegurar así que sea escalable y mantenible. La información se alamacena en una base de datos NOSQL como MongoDB para lo cual creó una imagen de docker para que su despliegue sea portable y sencillo de implementar en diferentes entornos usando contenedores.
- Node Js
- Express Js
- JWT
- NOSQL: MongoDB
- Cloudinary
- Docker
En primer lugar, realiza el despligue de la base de datos a traves de la creación de una imagen de docker y su posterior implementación en un contenedor. Ejecuta el siguiente comando para esto:
docker-compose up -d
Luego de esto levanta la imagen en un contenedor. Puede utilizar Docker Desktop para esto. Asegurate de que puedas conectarte correctamente a la base de datos usando herramientas como MongoDB Compas.
En segundo lugar, renombra el archivo .env.template a .env y rellena las variables de entorno con los datos necesarios. Dentro de estás variables se encuentras keys y tokens que será utilizados para validar las transacciones realizadas con Paypal desde el Frontend, así como la conexión con la API de Cloudinary para la carga de imagenes.
En tercer luegar, luego de haber desplegado el backend realizar la instalación de todos los paquetes y dependencias del proyecto usando:
yarn
or
npm install
or
pnpm install
En cuarto lugar, cuando las todas dependencias se hayan instalado y la base datos esté levantada correctamente. Levanta el servidor de desarrollo usando:
yarn dev
or
npm run dev
or
pnpm run dev
El proyecto será desplegado en la siguiente URL:
http://localhost:<TU_PUERTO_CONFIGURADO>
Cuando todo ya esté levantado y funcionando correctamente haz una llamada de tipo POST al siguiente endpoint para llenar la base datos con un seed de datos:
http://localhost:<TU_PUERTO_CONFIGURADO>/api/seed
Puede utilizar herramientas como POSTMAN para este tipo de cosas.
Luego de realizar esto tendrá acceso a 2 cuentas de pruabas de usuarios creadas de manera automática:
- Admin: admin@admin.com
- Cliente: cliente@gmail.com
- Password de ambas: 123456
Si requiere una cuenta propia puede registrarse o ingresar un provider para logearse.
/api/seed
/api/products
/api/search
/api/users
/api/orders
/api/admin