A AgroTech é uma empresa busca desenvolver tecnologias para aprimorar a eficiência no cultivo de plantações. O primeiro produto da empresa, o Agrix, é um sistema de gestão e monitoramento das fazendas participantes. Este projeto é a fase B do desenvolvimento do projeto.
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.
- fertilizer: Representa um fertilizante, e está em um relacionamento N:N ("muitos para muitos") com a tabela crop. Esse relacionamento é realizado através da tabela crop_fertilizer.
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.GET /crops/search?start=yyyy-MM-dd&end=yyyy-MM-dd
: Busca de plantações a partir da data de colheita.POST /fertilizers
: Criação de um novo fertilizante.GET /fertilizers
: Retorna todos os fertilizantes cadastrados.GET /fertilizers/{id}
: Retorna informações de um fertilizante específico.POST /crops/{cropId}/fertilizers/{fertilizerId}
: Associa uma plantação com um fertilizante.GET /crops/{cropId}/fertilizers
: Retorna os fertilizante associados a uma plantação.
Este projeto visa o desenvolvimento de uma aplicação Spring Boot com funcionalidades iniciais para gestão de fazendas e plantios. Ele aborda as seguintes habilidades:
- 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.
- Utilização campos de data nas rotas da API e no banco de dados.
- Criação de testes unitários para garantir a qualidade e funcionamento correto da implementação, com cobertura de código adequada.
- 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.
- O arquivo
Agrix.postman_collection.json
contém exemplos de requisições para todos os endpoints da aplicação.
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