Skip to content

Bruno-BandeiraH/PontUau

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛫 PontUau - Previsão Inteligente de Atraso de Voos

PontUau é um sistema de previsão de atrasos de voos baseado em Machine Learning, desenvolvido pela equipe Araras Selvagens durante o Hackathon promovido pela Alura em parceria com a No Country.

O projeto utiliza modelos de classificação binária treinados com dados históricos reais de voos nacionais para determinar se um voo será Pontual ou Atrasado, fornecendo a probabilidade estimada da previsão e contando com recursos de análise de banco de dados.

Objetivos Principais

  • Prever atrasos de voos com antecedência
  • Identificar padrões de pontualidade por companhia aérea
  • Analisar estatísticas históricas de rotas específicas
  • Fornecer insights para melhoria operacional

Endpoints

endpoints

Funcionalidades

  • Prever - Indicar se um voo chegará no horário ou atrasado.
  • Estatísticas - Mostrar quantas previsões foram feitas e quantas resultaram em atrasos ou voos pontuais.
  • Companhias Aéreas - Mostrar a companhia aérea com o maior número de previsões de voos pontuais ou atrasados, por ano ou desde o início.
  • Rotas - Exibir a rota com o maior número de previsões de atrasos ou voos pontuais.

Requisitos para rodar

  • Docker 29.1.2 or +.

Requisitos para desenvolver

  • Java 21 or +;
  • Python 3.12.10 or +;
  • Maven;

Como Usar:

  • Abra o terminal na raiz do projeto
  • Digite o comando: docker-compose up --build e o sistema vai estar no ar (Portas - Spring:8081, MySQL:3307, fastAPI:5000)
  • Abra seu navegador e digite http://localhost:8080/swagger-ui.html para testar os endpoints

Exemplo de requisição POST no endpoint /predict

A variável previsao_atraso retorna 0 (pontual) ou 1 (atrasado).

Requisição:

{
  "icao_empresa": "AZU",  
  "icao_aerodromo_origem": "SBRF", 
  "icao_aerodromo_destino": "SBRJ", 
  "partida_prevista": "2025-11-12T22:30:00",  
  "tempo_voo_estimado_hr": 1.2,  
  "distancia_km": 50.0  
}

Resposta:

{
    "previsao_atraso": 0, 
    "probabilidade_atraso": 0.29
}

Estrutura do projeto

PontUau/
├── flight-prediction-api/  # API Principal
├── flight-prediction-model/  # fastAPI com o modelo implementado
├── README.md
└── docker-compose.yml

flight-prediction-api

flight-prediction-api/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   ├── com/
│   │   │       ├── flightontime/
│   │   │           ├── api/
│   │   │               ├── config/
│   │   │               │   ├── CorsConfig.java
│   │   │               │   └── WebClientConfig.java
│   │   │               ├── controller/
│   │   │               │   ├── FlightController.java
│   │   │               │   └── PredictionController.java
│   │   │               ├── domain/
│   │   │               │   ├── Flight.java
│   │   │               │   └── FlightRepository.java
│   │   │               ├── dto/
│   │   │               │   ├── AirlineDelayedData.java
│   │   │               │   ├── AirlineOnTimeData.java
│   │   │               │   ├── FlightDTO.java
│   │   │               │   ├── PredictionRequestDTO.java
│   │   │               │   ├── PredictionResponseDTO.java
│   │   │               │   ├── RouteDelayedData.java
│   │   │               │   ├── RouteOnTimeData.java
│   │   │               │   ├── StatisticsByYearData.java
│   │   │               │   └── StatisticsData.java
│   │   │               ├── infra/
│   │   │               │   ├── exception/
│   │   │               │   │   ├── ResourceNotFoundException.java
│   │   │               │   │   └── RestExceptionHandler.java
│   │   │               │   ├── validations/
│   │   │               │   │   ├── time/
│   │   │               │   │   │   └── ExpectedTime.java
│   │   │               │   │   └── RepositoryValidator.java
│   │   │               │   └── ValidatorException.java
│   │   │               ├── service/
│   │   │               │   ├── FlightService.java
│   │   │               │   └── PredictionService.java
│   │   │               └── FlightPredictionApiApplication.java
│   │   ├── resources/
│   │       ├── static/
│   │       │   ├── img/
│   │       │       └── endpoint.png
│   │       ├── templates/
│   │       └── application.properties
│   ├── test/
│       ├── java/
│           ├── com/
│               ├── flightontime/
│                   ├── api/
│                       ├── controller/
│                       │   └── PredictionControllerTest.java
│                       ├── domain/
│                       │   └── FlightTest.java
│                       ├── infra/
│                       │   ├── validations/
│                       │       ├── time/
│                       │           └── ExpectedTimeTest.java
│                       ├── service/
│                       │   └── PredictionServiceTest.java
│                       └── FlightPredictionApiApplicationTests.java
├── Dockerfile
├── README.md
├── mvnw
├── mvnw.cmd
└── pom.xml

flight-prediction-model

flight-prediction-model/
├── app/
│   ├── api/
│   │   ├── __init__.py
│   │   └── routes.py
│   ├── config/
│   │   ├── __init__.py
│   │   └── settings.py
│   ├── models/
│   │   ├── __init__.py
│   │   └── schemas.py
│   ├── services/
│   │   ├── __init__.py
│   │   ├── feature_engineering.py
│   │   └── prediction_service.py
│   ├── __init__.py
│   └── main.py
├── model/
│   └── modelo_previsao_atraso_voos_v2.pkl
├── Dockerfile
├── README.md
└── requirements.txt

Araras Selvagens

Backend

Foto de Bruno Bandeira
Bruno Bandeira
Foto de Rafael Vieira
Rafael Vieira
Foto de Richard Freitas
Richard Freitas

Data Science

Foto de Gabriel Schineider
Gabriel Schineider
Foto de Gleice Araújo
Gleice Araújo
Foto de Richard Freitas
Wellington Silva
Foto de Cristiano Silveira
Cristiano Silveira

Repositórios anteriores:

Tecnologias

Backend

  • Frameworks: Spring Boot, fastAPI
  • Lingaigens: Java, Python
  • Banco de dados: MySQL
  • Documentação: SpringDoc
  • Testes: JUnit 5, Mockito
  • Versionamento: Git, GitHub
  • Build: Maven

Data Science

  • Python
  • Pandas
  • scikit-learn
  • Jupyter Notebook
  • Modelagem supervisionada

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors