Plataforma modular para gestión y búsqueda de rutas de autobuses en Catalunya. Arquitectura de microservicios reactivos con Spring Cloud, enfocada en escalabilidad y alta disponibilidad.
📐 Ver Arquitectura Completa del Sistema
- 🔍 Búsqueda Inteligente - Cálculo de rutas entre 947 municipios de Catalunya
- 👥 Gestión de Usuarios - CRUD completo con soft delete y roles (ADMIN, USER, DRIVER, COMPANY)
- 🔄 Arquitectura Reactiva - Spring WebFlux + R2DBC para operaciones no bloqueantes
- 🚪 API Gateway - Punto de entrada único con circuit breakers y CORS
- 📊 Service Discovery - Netflix Eureka para registro dinámico de servicios
- ⚡ Caché Inteligente - Caffeine con TTL configurables (rutas 1h, municipios 24h)
- 🐳 Containerizado - Docker Compose para desarrollo y producción
- 📝 Documentación Automática - Swagger UI en cada microservicio
| Servicio | Puerto | Descripción | Documentación |
|---|---|---|---|
| 🚪 API Gateway | 8080 | Enrutamiento, Circuit Breaker, CORS | README | ARCH |
| 🔍 Catalog Service | 8083 | 947 municipios, cálculo de rutas (OpenRouteService) | README | ARCH |
| 👤 User Service | 8082 | CRUD usuarios, soft delete, roles | README | ARCH |
| 📡 Eureka Service | 8761 | Service Discovery & Registry | README | ARCH |
| Capa | Tecnología |
|---|---|
| Backend | Java 21, Spring Boot 3.3.13, Spring Cloud 2023.0.3 |
| Reactive | Spring WebFlux, Spring Data R2DBC |
| Gateway | Spring Cloud Gateway, Resilience4j |
| Discovery | Netflix Eureka |
| Database | PostgreSQL 15+, Flyway |
| Cache | Caffeine |
| Docs | SpringDoc OpenAPI (Swagger) |
| DevOps | Docker, Docker Compose, GitHub Actions |
| External APIs | OpenRouteService |
Java 21, Maven 3.9+, Docker & Docker Composegit clone https://github.com/BusConnectTeam/busConnect-backend.git
cd busConnect-backend
cp .env.example .envEditar .env con tus credenciales:
DB_PASSWORD=your_secure_password
OPENROUTE_API_KEY=your_api_key_here # Obtener en https://openrouteservice.orgdocker-compose up -d# Eureka Dashboard
http://localhost:8761
# Swagger UI
http://localhost:8082/swagger-ui.html # User Service
http://localhost:8083/swagger-ui.html # Catalog Service
# Health Checks
curl http://localhost:8080/actuator/health # API Gateway
curl http://localhost:8082/actuator/health # User Service
curl http://localhost:8083/actuator/health # Catalog Service| Servicio | Puerto | Expuesto |
|---|---|---|
| API Gateway | 8080 | ✅ Public |
| User Service | 8082 | 🔒 Internal |
| Catalog Service | 8083 | 🔒 Internal |
| Eureka | 8761 | 🟡 Dashboard |
| PostgreSQL | 5432 |
- API Gateway con circuit breakers
- User Service (CRUD completo)
- Catalog Service (947 municipios + OpenRouteService)
- Eureka Service Discovery
- PostgreSQL con esquemas separados
- Caché Caffeine multinivel
- Dockerización completa
- Auth Service con JWT
- OAuth2 / OpenID Connect
- Rate limiting por usuario
- Booking Service (reservas)
- Payment Service (pagos)
- Notification Service (emails/SMS)
- Review Service (valoraciones)
- CI/CD con GitHub Actions
- Kubernetes
- Monitoring (Prometheus + Grafana)
- Centralized Logging (ELK)
Desarrollado con ❤️ por:
| Nombre | Rol | GitHub |
|---|---|---|
| Ainoha Barcia | Backend Developer | @AinohaBarcia |
| Gabriela Bustamante | Backend Developer & DevOps / AI Integration | @GabyB73 |
| Irina Ichim | Full Stack Developer & DevOps / AI Integration | @IrinaIchim |
Gracias a Ainoha, Gabriela e Irina por su dedicación, trabajo en equipo y excelentes contribuciones al desarrollo de BusConnect. Este proyecto no sería posible sin su esfuerzo y profesionalismo. 🎉
Última actualización: Enero 2026