Este es el proyecto integrador desarrollado clase a clase en la carrera de fullstack del bootcamp: Soy Henry. Consiste en programar el backend para un ecommerce utilizando el framework Nest, TypeScript, JWT, Jest, TypeORM, PostgreSQL, Docker.
Estudiante: Jeroham Sanchez
Al finalizar este hito deberás tener la estructura básica del proyecto individual de e-commerce y una idea teórica de las entidades de la base de datos así como sus relaciones.
- [ ✅ ] HW01 - DER
- [ ✅ ] Al finalizar este hito deberás tener un proyecto de node con la estructura básica del proyecto individual de e-commerce. Los endpoints principales del proyecto deberán ser capaces de recibir solicitudes desde el cliente y activar un middleware que nos permita identificar mediante un log en la terminal la ruta invocada.
- [ ✅ ] Al finalizar este hito, el alumno deberá implementar de manera satisfactoria un repositorio para cada entidad del proyecto.
- [ ✅ ] Los endpoints de la aplicación deben funcionar de manera correcta y devolver la información provista por cada repositorio.
- [ ✅ ] Al finalizar este hito el proyecto debe contar con una ruta para cada una de las acciones correspondientes al CRUD de cada entidad.
- [ ✅ ] La lógica de estas tareas deberá estar encapsulada en el repositorio correspondiente.
- [ ✅ ] Los endpoints deberán ser validados para asegurar la integridad de la información recibida en la solicitud.
- [ ✅ ] Las rutas deberán ser protegidas por una guarda.
- [ ✅ ] Al terminar el hito el alumno debe haber realizado la correcta configuración de la base de datos en el proyecto.
- [ ✅ ] Los servicios deben trabajar con los repositorios de cada entidad para gestionar la información en la base de datos.
- [ ✅ ] Las relaciones entre tablas deben funcionar correctamente al realizar el proceso de compra.
- [ ✅ ] Debe estar configurada la implementación de migraciones para monitorear futuros cambios en la base de datos.
- [ ✅ ] Al terminar el hito el alumno debe haber implementado correctamente la validación de solicitudes HTTP por medio de Pipes.
- [ ✅ ] Las validaciones deben ser implementadas en aquellos endpoints que utilicen información proveniente de la solicitud según corresponda.
- [ ✅ ] Al terminar este hito el alumno debe haber implementado la actualización de productos para utilizar la carga de imágenes al servicio de cloudinary.
- [ ✅ ] Las imágenes deben tener una validación de tamaño y tipo antes de ser cargadas en el servicio de Cloudinary
- [ ✅ ] Al finalizar el alumno tendrá que haber implementado un sistema de autenticación por medio de la encriptación de contraseñas y la validación por medio de la gestión de tokens de JWT
- [ ✅ ] El proyecto deberá contar con rutas protegidas particulares y rutas públicas accesibles sin la necesidad de un token.
- [ ✅ ] Al terminar este hito la aplicación deberá contar con rutas protegidas por medio del Control de acceso basado en roles.
Para tomar el extra credit de este hito el alumno deberá haber creado:
-
[ ] 5 pruebas unitarias de al menos 5 funcionalidades diferentes dentro de la aplicación.
-
[ ] Validar mediante pruebas de integración el funcionamiento de al menos 5 rutas de la aplicación.
- [ ✅ ] Al finalizar el hito el alumno deberá contar con una aplicación completamente montada en contenedores de docker que pueda ser levantada de forma integral mediante docker compose y preserve todas sus funcionalidades de manera local.
- [ ✅ ] Este es un hito extra credit. Consiste en implementar estrategia de CI/CD con workflow(Github Actions) de la aplicación dokerizada y despliege en la nube de la base de datos, junto con la respectiva comunicación entre estos dos componentes. El resultado debe ser una app totalmente funcional para acceder desde cualquier lugar.