Skip to content

jpcamatari/Route-Otimization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aplicação de Otimização de Rotas

Este projeto é uma aplicação FastAPI que calcula a rota mais curta entre cidades utilizando a API do Google Maps. Ele gera uma matriz de distâncias e encontra o caminho mais curto entre as localizações fornecidas. Retornando para o Usuario uma tabela das rotas ordenadas, e a possibilidade de abrir a rota no Google Maps.

Essa aplicação está online no domínio: jpcamatari.com.br

Índice

  1. Estrutura do Código
  2. Arquitetura da Aplicação
  3. Tecnologias Utilizadas
  4. Funcionalidades
  5. Exemplo de Uso
  6. Instalação
  7. Contribuições
  8. Licença

Estrutura do Código

main.py: O arquivo principal da aplicação onde o FastAPI é inicializado e as rotas são definidas.

controller.py: Contém funções para calcular a matriz de distâncias e encontrar a rota mais curta.

templates/: Diretório contendo os templates HTML.

static/: Diretório para arquivos estáticos (CSS, JS, imagens).

Route-Otimization/
│
├── main.py          # Arquivo principal da aplicação
├── controller.py    # Funções para manipulação de rotas e distâncias
├── templates/       # Diretório para templates HTML
│   ├── index.html
│   └── result.html
└── static/          # Diretório para arquivos estáticos (CSS, JS, etc.)

Arquitetura da Aplicação

image

A arquitetura da aplicação é baseada em uma estrutura MVC (Model-View-Controller):

  • Model: Utiliza a API do Google Maps para obter a matriz de distâncias entre as cidades.
  • View: Renderiza as páginas HTML utilizando Jinja2, exibindo os resultados da rota calculada.
  • Controller: Gerencia a lógica de negócios, incluindo o cálculo da menor rota e a construção da matriz de distâncias.

A comunicação entre esses componentes é feita de forma organizada, garantindo a separação de responsabilidades e facilitando a manutenção do código.

Tecnologias Utilizadas

  • FastAPI: Framework para construção de APIs rápidas.
  • Google Maps API: Para obtenção de distâncias entre as cidades.
  • Pandas: Para manipulação de dados e criação de tabelas.
  • Jinja2: Para renderização de templates HTML.

Funcionalidades

  • Insira sua origem e múltiplos destinos.
  • Calcula a rota mais curta e a distância total.
  • Gera uma URL do Google Maps para a rota.

Exemplo de Uso

  1. Navegue até a página principal e preencha os campos de origem e destino.
  2. Envie o formulário para ver a rota calculada e a distância total.
  3. Clique no link gerado do Google Maps para obter direções.

Instalação

Pré-requisitos

  • Python 3.9 ou superior
  • Uma chave da API do Google Maps

Passos para Configuração

  1. Clone o repositório:

     git clone https://github.com/jpcamatari/Route-Otimization.git
     cd Route-Otimization
  2. Crie um ambiente virtual:

    python3 -m venv venv
    source venv/bin/activate  # No Windows, use `venv\Scripts\activate`.
  3. Instale os pacotes necessários:

    pip install -r requirements.txt
  4. Configure sua chave da API do Google Maps:

    Crie um arquivo .env na raiz do projeto e adicione sua chave da API(Necessario criar uma chave de API Google Maps no GCP:

    GOOGLE_KEY="Sua Chave de API gerada na GCP"
  5. Execute a aplicação:

    uvicorn main:app --host 0.0.0.0 --port 8000
  6. Acesse a aplicação:

    Abra seu navegador e navegue até http://localhost:8000.

Contribuições

Sinta-se à vontade para contribuir com o projeto! Faça um fork, crie uma branch para sua feature e envie um pull request. Ajude a melhorar essa aplicação! Entre em contato comigo para que possamos contribuir em features juntos (https://www.linkedin.com/in/jpcamatari/)

Licença

Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published