! 🏳️ PROJETO IMPORTADO DO GITLAB - https://gitlab.com/rodneysostras/desafio-dev-jr-pl
Sobre • Requisitos • Recursos • Como executar • Tecnologias • Autor
🏆 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'
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
- Utilitario de linha de comando
- Alembic - Ferramenta para gerenciar a estrutura do banco de dados
- Collection Insomnia - Configuração para usar no software Isomnia
# 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 vscodeRemote 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.
- 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
![]() Rodney Sostras |
Este projeto esta sobe a licença MIT.
Feito com ❤️ por Rodney Sostras 👋🏽 Entre em contato!