Skip to content

henriquesebastiao/modernizacao-manejo-api

Repository files navigation

API - Projeto de Modernização do Manejo

CI coverage fastapi postgresql docker

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.

Deploy 🚀

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 :)

Tecnologias utilizadas

  • 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.

Principais Recursos

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.

Executar localmente em modo desenvolvimento

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:

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

Diagrama do Banco de Dados

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.

Diagrama do Banco de Dados

Desenvolvendo 🛠️

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.

Deploy com Docker Compose

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.

Releases

No releases published

Languages