Agrix: Sistema de Gestão de Fazendas da AgroTech 🌱🏞️

Um grupo de empreendedores preocupados com os impactos ambientais e sociais da agricultura fundou a AgroTech. Essa empresa busca desenvolver tecnologias para aprimorar a eficiência no cultivo de plantações, visando a redução do desperdício de recursos e um uso mais responsável da terra. O primeiro produto da empresa, o Agrix, é um sistema de gestão e monitoramento das fazendas participantes. Este projeto é o início do desenvolvimento do Agrix em fases e servirá como base para próximas etapas.

⚙️ Funcionalidades da API

Este projeto visa o desenvolvimento de uma aplicação Spring Boot com funcionalidades iniciais para gestão de fazendas e plantios. Ele aborda os seguintes requisitos:

  • Implementação de rotas da API Rest usando o ecossistema Spring.
  • Utilização de injeção de dependência para conectar camadas de controle, serviço e persistência.
  • Utilização do Spring Data JPA para entidades e repositórios de persistência em banco de dados.
  • Implementação de gerenciamento de erros no Spring Web.
  • Criação de um Dockerfile para configurar a aplicação para execução no Docker.
  • Estruturação do Banco de Dados.

🏛️ Estrutura do Banco de Dados

Este modelo inclui as seguintes tabelas:

  • farm: Representa uma fazenda.
  • crop: Representa uma plantação e está em relacionamento N:1 ("muitos para um") com a tabela farm.

✅ Endpoints Implementados

Criação de uma API para controle de fazendas com as seguintes rotas:

  • POST /farms: Criação de fazendas.
  • GET /farms: Retorna todas as fazendas cadastradas.
  • GET /farms/{id}: Retorna informações de uma fazenda específica.
  • POST /farms/{farmId}/crops: Criação de plantações em uma fazenda.
  • GET /farms/{farmId}/crops: Lista as plantações de uma fazenda específica.
  • GET /crops: Retorna todas as plantações cadastradas.
  • GET /crops/{id}: Retorna informações de uma plantação específica.

💻 Como Executar o Projeto

  1. Clone o repositório.
  2. Suba o ambiente com Docker Compose (ver abaixo).
  3. Execute a aplicação Spring Boot.
  4. Utilize ferramentas como Postman, Insomnia ou seu navegador para acessar os endpoints da API.

🛠️ Configuração do Ambiente

Certifique-se de ter o Docker instalado na sua máquina antes de prosseguir.

  1. Subir o ambiente:
docker-compose up -d
  1. Encerrar o ambiente:
docker-compose down