Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

✈️ Projeto – Probabilidade de Atraso de Voos

📘 Visão Geral

Aplicação web full stack desenvolvida para fornecer aos usuários a probabilidade de atraso de voos, utilizando como base dados oficiais disponibilizados pela ANAC (Agência Nacional de Aviação Civil).

O projeto tem como objetivo principal demonstrar uma solução tecnológica integrada entre diferentes stacks, permitindo o cálculo preditivo a partir de parâmetros informados pelo usuário.

A aplicação é composta por três camadas:

  • API em Python utilizando FastAPI para processamento dos dados da ANAC
  • Backend em Java com Spring Boot responsável pelas regras de negócio
  • Frontend em React.js e Tailwind CSS para interface com o usuário

🧩 Arquitetura da Aplicação

Fluxo de Funcionamento

  1. O usuário acessa a interface web
  2. Preenche corretamente todos os campos do formulário
  3. O frontend envia uma requisição HTTP para o backend Java
  4. O Spring Boot realiza validações dos dados recebidos
  5. O backend encaminha a requisição para a API Python
  6. A API FastAPI processa os dados e calcula a probabilidade
  7. O backend retorna o resultado ao frontend com status 200 OK
  8. A probabilidade é exibida ao usuário na tela

🐍 API Python – FastAPI (Pasta: data)

Responsabilidades

A pasta data contém a API desenvolvida em Python com FastAPI. Esta camada é responsável por:

  • Leitura e manipulação dos dados históricos da ANAC
  • Processamento das informações recebidas
  • Aplicação de modelos estatísticos ou de machine learning
  • Cálculo da probabilidade de atraso
  • Retorno estruturado das informações em formato JSON
  • Validações internas e tratamento de exceções

Funcionalidades Principais

A API recebe parâmetros como:

  • Aeroporto de origem
  • Aeroporto de destino
  • Companhia aérea
  • Data e horário do voo

Com base nesses dados, é realizado o processamento para gerar a probabilidade de atraso.

Exemplo de Resposta da API

  • json { "probabilidadeAtraso": 0.27 }

Backend – Java com Spring Boot

Tecnologias Utilizadas

  • Java
  • Spring Boot
  • Spring Data JPA
  • MySQL
  • Bean Validation
  • Cliente HTTP para integração com FastAPI
  • Tratamento global de erros

Responsabilidades

O backend em Spring Boot é o núcleo da aplicação, sendo responsável por: Expor endpoint REST para o frontend Realizar validações dos dados enviados pelo cliente Tratar erros de entrada Fazer a comunicação com a API Python Processar respostas recebidas Retornar resultado final com status HTTP adequado

Endpoint Principal

Método: POST URL: http://localhost:8000 Entrada: JSON com dados do voo Saída: Probabilidade de atraso

Status de Resposta

200 OK – cálculo realizado com sucesso 400 Bad Request – erro de validação nos parâmetros 500 Internal Server Error – falha inesperada

Mensagens padronizadas de erro ao usuário

Frontend – React.js e Tailwind CSS

Tecnologias Utilizadas

  • React.js
  • Tailwind CSS
  • Axios
  • Componentização
  • Validações no lado do cliente
  • Design responsivo

Funcionamento

O frontend oferece uma interface intuitiva com formulário para coleta das informações. A requisição ao backend só é realizada após o preenchimento correto de todos os inputs obrigatórios. Fluxo no Frontend Usuário informa os dados do voo no formulário Sistema valida os campos obrigatórios Axios envia requisição POST para o backend Java Resultado é retornado e exibido na interface

Exemplo de Requisição com Axios axios.post("/api/probabilidade-atraso", dadosVoo) .then(response => { setProbabilidade(response.data.probabilidadeAtraso) }) .catch(error => { tratarErro(error.response.data) })

✅ Validações e Tratamento de Erros

A aplicação possui mecanismos para garantir integridade e confiabilidade: Validações prévias no frontend Validações robustas no backend Spring Boot Tratamento de exceções na API Python Mensagens claras e padronizadas

Utilização correta de códigos de status HTTP

🔗 Integrações Externas

Base de dados histórica da ANAC Comunicação entre backend Java e API Python Infraestrutura em nuvem através dos cursos ONE Tech Oracle

🎯 Objetivo do Projeto

Fornecer uma ferramenta acessível que permita: Auxiliar passageiros na tomada de decisão Demonstrar integração entre tecnologias distintas Aplicação prática de arquitetura distribuída Exibir boas práticas REST e tratamento de erros Apresentar competência técnica em Java, React e Python

🚀 Possíveis Evoluções

  • Melhoria do modelo preditivo
  • Inclusão de novos parâmetros
  • Dashboard analítico
  • Autenticação de usuários
  • Ampliação para outros países

👨‍💻 Autor

Ayran Vieira GitHub: github.com/ayrandev LinkedIn: linkedin.com/in/ayran-vieira-dev

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors