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.
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.
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.
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.
- Clone o repositório.
- Suba o ambiente com Docker Compose (ver abaixo).
- Execute a aplicação Spring Boot.
- Utilize ferramentas como Postman, Insomnia ou seu navegador para acessar os endpoints da API.
Certifique-se de ter o Docker instalado na sua máquina antes de prosseguir.
- Subir o ambiente:
docker-compose up -d
- Encerrar o ambiente:
docker-compose down