API para o backend do projeto de modernização do manejo desenvolvida com FastAPI.
Esta API, construída com FastAPI, é a parte central de um projeto voltado para o setor agropecuário. Nosso objetivo é viabilizar uma gestão eficiente de informações sobre o rebanho de bovinos e seu desempenho, auxiliando os produtores rurais a tomar decisões mais assertivas e estratégicas.
A API visa proporcionar uma solução abrangente para o controle eficiente de informações relacionadas ao gado. Através dela, oferecemos funcionalidades robustas para realizar operações de CRUD no banco de dados, abrangendo desde o registro inicial até as análises avançadas de desempenho.
Você pode acessar a API aqui.
Você também pode visualizar o deploy do banco de dados usando Adminer neste link.
Use a senha manejo123
.
Este usuário é apenas para leitura, fique a vontade para bisbilhotar :)
- Python e FastAPI, para o desenvolvimento de uma API asyncrona e robusta.
- Postgres como banco de dados.
- SQLAlchemy, para interação com o banco de dados via ORM.
- Pydantic, para validação de dados.
- PyTest, para testes de integração.
- Docker, para desenvolvimento em containers.
- Ruff como linter e formatador de código.
CRUD Completo: Gerencie suas informações sobre o gado com facilidade, desde a adição de novos registros até a atualização e exclusão de dados existentes.
Análises de Desempenho: Utilize recursos avançados para avaliar o desempenho do gado, possibilitando a tomada de decisões mais estratégicas no manejo.
Toda a aplicação pode ser executada via Docker, logo você precisa somente dele instalado! ✅
Clone o repositório e entre nele com o seguinte comando:
git clone https://github.com/henriquesebastiao/modernizacao-manejo-api && cd modernizacao-manejo-api
Crie um arquivo .env
que conterá as variáveis de ambiente exigidas pela aplicação, você pode fazer isso apenas copiando o arquivo de exemplo:
cat .env.example > .env
Agora execute o docker compose e toda aplicação será construída e iniciada em modo de desenvolcimento 🚀
docker compose watch
Pronto! Você já pode abrir seu navegador e acessar as seguintes URLs:
- Documentação interativa automática com Swagger UI (do backend OpenAPI): http://localhost:8000
- Adminer, para visualizar facilmente o banco de dados: http://localhost:8080
- Redoc, uma versão mais legível da documentação: http://localhost:8000/redoc
Para acessar o banco de dados local pelo Adminer, selecione o sistema PostgreSQL e use as seguintes credenciais:
- Servidor:
database
- Usuário:
user
- Senha:
password
- Banco de dados:
db
Um diagrama do banco de dados para facilitar o entendimento da estrutura e dos relacionamentos entre as tabelas. O diagrama serve como uma referência visual para desenvolvedores e colaboradores, destacando como os dados estão organizados e conectados, e auxiliando na manutenção e na extensão do sistema.
Durante o desenvolvimento, você pode alterar as configurações do Docker Compose que afetarão apenas o ambiente de desenvolvimento local no arquivo docker-compose.override.yml
.
As alterações nesse arquivo afetam apenas o ambiente de desenvolvimento local, não o ambiente de produção. Assim, você pode adicionar alterações "temporárias" que auxiliam no fluxo de trabalho de desenvolvimento.
Há também uma substituição de comando que é executada fastapi run --reload
em vez do padrão fastapi run
. Ele inicia um único processo de servidor (em vez de vários, como seria para produção) e recarrega o processo sempre que o código muda.
Com as variáveis de ambiente configuradas, você pode fazer deploy com Docker Compose:
docker compose -f docker-compose.yml up -d
Important
Para produção, você não gostaria de ter as substituições feitas em docker-compose.override.yml
, é por isso que especificamos explicitamente docker-compose.yml
como o arquivo a ser usado.