Skip to content

Repository files navigation

TMS Enterprise

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.

Tech Stack

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

Features

  • 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

Prerequisites

  • Node.js 18+ (recomendado 20+)
  • MySQL 8.0+ o MariaDB 10.5+
  • npm 9+

Installation

# Clonar (o descargar) el proyecto
cd TMS_Enterprise

# Instalar dependencias del backend
cd backend
npm install

# Instalar dependencias del frontend
cd ../frontend
npm install

Configuration

Copiar .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-refresh

Database Setup

cd 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.js

Credenciales por defecto: admin@tms.com / admin123

Running the App

Development

# Terminal 1 - Backend (http://localhost:3000)
cd backend
npm run dev

# Terminal 2 - Frontend (http://localhost:5173)
cd frontend
npm run dev

Production

# Backend
cd backend
npm start

# Frontend build
cd frontend
npm run build
# Servir dist/ con Nginx o similar

Docker

docker compose up -d

API Documentation

Una vez corriendo el backend, acceder a:

Project Structure

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

Testing

cd backend
npm test

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages