Desarrolla una API REST para gestionar productos de un catálogo. Debe permitir a los usuarios realizar las siguientes acciones:
- Crear un nuevo producto con nombre, descripción, precio y categoría. Puedes agregar más datos si lo crees conveniente.
- Actualizar la información de un producto.
- Eliminar un producto.
- Obtener la lista de todos los productos. Implementa algún filtro.
- Implementa autenticación JWT para asegurarte de que solo los usuarios registrados puedan realizar acciones en el catálogo de productos.
- Implementa paginación y ordenamiento en la lista de productos.
- Utiliza PostgreSQL como base de datos para almacenar los productos. Se prefiere Sequelize como ORM, pero se aceptan otros.
- Documenta la API, preferentemente con Swagger.
- Opcional: Utiliza TypeScript para desarrollar la API.
• Estructura del proyecto y código. • Uso de Express.js. • Implementación de autenticación JWT. • Uso de PostgreSQL como base de datos. • Paginación y ordenamiento en la lista de productos. • Buenas prácticas de código. • Comentarios en el código (explicaciones breves pero claras). • Posibilidad de ejecutar la aplicación en Docker (opcional). • Opcional: Uso de TypeScript. • Pruebas unitarias (opcional).
- Postgres
- NodeJS
- Clonar el repo
- Instalar dependencias (ejecutar
npm i
). - Ingresar a postgres:
psql -U usuario --password
- Crear base de datos en la instancia:
CREATE DATABASE midasdb
- .env-sample tiene que ser movido a .env
- Para iniciar el servicio ejecutar el siguiente comando en la consola:
npm run start
- En un sistema robusto pondríamos un usuario administrador por defecto, en este caso por cuestiones de tiempo, no fue tenido en cuenta.