Skip to content
@Alura-FlightOnTime

Alura - FlightOnTime

✈️ FlightOnTime

Sistema Predictivo de Retrasos en Vuelos

Java Spring Boot React Python FastAPI Docker

Hackathon Alura LATAM - Equipo H12-25-L-Equipo 15

🌐 Demo en Vivo · 📚 Documentación API · 🤖 DS API


🎯 El Problema

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.

💡 Nuestra Solución

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.

¿A quién beneficia?

Stakeholder Beneficio
✈️ Aerolíneas Ajustar operaciones y minimizar costos en cadena
🏢 Aeropuertos Planificar mejor el uso de infraestructura
👥 Pasajeros Recibir alertas tempranas para planificar su viaje

🏗️ Arquitectura del Sistema

                         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    │
    └──────────────┘ └──────────────┘ └──────────────┘

📦 Repositorios

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

🧠 Motor de Inteligencia Artificial

Estrategia de Ensemble Learning

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)  │
              └─────────────────┘

¿Por qué Ensemble?

  • 🎯 Reducción del Sesgo: Los errores individuales se cancelan entre sí
  • 📊 Estabilidad: Probabilidades menos sensibles a variaciones
  • 🛡️ Robustez: Decisiones basadas en consenso

Datos de Entrenamiento


🖥️ Funcionalidades

Dashboard Analítico

  • Visualización de estadísticas en tiempo real
  • Gráficos de distribución de predicciones
  • Métricas de rendimiento del sistema

Predicción Individual

  • Formulario intuitivo para ingresar datos del vuelo
  • Resultado con probabilidad de retraso
  • Explicación del factor principal (SHAP)

Procesamiento por Lotes

  • Carga de archivos CSV con múltiples vuelos
  • Predicción masiva simultánea
  • Exportación de resultados

Historial de Predicciones

  • Registro de todas las consultas realizadas
  • Filtros y búsqueda avanzada
  • Exportación de datos históricos

🚀 Quick Start

Prerrequisitos

  • Docker Desktop instalado
  • Git

Despliegue Local

# 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

📡 API Endpoints

Backend (Spring Boot)

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

DS API (FastAPI)

Método Endpoint Descripción
POST /predict Predicción individual
POST /predict-batch Predicción por lotes (CSV)
GET / Health check

Ejemplo de Request

POST /api/predictions
{
  "carrierCode": "AA",
  "origin": "JFK",
  "destination": "LAX",
  "departureDate": "2026-03-15T14:30:00",
  "flightNumber": 1234
}

Ejemplo de Response

{
  "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"
}

🛠️ Stack Tecnológico

Frontend

React TypeScript Vite TailwindCSS shadcn/ui

Backend

Java Spring Boot PostgreSQL Maven

Data Science

Python FastAPI XGBoost SHAP Scikit--learn

DevOps

Docker Nginx Let's Encrypt OCI


👥 Equipo

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

📄 Licencia

Este proyecto fue desarrollado como parte del Hackathon Alura LATAM 2025.


Hecho con ❤️ por el Equipo H12-25-L-Equipo 15

GitHub Organization

Popular repositories Loading

  1. flight-on-time-ds flight-on-time-ds Public

    Jupyter Notebook

  2. flight-on-time-backend flight-on-time-backend Public

    Java

  3. flight-on-time-frontend flight-on-time-frontend Public

    TypeScript

  4. flight-on-time-devops flight-on-time-devops Public

  5. .github .github Public

Repositories

Showing 5 of 5 repositories

Top languages

Loading…

Most used topics

Loading…