EvacShipping es una plataforma Full Stack diseñada para la gestión de envíos desde USA a Panamá. Permite a los usuarios registrarse, rastrear sus paquetes y a los administradores gestionar la base de datos de clientes y mensajes de soporte.
Gestiona contactos y paquetes con filtros avanzados y actualizaciones de estado en tiempo real.

Interfaz intuitiva para que el cliente final visualice el progreso de sus envíos.

- Panel de Usuario: Visualización de paquetes asignados, detalles de peso y estados de envío.
- Panel de Administración: Gestión centralizada de mensajes de contacto con capacidad de marcar resoluciones.
- Seguridad Robustecida: Autenticación con encriptación de contraseñas mediante bcrypt y protección de rutas administrativas.
- Gestión de Paquetes (CRUD): Capacidad para que el administrador cree, edite y actualice información de envíos.
- Frontend: React, Tailwind CSS, Shadcn UI, Lucide React.
- Backend: Node.js, Express.
- Base de Datos: SQLite con Drizzle ORM para una gestión de datos relacional eficiente.
- Validación: Esquemas de Zod para asegurar la integridad de los datos de entrada.
Para proteger el acceso administrativo, el sistema implementa una verificación doble:
- [cite_start]Token de Acceso: Se requiere un
x-admin-tokenque debe coincidir con el secreto del servidor (1001-XFJHQBENERT-plos)[cite: 1]. - Rol de Usuario: El usuario debe existir en la base de datos y tener el campo
isAdminhabilitado.
Durante el desarrollo de este proyecto, fortalecí mis habilidades enfrentando retos reales de ingeniería de software:
- Gestión de Bases de Datos Relacionales: Diseñé esquemas para Usuarios, Paquetes y Contactos, manejando relaciones y persistencia de datos con Drizzle.
- Seguridad y Autenticación: Implementé flujos seguros de inicio de sesión y middlewares de protección de rutas para prevenir accesos no autorizados.
- Arquitectura de API REST: Construí una API escalable con endpoints para operaciones de lectura y escritura, manejando códigos de estado HTTP apropiados.
- Interfaz de Usuario Dinámica (UX/UI): Creé dashboards reactivos que proporcionan feedback inmediato al usuario mediante estados de carga y notificaciones.
- Resolución de Problemas (Debugging): Identifiqué y corregí errores críticos en el manejo de variables de entorno y en el parsing de fechas para asegurar la estabilidad del sistema.