Skip to content

Repository files navigation

🚚 LogiPulse AI

Plataforma SaaS de Gestión Logística, Telemetría e Inteligencia Artificial en Tiempo Real

NestJS Next.js TypeScript Jest PostgreSQL MongoDB RabbitMQ Docker Kubernetes Groq AI pnpm


🎯 1. Descripción del Proyecto

LogiPulse AI es una plataforma SaaS distribuida para la gestión logística de envíos y trazabilidad de flotas en tiempo real. Combina una arquitectura de microservicios orientada a eventos (EDA), persistencia políglota (PostgreSQL + MongoDB), despliegue en contenedores (Docker y Kubernetes) y asistencia inteligente de IA (Groq API + Tavily Search API) para el diagnóstico automático de incidentes de tráfico y clima.

Este proyecto ha sido diseñado bajo los estándares más exigentes de ingeniería de software, aplicando Arquitectura Hexagonal (Puertos y Adaptadores), principios SOLID, Clean Code y cobertura de pruebas unitarias automatizadas con Jest.


🏛️ 2. Arquitectura General del Sistema

                               ┌─────────────────────────────────────────┐
                               │           Next.js 14+ Frontend          │
                               │     (App Router, Leaflet, React)        │
                               └────────────────────┬────────────────────┘
                                                    │ REST / WebSockets / Auth Cookie
                                                    ▼
                               ┌─────────────────────────────────────────┐
                               │             API Gateway                 │
                               └───────┬────────────┬─────────────┬──────┘
                                       │            │             │
                                       ▼            │             ▼
                    ┌──────────────────────┐        │  ┌──────────────────────┐
                    │     auth-service     │        │  │   telemetry-service  │
                    │  (NestJS + JWT/Bcrypt│        │  │ (NestJS + Mongo + WS)│
                    │    + HttpOnly Cookie)│        │  └──────────┬───────────┘
                    └──────────────────────┘        │             │
                                                    ▼             │
                                       ┌──────────────────────┐   │
                                       │    orders-service    │   │
                                       │(NestJS + PostgreSQL) │   │
                                       └──────────┬───────────┘   │
                                                  │               │
                                                  ▼ RabbitMQ Events
                                       ┌──────────────────────────┐
                                       │   ai-analytics-service   │
                                       │(Groq Cloud API + Tavily) │
                                       └──────────────────────────┘

📁 3. Estructura del Monorepo (pnpm workspaces)

logipulse-ai/
├── .github/workflows/          # 🔄 Pipeline CI/CD GitHub Actions (ci.yml)
├── apps/
│   ├── auth-service/            # 🔐 Microservicio de Autenticación & Usuarios (NestJS + PostgreSQL + JWT + Cookie HttpOnly + Bcrypt + Jest)
│   ├── orders-service/          # 📦 Microservicio de Órdenes (PostgreSQL + REST + RabbitMQ + Dockerfile + Jest)
│   ├── telemetry-service/       # 📍 Microservicio de Telemetría GPS (MongoDB + WebSockets + Dockerfile + Jest)
│   ├── ai-analytics-service/    # 🤖 Microservicio de IA (Groq Cloud API + Tavily API + Dockerfile + Jest)
│   └── web/                     # 💻 Frontend Next.js 14+ (App Router, Standalone Dockerfile, Leaflet)
├── docs/                        # 📚 Documentación Técnica & Roadmap del Proyecto
│   ├── TYPESCRIPT_CONFIG.md     # Guía técnica de TypeScript y solución a advertencias del IDE
│   └── PROJECT_ROADMAP.md       # Roadmap de desarrollo y backlog de fases futuras
├── packages/
│   ├── shared-types/            # 📐 DTOs e Interfaces compartidas
│   └── config-eslint/           # ⚙️ Reglas de Clean Code
├── k8s/                         # ☸️ Manifiestos de Kubernetes (Deployments, Services, ConfigMaps, Secrets, Ingress)
├── docker-compose.yml           # 🐳 Infraestructura Local de Desarrollo (Postgres, Mongo, RabbitMQ)
├── docker-compose.prod.yml      # 📦 Orquestación Completa de Producción (Bases de datos + Microservicios)
├── pnpm-workspace.yaml          # 📦 Configuración de Monorepo pnpm
└── README.md

📚 4. Documentación Detallada de Microservicios

Para consultar diagramas UML, esquemas de bases de datos, especificación de endpoints y cobertura de pruebas de cada servicio:


🧪 5. Pruebas Unitarias, Cobertura y E2E (Testing Metrics)

El monorepo cuenta con una suite completa de pruebas unitarias automatizadas desarrolladas con Jest, React Testing Library, MSW y Playwright E2E:

Servicio / Aplicación Test Suites Tests Totales Cobertura / Estado
🔐 auth-service 5 / 5 14 / 14 🟢 100% Pass
📦 orders-service 11 / 11 38 / 38 🟢 100% Pass
📍 telemetry-service 9 / 9 22 / 22 🟢 100% Pass
🤖 ai-analytics-service 4 / 4 8 / 8 🟢 100% Pass
💻 web (Frontend) 4 / 4 9 / 9 🟢 100% Pass
TOTAL MONOREPO 33 / 33 91 / 91 🟢 100% PASS

🛠️ Comandos de Prueba:

# 1. Ejecutar pruebas unitarias de Autenticación
pnpm test:auth

# 2. Ejecutar pruebas unitarias de Órdenes
pnpm test:orders

# 3. Ejecutar pruebas unitarias de Telemetría
pnpm test:telemetry

# 4. Ejecutar pruebas unitarias de IA
pnpm test:ai

# 5. Ejecutar pruebas unitarias del Frontend Web (apps/web)
pnpm --filter @logipulse/web test

# 6. Ejecutar TODAS las pruebas del Monorepo
pnpm test:all

# 7. Generar reporte completo de cobertura de código
pnpm test:cov

⚡ 6. Guía de Inicio Rápido (Quick Start)

📋 Requisitos Previos

  • Node.js v20+
  • pnpm v8+
  • Docker Desktop & Docker Compose

1. Clonar el repositorio e instalar dependencias:

git clone https://github.com/tu-usuario/logipulse-ai.git
cd logipulse-ai
pnpm install

2. Iniciar en Modo Desarrollo (Bases de datos en Docker + Microservicios en Local):

# Paso 1: Iniciar PostgreSQL, MongoDB y RabbitMQ
docker-compose up -d

# Paso 2: Iniciar Microservicios en Terminales independientes
pnpm dev:auth         # Puerto 3004 (Autenticación & Usuarios)
pnpm dev:orders       # Puerto 3001 (Órdenes y Transacciones)
pnpm dev:telemetry    # Puerto 3002 (Telemetría GPS & WebSockets)
pnpm dev:ai           # Puerto 3003 (IA Analytics & Diagnóstico)
pnpm --filter @logipulse/web dev  # Puerto 3000 (Frontend Web)

3. Iniciar en Modo Producción (Pila Completa en Docker Compose):

docker-compose -f docker-compose.prod.yml up --build -d

4. Desplegar en Kubernetes (k8s):

kubectl apply -f k8s/

📄 Licencia

Este proyecto está licenciado bajo los términos de la licencia MIT.

About

Plataforma SaaS de Gestión Logística, Telemetría e Inteligencia Artificial en Tiempo Real

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages