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.
- 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
- 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.
- Docker 29.1.2 or +.
- Java 21 or +;
- Python 3.12.10 or +;
- Maven;
- Abra o terminal na raiz do projeto
- Digite o comando:
docker-compose up --builde o sistema vai estar no ar (Portas - Spring:8081, MySQL:3307, fastAPI:5000) - Abra seu navegador e digite
http://localhost:8080/swagger-ui.htmlpara testar os endpoints
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
}PontUau/
├── flight-prediction-api/ # API Principal
├── flight-prediction-model/ # fastAPI com o modelo implementado
├── README.md
└── docker-compose.yml
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/
├── 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
![]() Bruno Bandeira |
![]() Rafael Vieira |
![]() Richard Freitas |
![]() Gabriel Schineider |
![]() Gleice Araújo |
![]() Wellington Silva |
![]() Cristiano Silveira |
- Frameworks: Spring Boot, fastAPI
- Lingaigens: Java, Python
- Banco de dados: MySQL
- Documentação: SpringDoc
- Testes: JUnit 5, Mockito
- Versionamento: Git, GitHub
- Build: Maven
- Python
- Pandas
- scikit-learn
- Jupyter Notebook
- Modelagem supervisionada







