Sign inSign up

henriquesebastiao/manejo-api

By henriquesebastiao

Updated over 1 year ago

API async robusta para gestão de rebanhos construída com FastAPI.

Image
0

240

henriquesebastiao/manejo-api repository overview

API - Projeto de Modernização do Manejo

Repositório: https://github.com/henriquesebastiao/modernizacao-manejo-api/

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
Como núcleo da aplicação
  • 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.
Ferramentas usadas na implantação
  • Docker, para desenvolvimento em containers.
  • Uvicorn como servidor ASGI de aplicação.
  • Nginx, como servidor web.
  • OpenTelemetry, Prometheus e Grafana para observabilidade e telemetria.
Ferramentas usadas no desenvolvimento
  • PyTest, para testes de integração.
  • Ruff como linter e formatador de código.
  • Locust, para testes de carga.

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 desenvolvimento 🚀

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

Observabilidade com OpenTelemetry 🔍

O projeto conta com ferramentas para observação de métricas da aplicação, sendo elas:

  • Prometheus, para coleta de métricas.
  • Loki, para coleta de logs.
  • Tempo, para coletas de traces.

Por fim, todos os dados são enviados para o Grafana, onde podemos ver os dados em um dashboard.

Acesse o Grafana em: https://localhost:3000

As credencias padrão são:

  • Usuário: admin
  • Senha: admin

Para visualizar o dashboard, clique em Dashboards no menu lateral direto e selecione Manejo API.

Testes de carga com Locust

Você pode executar testes de carga na aplicação para simular acessos aos endpoints, como possivelmente seria em um ambiente de produção.

Execute os testes com o seguinte comando:

task locust

Após isso você verá as métricas de acessos a API subindo constantemente no dashboard do Grafana. Para parar o testes pressione ctrl + c.

Captura de tela de 2024-11-19 16-37-10

Tag summary

Content type

Image

Digest

sha256:57986dd2f

Size

88.3 MB

Last updated

over 1 year ago

docker pull henriquesebastiao/manejo-api