TP Integrador JSAndres Sanchez
API RESTful completa con sistema de autenticacion robusto, persistencia en PostgreSQL mediante Sequelize y gestion de archivos multimedia.
JWT + Bcrypt
Autenticacion segura
PostgreSQL
Persistencia con Sequelize
Node.js + Express
Backend robusto
Estructura del Proyecto
Arquitectura basada en el patron MVC para una organizacion clara y mantenible del codigo.
├── config/
Conexion a PostgreSQL (Sequelize)
├── controllers/
Logica: authController.js y userController.js
├── middlewares/
Auth (JWT), Upload (Multer) y ErrorHandler
├── models/
Modelo User (Hooks de Bcrypt y Scopes)
├── public/
Assets y /uploads para imagenes
├── routes/
Endpoints de la API (index.js)
├── .env
Variables sensibles (No incluido en el repo)
├── .env.example
Plantilla para configuracion de entorno
├── app.js
Servidor y configuracion principal
├── README.md
Documentacion tecnica
Tecnologias y Seguridad
Stack moderno y seguro para el desarrollo de APIs profesionales.
Framework robusto para construir APIs RESTful escalables y de alto rendimiento.
JSON Web Tokens para sesiones seguras y Bcryptjs para hasheo de contrasenas.
ORM potente con soporte para migraciones, hooks y validaciones integradas.
Middleware para procesamiento de imagenes con filtros de tipo y tamano.
Documentacion testeada integramente con colecciones organizadas.
Instalacion y Configuracion
Sigue estos pasos para configurar el proyecto en tu entorno local.
Clonar el repositorio
git clone https://github.com/andfel1996-commits/proyecto-backend.git
cd proyecto-backend
npm installVariables de Entorno
Crea un archivo .env con:
PORT=3000
DB_NAME=tu_db
DB_USER=postgres
DB_PASS=tu_password
DB_HOST=127.0.0.1
DB_PORT=5432
JWT_SECRET=tu_clave_secreta_jwtIniciar servidor
npm run devGuia de Uso de la API
Documentacion de endpoints para consumir la API con Postman o cualquier cliente HTTP.
/registerCrea un usuario. La contrasena se encripta automaticamente.
/loginDevuelve un Token JWT necesario para rutas protegidas.
/uploadCarga una imagen usando form-data (campo avatar).
/users/update/:idModificacion de datos persistidos.
/users/delete/:idBorrado fisico con validacion previa de existencia.
Funcionalidades Modulo 8
Caracteristicas implementadas en esta version final del proyecto.
Proteccion de Rutas
Middleware de autenticacion que valida el token antes de acceder a procesos criticos.
Encriptacion de Datos
Uso de hooks en Sequelize para asegurar que las contrasenas nunca se guarden en texto plano.
Gestion de Archivos
Configuracion de Multer con filtros de tipo de archivo (solo imagenes) y limites de tamano.
API de Consumo Externo
Respuestas en formato JSON con codigos de estado HTTP estandarizados (200, 201, 401, 404).
Reflexiones Tecnicas
Aprendizajes clave del desarrollo de este proyecto integral.
La implementacion de JWT y Bcrypt transformo el proyecto en una herramienta real y segura, protegiendo la integridad del usuario.
Al separar la logica de autenticacion en controladores y middlewares especificos, el codigo quedo preparado para crecer sin desorden.
Este proyecto demuestra la capacidad de iterar sobre una base de codigo, migrando de archivos JSON a una base de datos relacional y finalmente a una API protegida.