TPI Logística — Resumen del Proyecto
Este repositorio contiene la implementación del Trabajo Práctico Integrador (TPI) de la materia, consistente en una arquitectura de microservicios para un sistema de logística. El proyecto incluye servicios para clientes, seguimiento, transporte, una API de geolocalización, un gateway, y la integración con Keycloak para gestión de identidad y autorización.
Estructura
- docker-compose.yml: Orquestación de contenedores para despliegue local.
- db/init.sql: Script de inicialización de la base de datos.
- keycloak/realm.json: Realm de Keycloak con configuración de clientes y roles.
geoapi/,logistica_clientes/,logistica_seguimiento/,logistica_transporte/,tpi_gateway/: Módulos (cada uno conpom.xml, código fuente Java yapplication.properties).- postman/: Colección / scripts para probar APIs.
Qué se implementó
- Microservicios: Servicios independientes para clientes, seguimiento y transporte, cada uno con sus controladores, servicios y persistencia básica.
- API de geolocalización: Servicio
geoapipara resolver direcciones/posicionamiento. - Gateway:
tpi_gatewayque actúa como punto de entrada unificado a los microservicios. - Autenticación y autorización: Integración con Keycloak (realm en
keycloak/realm.json) para proteger endpoints y gestionar roles/usuarios. - Dockerización: Dockerfiles por servicio y archivos de compose para levantar todo el sistema de forma reproducible.
- Base de datos: Script de inicialización en
db/init.sqlpara crear tablas y datos de prueba. - Colección Postman: Peticiones para probar endpoints y flujos principales.
Cómo ejecutar (despliegue local)
Usando Docker Compose (recomendado):
docker-compose up --buildLevantar servicios individualmente (por módulo Java):
cd geoapi
./mvnw spring-boot:run
cd ../logistica_clientes
./mvnw spring-boot:runRevisar db/init.sql para la configuración de la base de datos y cargarlo antes de ejecutar los servicios si no usa contenedores.
Puertos y endpoints importantes
- Gateway y servicios exponen los endpoints REST definidos en cada módulo (
src/main/java). - Consultar la colección en
postman/para ejemplos de requests y rutas.
Cumplimiento del enunciado
- Requisitos funcionales: Se implementaron los servicios principales (clientes, seguimiento, transporte) y los endpoints necesarios para crear, consultar y actualizar recursos relevantes.
- Seguridad: Todos los servicios pueden integrarse con Keycloak; el realm está incluido y permite probar autenticación y roles.
- Despliegue: El proyecto es desplegable mediante Docker Compose y también ejecutable por módulo con Maven, cubriendo entornos de desarrollo y prueba.
- Persistencia: Incluye script de inicialización de la base de datos (
db/init.sql) para reproducir datos de prueba. - Pruebas manuales: Se proporcionó una colección de Postman para verificar las rutas y flujos principales.