Skip to content

🏆 Challenge Milenio - Uma aplicação REST API para logística que utilizei os algoritmo Dijkstra e BFS (Breadth-first search) para realizar cálculos para definir trajetos.

Notifications You must be signed in to change notification settings

rodneysostras/challenge-dev-jr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

! 🏳️ PROJETO IMPORTADO DO GITLAB - https://gitlab.com/rodneysostras/desafio-dev-jr-pl

Challenge Dev JR


💻 Sobre o projeto


previewer
Sistema de logística para definir melhores rotas entre cidades

🏆 Challenge Dev JR - Uma aplicação Web desenvolvida em python utilizando framework FastAPI.

Applicação tem objetivo de simplificar informando as melhores rotas entre algumas cidades para melhorar a logística de trabalho.

Sua base de dados persistente e o PostgreSQL um banco de dados relacional.

Uma challenge realizada para testar meus conhecimentos tendo que comprir os requisitos abaixo.

Branch da entrega 'challenge'


🎯 Requisitos

Os requisitos abaixo são resumidos, para melhores informações veja documento oficial

  • API
    • Criar | Esse endpoint deverá receber os dados e salvar no banco de dados.
    • Recuperar | Esse endpoint deverá retornar um grafo previamente salvo no bando de dados.
    • Calculo de distância | Esse endpoint deverá calcular todas as rotas disponíveis de uma cidade origem para outra de destino.
    • Distância mínima | Esse endpoint deverá determinar a rota cuja distância seja a mínima possível entre duas cidades.
  • Dockerfile
  • Docker-compose com todos os serviços
  • Testes de integração
  • Documentação

📦 Recursos

  • Utilitario de linha de comando
  • Alembic - Ferramenta para gerenciar a estrutura do banco de dados
  • Collection Insomnia - Configuração para usar no software Isomnia

🚀 Como executar o projeto

# Clone este repositório
$ git clone https://gitlab.com/rodneysostras/desafio-dev-jr-pl.git
# Acesse a pasta do projeto no seu terminal/cmd
$ cd desafio-dev-jr-pl
# Acesse a pasta backend no seu terminal/cmd
$ cd backend
# Instalar as dependências
$ pip3 install -r requirements.txt

Para executar o backend foi criado utilitario de linha de comando inspirado no Django, para usa-lo siga as instruções abaixo

# Criar ou atualizar as estruturas no banco de dados
$ python3 milenio.py migrate
# Iniciar serviço na porta padrão 8080
$ python3 milenio.py runserver

Caso deseja utilizar da forma tradicional

# Criar ou atualizar as estruturas no banco de dados
$ alembic upgrade head
# Iniciar serviço na porta padrão 8080
$ uvicorn appconfig.core:application --host 0.0.0.0 --port 8080

Na pasta .devcontainer possui as configurações para subir o container docker do ambiente de desenvolvimento deste projeto
Fique a vontade para usar o docker-composer ou a extensão do vscode Remote Development
Após o start do container realize o comando para;

(1) - Instalação de dependências
(2) - Criação/atualização do banco de dados
(3) - Iniciar serviço

Estes procedimentos estão descritos acima.


🛠 Tecnologias

  • Python • Uma linguagem de programação de alto nível, é conhecida por usa simplicidade e legibilidade
  • FastAPI • Framework web para construções de APIs com Python 3.6 ou superior.
  • Postgresql • Sistema de banco de dados objeto-relacional de código aberto com mais de 30 anos de desenvolvimento

🦸 Autor

Foto do Rodney Sostras no GitHub
Rodney Sostras

  

  

  

  



📝 Licença

Este projeto esta sobe a licença MIT.

Feito com ❤️ por Rodney Sostras 👋🏽 Entre em contato!


About

🏆 Challenge Milenio - Uma aplicação REST API para logística que utilizei os algoritmo Dijkstra e BFS (Breadth-first search) para realizar cálculos para definir trajetos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published