Hackathon Alura LATAM - Equipo H12-25-L-Equipo 15
Los retrasos en vuelos comerciales generan:
- 💸 Pérdidas millonarias para aerolíneas
- 🏢 Caos logístico en aeropuertos
- 😤 Frustración en pasajeros
La incertidumbre es el mayor enemigo de la planificación operativa.
FlightOnTime es una plataforma predictiva que utiliza Machine Learning para estimar la probabilidad de retraso de un vuelo, permitiendo a los usuarios tomar decisiones informadas.
| Stakeholder | Beneficio |
|---|---|
| Ajustar operaciones y minimizar costos en cadena | |
| 🏢 Aeropuertos | Planificar mejor el uso de infraestructura |
| 👥 Pasajeros | Recibir alertas tempranas para planificar su viaje |
INTERNET
│
▼
┌───────────────────────────────────────────────────┐
│ Nginx Reverse Proxy (SSL/TLS) 🔒 │
│ │
│ flight-on-time.duckdns.org ──► Frontend:80 │
│ flight-api.duckdns.org ─────► Backend:8080 │
│ flight-ds.duckdns.org ──────► DS-API:5000 │
└───────────────────────────────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Frontend │ │ Backend │ │ DS API │
│ React 19 │ │ Spring Boot │ │ FastAPI │
│ TypeScript │ │ Java 21 │ │ Python │
│ Vite + SWC │ │ PostgreSQL │ │ XGBoost │
└──────────────┘ └──────────────┘ └──────────────┘
| Repositorio | Descripción | Stack |
|---|---|---|
| flight-on-time-frontend | Interfaz de usuario web | React 19, TypeScript, Vite, TailwindCSS, shadcn/ui |
| flight-on-time-backend | API REST de orquestación | Java 21, Spring Boot 3.4, PostgreSQL, Maven |
| flight-on-time-ds | Motor de IA y predicción | Python, FastAPI, XGBoost, SHAP, Scikit-learn |
| flight-on-time-devops | Infraestructura y despliegue | Docker, Nginx, Let's Encrypt, OCI |
Implementamos un sistema de Aprendizaje de Conjunto que combina múltiples modelos para predicciones más robustas:
┌─────────────────────────────────────────────────────┐
│ Datos de Entrada │
│ (aerolínea, origen, destino, fecha, distancia) │
└─────────────────────────────────────────────────────┘
│
┌─────────────┴─────────────┐
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Modelo V1 │ │ Modelo V2 │
│ (Pipeline) │ │ (XGBoost) │
│ prob: 0.65 │ │ prob: 0.72 │
└─────────────────┘ └─────────────────┘
│ │
└───────────┬───────────────┘
▼
┌─────────────────┐
│ PROMEDIO │
│ prob_final: │
│ 0.685 │
└─────────────────┘
│
▼
┌─────────────────┐
│ Predicción │
│ "Retrasado" │
│ + SHAP │
│ (explicación) │
└─────────────────┘
- 🎯 Reducción del Sesgo: Los errores individuales se cancelan entre sí
- 📊 Estabilidad: Probabilidades menos sensibles a variaciones
- 🛡️ Robustez: Decisiones basadas en consenso
- Fuente: Kaggle Flight Status Prediction (2018-2022)
- Registros procesados: +5.6 millones de vuelos
- Tasa base de retraso detectada: 18.9%
- Visualización de estadísticas en tiempo real
- Gráficos de distribución de predicciones
- Métricas de rendimiento del sistema
- Formulario intuitivo para ingresar datos del vuelo
- Resultado con probabilidad de retraso
- Explicación del factor principal (SHAP)
- Carga de archivos CSV con múltiples vuelos
- Predicción masiva simultánea
- Exportación de resultados
- Registro de todas las consultas realizadas
- Filtros y búsqueda avanzada
- Exportación de datos históricos
- Docker Desktop instalado
- Git
# 1. Clonar repositorios
git clone https://github.com/Alura-FlightOnTime/flight-on-time-backend.git
git clone https://github.com/Alura-FlightOnTime/flight-on-time-frontend.git
git clone https://github.com/Alura-FlightOnTime/flight-on-time-ds.git
git clone https://github.com/Alura-FlightOnTime/flight-on-time-devops.git
# 2. Levantar servicios
docker compose up -d --build
# 3. Acceder a la aplicación
# Frontend: http://localhost
# API Docs: http://localhost/api/swagger-ui.html| Método | Endpoint | Descripción |
|---|---|---|
POST |
/api/predictions |
Crear predicción de vuelo |
GET |
/api/predictions |
Listar predicciones |
GET |
/api/stats |
Obtener estadísticas |
GET |
/api/health |
Health check |
| Método | Endpoint | Descripción |
|---|---|---|
POST |
/predict |
Predicción individual |
POST |
/predict-batch |
Predicción por lotes (CSV) |
GET |
/ |
Health check |
POST /api/predictions
{
"carrierCode": "AA",
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-03-15T14:30:00",
"flightNumber": 1234
}{
"id": 1,
"aerolinea": "AA",
"origen": "JFK",
"destino": "LAX",
"fecha_partida": "2026-03-15T14:30:00",
"prevision": "A tiempo",
"probabilidad": 0.32,
"createdAt": "2026-01-25T10:00:00"
}| Data Science | Backend | Frontend | DevOps |
| Análisis de datos Feature Engineering Entrenamiento ML Explicabilidad SHAP |
API REST Integración DS Persistencia Validaciones |
UI/UX Componentes Visualización Integración API |
Containerización Reverse Proxy SSL/TLS CI/CD |
Este proyecto fue desarrollado como parte del Hackathon Alura LATAM 2025.