Sistema de Gestión de Transporte (Transportation Management System) — una plataforma empresarial completa para la administración de flotas, operaciones de transporte, facturación y más.
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite 5, TailwindCSS 4, Redux Toolkit, Axios, React Router 6 |
| Backend | Node.js, Express 5, Sequelize 6 (ORM), JWT, Zod |
| Database | MySQL 8.0+ / MariaDB 11.5 |
| Auth | JWT (access + refresh tokens), RBAC (12 roles, 133 permisos) |
| PWA | vite-plugin-pwa, service worker, manifest |
| Docs | Swagger / OpenAPI 3.0 |
| Deploy | Docker Compose, PM2, Nginx |
- Seguridad: JWT con refresh tokens, 2FA/TOTP, cifrado, CSRF, rate limiting
- RBAC: 12 roles con 133 permisos granulares y 550 asignaciones predefinidas
- Módulos:
- Comercial: Clientes, Cotizaciones, Pedidos, Tarifas
- Operativo: Remesas, Manifiestos, Órdenes de Cargue, Control de Tráfico
- Recursos: Conductores, Vehículos, Semirremolques, Seguros
- Financiero: Anticipos, Liquidaciones, Facturación, Notas Contables
- Portal: Portal del Cliente, Portal del Conductor
- Configuración: Usuarios, Roles, Tablas de Referencia, Parámetros
- Arquitectura: Clean Architecture híbrida, API REST desacoplada
- Base de datos: 64+ tablas normalizadas, UUID como PK, soft delete, auditoría
- PWA: Instalable como aplicación, caché de API, offline support
- Node.js 18+ (recomendado 20+)
- MySQL 8.0+ o MariaDB 10.5+
- npm 9+
# Clonar (o descargar) el proyecto
cd TMS_Enterprise
# Instalar dependencias del backend
cd backend
npm install
# Instalar dependencias del frontend
cd ../frontend
npm installCopiar .env.example a .env en la carpeta backend/ y ajustar:
# Database
DB_HOST=localhost
DB_PORT=3306
DB_NAME=tms_enterprise
DB_USER=root
DB_PASSWORD=tu_password
# JWT
JWT_SECRET=tu-secreto-jwt
JWT_REFRESH_SECRET=tu-secreto-refreshcd backend
# Sincronizar tablas (crea todas las tablas con force:true)
npm run sync-db
# Cargar datos iniciales (módulos, acciones, roles, permisos, admin)
npm run seed
# Crear stored procedures
node scripts/create-proc-conductor.jsCredenciales por defecto:
admin@tms.com/admin123
# Terminal 1 - Backend (http://localhost:3000)
cd backend
npm run dev
# Terminal 2 - Frontend (http://localhost:5173)
cd frontend
npm run dev# Backend
cd backend
npm start
# Frontend build
cd frontend
npm run build
# Servir dist/ con Nginx o similardocker compose up -dUna vez corriendo el backend, acceder a:
- Swagger UI: http://localhost:3000/api-docs
- Health Check: http://localhost:3000/api/v1/health
TMS_Enterprise/
├── backend/
│ ├── src/
│ │ ├── application/ # Casos de uso / servicios
│ │ ├── config/ # Config general, DB, swagger
│ │ ├── infrastructure/ # Modelos Sequelize, seeds
│ │ ├── presentation/ # Rutas, controladores, validadores
│ │ └── shared/ # Logger, errores, middlewares
│ ├── database/ # SQL procedures, schemas
│ ├── scripts/ # Utilidades Node
│ └── tests/ # Tests Jest
├── frontend/
│ ├── src/
│ │ ├── api/ # Axios instance + módulos
│ │ ├── components/ # Componentes reutilizables
│ │ ├── hooks/ # Custom hooks
│ │ ├── pages/ # Páginas por módulo
│ │ ├── store/ # Redux store + slices
│ │ └── utils/ # Utilidades
│ └── public/ # Assets estáticos, icons
├── docker-compose.yml
├── .gitignore
└── README.md
cd backend
npm testMIT