Este es el Backend de la Full-Stack PENV App creada para la Iglesia Caminando por Fe. Este es el enlace del frontend: https://github.com/JonaRhood/ICPF.
El Backend ha sido desarrollado como una REST API utilizando PostgreSQL, Express y Node.js. El backend ha sido desplegado en Railway, mientras que la base de datos se aloja en Supabase, acelerando mi aprendizaje sobre la integración entre diferentes proveedores de servicios.
Este backend proporciona una API REST robusta, segura y escalable para la gestión eficiente de la Librería Baluarte de la Fe de ICPF. La arquitectura está diseñada para garantizar la integridad y seguridad de los datos mediante encriptación de contraseñas con bcrypt, autenticación basada en sesiones con express-session, y validaciones estrictas con express-validator. Además, se ha optimizado el almacenamiento y rendimiento utilizando PostgreSQL alojado en Supabase, asegurando una experiencia ágil y confiable.
-
🔐 Autenticación Segura
Implementación de Passport.js con estrategias locales para gestionar el inicio de sesión de usuarios de manera segura, reforzado con encriptación avanzada. -
🔑 Gestión de Sesiones
Uso de express-session con almacenamiento en Supabase, permitiendo persistencia de sesiones de usuario de forma eficiente y segura. -
🖼️ Carga y Procesamiento de Imágenes
Integración de Sharp y Busboy para la carga, conversión y compresión de imágenes en formato .webp, optimizando el uso del almacenamiento en Supabase y asegurando una alta calidad con menor tamaño de archivo. -
🛡️ Validaciones y Seguridad
Protección del servidor con helmet y CORS, garantizando un entorno seguro ante ataques como XSS, CSRF y inyección de código. Validaciones en los endpoints con express-validator para evitar datos inconsistentes. -
📚 Documentación de la API
Documentación interactiva con Swagger UI, facilitando la comprensión e integración de la API por parte de desarrolladores y clientes. -
📊 Monitoreo y Registro de Peticiones
Implementación de Morgan como middleware para registrar solicitudes HTTP, permitiendo un seguimiento detallado del tráfico y posibles errores en el servidor. -
💻 Software Cliente para Gestión Integral
Se ha desarrollado un software cliente diseñado específicamente para los encargados de la librería, permitiéndoles gestionar la librería de manera eficiente y en tiempo real. La aplicación permite registrar y modificar libros y autores, gestionar el proceso de venta de libros, y visualizar estadísticas detalladas sobre ventas y productos. Al estar completamente integrado con el backend, garantiza que toda la información se almacene y actualice en línea, facilitando la administración y asegurando la disponibilidad de datos en cualquier momento y desde cualquier dispositivo. -
📊 Modelo de Datos Estructurado: Se ha diseñado un Diagrama de Relaciones de Entidad (ERD) que define la estructura de la base de datos en PostgreSQL, asegurando integridad referencial, eficiencia en las consultas y escalabilidad. Este modelo permite gestionar relaciones clave como libros, autores, ventas y usuarios de manera optimizada.
👤 Contacto
Jonathan Cano - jonathancanofreta@gmail.com
