Aplicación Web - Control de Cargas
VolverDesarrollé una aplicación web personalizada para la empresa Servicios Integrales Cacciuttolo con el objetivo de abordar eficazmente los desafíos asociados al movimiento de cargas entre sus diversos almacenes. La empresa experimentaba problemas significativos relacionados con gastos elevados y costos innecesarios debido a una gestión logística deficiente al momento de almacenar materiales y cargas.

En el desarrollo de mi segunda aplicación web para Servicios Integrales Cacciuttolo, capitalicé los conocimientos adquiridos durante la creación de proyectos anteriores y apliqué mi formación autodidacta para su implementación. Esta plataforma facilita el acceso a colaboradores que han sido previamente registrados por el administrador, permitiéndoles llevar a cabo registros y revisiones de manera eficiente.
Cada usuario cuenta con un rol específico que determina sus funciones dentro de la aplicación, adaptándose a las responsabilidades asignadas. Estos roles han sido cuidadosamente diseñados para optimizar la productividad y seguridad del sistema. Algunas de las funciones clave que abarcan estas responsabilidades incluyen:
- Registrar los materiales que cambiarán de ubicación o serán recibidos.
- Supervisar el registro preciso de los materiales.
- Examinar gráficos e informes.
- Administrador responsable del registro de usuarios y con acceso a la mayoría de las funciones de la aplicación.
El registro de usuarios puede llevarse a cabo de manera individual o mediante una importación masiva a través de un archivo CSV.

Para comprender el funcionamiento de la aplicación, los usuarios responsables de gestionar el movimiento de paquetes o materiales deben registrar el número de transporte del vehículo, el código, la cantidad de materiales y la cantidad de bultos en los que se dividen. También deben especificar el destino donde se almacenarán y la ubicación dentro del mismo. Además, deben adjuntar una imagen del o los materiales, la cual se almacena en el servicio Cloudinary. Otros usuarios con roles diferentes siguen procesos distintos, como el seguimiento del transporte y el almacenamiento.

Para la implementación de este proyecto, opté por utilizar Vue.js en conjunto con tecnologías de su ecosistema, como Vuex para mantener el estado de la aplicación y Vue Router para el enrutamiento de las vistas. Esto permitió la construcción de una Single Page Application (SPA) con JavaScript en el frontend. Además, integré diversas bibliotecas como SweetAlert2 para las notificaciones y Chart.js para los gráficos. La arquitectura del proyecto está dividida en módulos, cada uno de los cuales contiene layouts, vistas, componentes, composables y utilidades utilizados de manera específica. Cada elemento desempeña una función clara en el desarrollo del sistema.
En cuanto al backend, opté por el framework Express.js en conjunto con JavaScript. También hice uso de varias librerías para diversas funciones, como la encriptación de contraseñas para garantizar la seguridad de los datos, la generación de JSON Web Tokens (JWT) para la autenticación de usuarios, el envío automático de correos electrónicos a los responsables del seguimiento de materiales al momento de su registro, la lectura de archivos CSV, la conexión con la base de datos, entre otras.
Para el almacenamiento de datos, se utilizó una base de datos MariaDB ya existente en la empresa. Se estableció una conexión segura con el backend, permitiendo así la comunicación con el hosting donde está alojada la base de datos. El backend fue desplegado en una plataforma de servicios en la nube (PaaS, Plataforma como Servicio). La autenticación con la base de datos, las credenciales del correo electrónico y la información de autorización de Cloudinary se gestionan a través de Variables de Entorno.