Em resumo, este projeto consiste em implementar a solucão proposta pelo Melhor Envio, no desafio da Melhor Transportadora. Espero que possa ser útil à todo aquele que precisar calcular fretes e/ou prazos; ou, ao menos, ter uma base ideológica de como o processo funciona, atualmente.
Para que este software rode de forma apropriada, será necessário os seguintes softwares:
- MySQL v5.7.19,
- Node.js v8.9.1,
- NPM (que vem com o Node.js).
Ressalto que, infelizmente, o MariaDB não poderá ser utilizado. É obrigatório que seja o próprio MySQL em detrimento de que o MariaDB ainda está em processo de adaptar-se à certos tipos de dados e colunas, como por exemplo, JSON, para determinadas e/ou gerais versões de sistemas operacionais.
Caso desejem rodar o projeto de forma isolada, basta instalar também:
- Vagrant,
- VirtualBox.
As credenciais do banco de dados MySQL deverão ser configuradas ANTES de prosseguirmos, no arquivo config.yml, na mesma pasta raíz deste projeto.
- Executar o comando
npm installdentro da pasta raíz do projeto; - Importar o arquivo
./bootstrap/db/database2.sqlpara o seu banco mysql para criar a base, tabelas e dados iniciais;
Feito isso, podemos iniciar o software usando: npm start
Deverá aparecer na tela do console, em seguida, o link para acessar no seu navegador.
expresspara controle de roteamento e servir arquivos;mysql2/promisepara conexão eficiente ao banco de dados;helmetpara tornar mais seguro os requests do express, adicionando headers específicos;axiospara realizar requests de HTTP;body-parserpara processar dados de pedidos express e compilar o JSON, quando necessário.
A rota de cálculo (API) do projeto estarão disponíveis, com exemplos salvos, descricão de cada parâmetro de forma minuciosa, na seguinte Collection do Postman, acessível abaixo. Lembre-se que se rodar dentro da Vagrant, possivelmente terá de alterar o URL nas rotas do Postman.
Caso você queira executar o projeto de forma isolada, dentro de uma máquina virtual Linux que já instala tudo que é necessário, de forma automática, bastará seguir os passos abaixo (tendo Vagrant e VirtualBox instalados):
- Executar
vagrant updentro da pasta raíz do projeto, para iniciar ou criar a VM do projeto; - Após finalizar tudo de forma sucedida, entrar na vagrant usando
vagrant ssh; - Dentro da VM, o usuário e senha do MySQL são
root, por padrão - configure-os no config.yml, caso necessário; - Os steps de instalar pacotes, importar banco de dados e dar start são os mesmos descritos no "Steps para Instalar".
Detalhe: O Vagrant pode apresentar falhas sem razão iminente; por exemplo, em meu sistema operacional (Arch Linux), ele frequentemente apresenta falhas onde tenho que reinstalar plugins e outras APIs. Portanto, caso identifique tal comportamento ao realizar o processo com a Vagrant, sugiro deixá-la de lado e testar em seu próprio ambiente local, fora de maquinas virtuais.
Este projeto está licenciado com MIT e pode ser utilizado por qualquer entidade, de forma ética, desde que siga os termos exatos exigidos pela licenca MIT.
Copyright (c) 2017 João Pedro Viana ([email protected])
Telegram: https://t.me/Donqvolf | Facebook: https://fb.com/Donqvolf
Alpha released on November 13, 2017.