/java-agrix

API Spring Boot que implementa banco de dados e segurança para gerenciar fazendas.

Primary LanguageJava

API Agrix

Sobre o projeto

Este é um projeto de API desenvolvida para facilitar o gerenciamento e monitoramento de fazendas, plantações e fertilizantes. A API oferece recursos para o cadastro e recuperação de informações relacionadas a fazendas, plantações e fertilizantes, com um sistema de segurança para garantir que apenas usuários autorizados possam acessar os dados.

Tecnologias utilizadas

  • Java - Linguagem de programação orientada a objetos;
  • Spring - Framework Java para desenvolvimento de aplicações;
  • MySQL - Banco de dados relacional;
  • Maven - Gerenciador de dependências;
  • JUnit - Framework para testes unitários.

Como rodar

# Clonar Projeto
$ git clone git@github.com:lucas-da-silva/java-agrix.git

# Entrar no diretório
$ cd java-agrix

# Rodar aplicação
$ mvn spring-boot:run

Diagrama do banco de dados

Diagrama do banco de dados

API Endpoints

Coleção com as requisições disponíveis na API: Requisições Agrix API.

Cadastrar pessoa

  POST /persons
Parâmetro Tipo Descrição
username string Required. Nome do usuário
password string Required. Senha do usuário
role string Required. Função: USER, MANAGER ou ADMIN

Login

  POST /auth/login
Parâmetro Tipo Descrição
username string Required. Nome do usuário
password string Required. Senha do usuário

Endpoint: /farms

Necessário autenticação

Retornar todas as fazendas

  GET /farms

Retornar fazenda por ID

  GET /farms/${id}

Cadastrar uma nova fazenda

  POST /farms

Recuperar plantações de uma fazenda

  GET /farms/${id}/crops

Adicionar plantação a uma fazenda

  POST /farms/${id}/crops
Parâmetro Tipo Descrição
name string Required. Nome da plantação
plantedArea double Required. Área da plantação
plantedDate string Required. Data de plantio
harvestDate string Required. Data de colheita

Endpoint: /crops

Necessário autenticação

Retornar todas as plantações (ADMIN ou MANAGER)

  GET /crops

Retornar plantação por ID

  GET /crops/${id}

Retornar plantação a partir da data de colheita

  GET /crops/search?start=${start}&end=${end}
Parâmetro Tipo Descrição
start string Required. Data de início
end string Required. Data de fim

Adicionar fertilizante a uma plantação

  POST /crops/${cropId}/fertilizers/{fertilizerId}

Retornar fertilizantes de uma plantação

  GET /crops/${cropId}/fertilizers

Endpoint: /fertilizers

Necessário autenticação

Retornar todos os fertilizantes (ADMIN)

  GET /fertilizers

Retornar fertilizante por ID

  GET /fertilizers/${id}

Cadastrar um novo fertilizante

  POST /fertilizers
Parâmetro Tipo Descrição
name string Required. Nome do fertilizante
brand string Required. Marca do fertilizante
composition string Required. Composição do fertilizante

Autor