API para extração dos dados de vitinicultura da Embrapa. Tais dados alimentarão uma base de dados.
- Antonio Eduardo de Oliveira Lima
- Gustavo Mendonça Ferratti
- Luiz Claudio Santana Barbosa
- Mauricio de Araujo Pintor
Para criar o ambiente virtual utilizando Conda, execute o comando abaixo:
make create_env
Após a criação do ambiente, ative-o com:
conda activate fiap
Obs: É bom garantir que o ambiente correto esteja ativado para todos os comandos e rodagens.
Para instalar todas as dependências necessárias para produção, execute:
make install
Para instalar as dependências de desenvolvimento, incluindo ferramentas necessárias para linting e testes, execute:
make install-dev
Para rodar a aplicação, execute:
make run
A aplicação por padrão será disponibilizada na porta 5000. A partir dela será possível:
- Visualizar os dados (a partir da interface)
- Fazer download do .csv das bases tratadas (a partir da interface)
- Fazer a requisição das bases tratadas (por endpoint)
Para visualizar os endpoints e suas documentações, basta acessar http://localhost:5000/apidocs. Tal documentação foi feita com flasgger (Swagger para o Flask).
Linters são ferramentas que ajudam a manter a qualidade do código, verificando erros e garantindo conformidade com as boas práticas de codificação.
Para rodar os linters (flake8, black e isort) e verificar se o código está de acordo com os padrões estabelecidos, execute:
make lint
Você também pode aplicar automaticamente correções de formatação com o comando:
make lint-all
Para executar os testes automatizados do projeto, utilize o comando:
make test
Obs: O make test utiliza o pytest no background (observar arquivo Makefile), logo, fique a vontade para utilizar esse comando com qualquer argumento de preferência (por exemplo: pytest tests/pastaA/arquivob.py)
Para trabalhar com Jupyter Notebooks na pasta /notebooks, é recomendável que você mantenha seu ambiente virtual ativo para garantir que todas as dependências necessárias estão disponíveis.
Para melhor organização, está convencionado que cada desenvolvedor terá sua pasta dentro de notebooks/, tal prática irá fácilitar o desenvolvimento sem qualquer sobrescrita e conflito de git.
Os notebooks permitem uma interação direta com o código, facilitando a visualização de dados e resultados de forma interativa, sendo ideal para experimentos e análises exploratórias. Logo, não é um requisito se ater às melhores práticas de coding (apenas de ser recomandendado). Já nos scripts produtivos (.py) o rigor será maior.
Para contribuir com o projeto, siga os passos abaixo:
- Fork o repositório para sua conta no GitHub.
- Clone o fork para sua máquina local.
- Crie uma branch para suas modificações, nomeando-a de forma que reflita a natureza das mudanças (e atendo a elas).
- Faça suas alterações e commit.
- Push suas mudanças para seu fork no GitHub.
- Abra um Pull Request do seu fork para o repositório principal. Certifique-se de descrever as mudanças realizadas e qualquer outra informação que facilite a avaliação do PR.
Sua contribuição será revisada e, se apropriada, mesclada no projeto principal.