Este es un proyecto evaluativo desarrollado en el módulo de BackEnd del curso de Desarrollo Web de Trybe. El proyecto involucró el uso de Typescript, Sequelize y JWT. A lo largo del desarrollo, se mejoraron varias habilidades:
- Manipulación de pruebas
- Uso de la arquitectura MSC (Modelo-Servicio-Controlador)
- Creación de rutas para crear, leer y actualizar información
- Autenticación de rutas
Este proyecto consistió en la creación de una tienda de artículos medievales utilizando Typescript y Sequelize. El enfoque principal fue en el desarrollo de las capas de Service y Controllers.
- Node.js
- Express
- Typescript
- Sequelize
- MySQL
- JWT (JSON Web Token)
- Docker y Docker Compose
El proyecto está estructurado de acuerdo con la arquitectura MSC, donde las responsabilidades están separadas entre Modelo, Servicio y Controlador. A continuación se presentan algunas de las principales rutas implementadas:
- POST /login: Realiza el inicio de sesión del usuario.
- POST /products: Agrega un nuevo producto (valida nombre y precio).
- GET /products: Devuelve todos los productos registrados.
- GET /orders: Devuelve todos los pedidos registrados.
- POST /orders: Crea un nuevo pedido (valida JWT, ID del usuario y ID del producto).
El proyecto utiliza varios middlewares para la validación, incluyendo:
validateProducts
: Valida los datos del producto (nombre y precio).validateUser
: Valida los datos del usuario.validateProductById
: Valida la existencia del producto por ID.validateJWT
: Valida el token JWT para la autenticación.
Para ejecutar el proyecto, sigue los pasos a continuación:
- Tener Docker y Docker Compose instalados.
- Tener Node.js instalado (opcional, si deseas ejecutar localmente sin Docker).
-
Clona el repositorio:
git clone https://github.com/seu_usuario/trybe-smith.git cd trybe-smith
-
Crea un archivo
.env
en la raíz del proyecto con las siguientes variables de entorno:DB_USER=root DB_PASSWORD=password DB_HOST=db DB_PORT=3306 DB_NAME=Trybesmith JWT_SECRET=secret
-
Ejecuta Docker Compose para construir e iniciar los contenedores:
docker-compose up --build
-
Accede a la API en tu navegador o herramienta de API (como Postman) en
http://localhost:3001
.