O Verdantis é um sistema de rastreabilidade e visualização inteligente desenvolvido para transformar o agronegócio brasileiro. O Brasil perde mais de R$ 12 bilhões anuais em exportações por falta de rastreabilidade e certificação sustentável. Nossa solução une Oracle Database, Spring Boot e tecnologias modernas para oferecer transparência, sustentabilidade e valor agregado aos produtos agrícolas.
- Falta de rastreabilidade: Dificulta exportações e certificações sustentáveis
- Gestão ineficiente: Desperdício de água, energia e insumos
- Baixa digitalização: Pequenos produtores sem acesso a ferramentas modernas
- Pressão internacional: Mercados EUA/UE rejeitam produtos sem comprovação de origem
Uma plataforma integrada de rastreabilidade digital que conecta produtores, distribuidores e compradores, permitindo registro, visualização e certificação de cadeias produtivas agrícolas.
Para criar um usuário, você precisa referenciar um tipo existente. Consulte os tipos disponíveis via:
GET http://localhost:8080/user-typesOptamos por entidade JPA para permitir:
- Adicionar novos tipos dinamicamente
- Gerenciamento via banco de dados Oracle
- Normalização e integridade referencial
- Conselho do professor de Banco de Dados
| Nome | Responsabilidades |
|---|---|
| Caio Lucas Silva Gomes | Frontend (Next.js/React Native), Documentação, Design, Banco de Dados Oracle |
| João Gabriel Fuchs Grecco | Backend (Spring Boot), API .NET, Oracle APEX, Banco de Dados Oracle |
| Madjer Henrique Almeida Finamor | IoT, Cloud & DevOPS, QA |
- Java 17 ou superior
- Maven 3.8+
- Oracle Database (configurado e acessível)
- Git
- Configure as credenciais do banco de dados no arquivo
application.properties:
spring.datasource.url=jdbc:oracle:thin:@//oracle.fiap.com.br:1521/ORCL
spring.datasource.username=SEU_USUARIO
spring.datasource.password=SUA_SENHA# Clone o repositório
git clone https://github.com/joaoGFG/VitsAPI.git
# Entre no diretório do projeto
cd VitsAPI/vits-agrochain
# Execute a aplicação (Windows)
mvnw.cmd spring-boot:run
# Execute a aplicação (Linux/Mac)
./mvnw spring-boot:run# Clone o repositório
git clone https://github.com/joaoGFG/VitsAPI.git
# Entre no diretório do projeto
cd VitsAPI/vits-agrochain
# Compile o projeto
mvn clean install
# Execute a aplicação
mvn spring-boot:runA aplicação estará disponível em: http://localhost:8080
Acesse o endpoint de status:
GET http://localhost:8080/
Resposta esperada: "Verdantis API is running"
┌─────────────────────────────────────────────────────┐
│ FRONTEND LAYER │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ Next.js + │ │ React Native │ │ APEX │ │
│ │ React │ │ Mobile │ │ Dashboards│ │
│ └──────────────┘ └──────────────┘ └───────────┘ │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ BACKEND (API) │
│ ┌──────────────────────────────────────────────┐ │
│ │ Spring Boot (Java 17) │ │
│ │ • UserController (REST API) │ │
│ │ • Repository Pattern (JPA) │ │
│ │ • Validation & Exception Handling │ │
│ └──────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ DATA PERSISTENCE LAYER │
│ ┌──────────────────────────────────────────────┐ │
│ │ Oracle Database │ │
│ │ • VITS_ORC_USUARIO │ │
│ │ • VITS_ORC_TIPO_USUARIO │ │
│ │ • VITS_ORC_PAIS / ESTADO / MUNICIPIO │ │
│ │ • Sequences & Constraints │ │
│ └──────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ BLOCKCHAIN LAYER (Futuro) │
│ ┌──────────────────────────────────────────────┐ │
│ │ Hyperledger Fabric │ │
│ │ • Registro Imutável de Lotes │ │
│ │ • Hash de Segurança │ │
│ └──────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
O vídeo apresenta:
- Proposta Tecnológica do Verdantis
- Público-alvo da aplicação (produtores, distribuidores, compradores)
- Problemas que a aplicação se propõe a solucionar
- Demonstração das funcionalidades principais
A documentação interativa da API está disponível através do Swagger UI:
URL do Swagger: http://localhost:8080/swagger-ui/index.html
Ou acesse diretamente:
OpenAPI JSON: http://localhost:8080/v3/api-docs
http://localhost:8080
Verifica se a aplicação está em execução.
Request:
GET /Response:
Status: 200 OK
Body: "Verdantis API is running"Retorna todos os tipos de usuário disponíveis no sistema.
Request:
GET /user-typesResponse:
Status: 200 OK
Content-Type: application/json
[
{
"userTypeId": 1,
"userDescription": "Produtor Rural"
},
{
"userTypeId": 2,
"userDescription": "Gestor"
},
{
"userTypeId": 3,
"userDescription": "Comprador"
}
]Retorna um tipo de usuário específico.
Request:
GET /user-types/{id}Response:
Status: 200 OK
Content-Type: application/json
{
"userTypeId": 1,
"userDescription": "Produtor Rural"
}Erro (404):
{
"timestamp": "2025-10-11T10:30:00",
"status": 404,
"error": "Not Found",
"message": "UserType não encontrado com o id: 999"
}Retorna todos os usuários cadastrados.
Request:
GET /usersResponse:
Status: 200 OK
Content-Type: application/json
[
{
"userId": 1,
"userName": "João Silva",
"registrationDate": "2025-10-11T14:30:00",
"userType": {
"userTypeId": 1,
"userDescription": "Produtor Rural"
}
}
]Retorna um usuário específico.
Request:
GET /users/{id}Response:
Status: 200 OK
Content-Type: application/json
{
"userId": 1,
"userName": "João Silva",
"registrationDate": "2025-10-11T14:30:00",
"userType": {
"userTypeId": 1,
"userDescription": "Produtor Rural"
}
}Erro (404):
{
"timestamp": "2025-10-11T10:30:00",
"status": 404,
"error": "Not Found",
"message": "Usuário não encontrado com o id: 999"
}Cria um novo usuário no sistema (produtor, gestor ou comprador).
Request:
POST /users
Content-Type: application/json
{
"userName": "João Silva",
"registrationDate": "2025-10-11T14:30:00",
"userType": {
"userTypeId": 1
}
}Response:
Status: 201 CREATED
Content-Type: application/json
{
"userId": 1,
"userName": "João Silva",
"registrationDate": "2025-10-11T14:30:00",
"userType": {
"userTypeId": 1,
"userDescription": "Produtor Rural"
}
}Validações:
userName: Obrigatório, máximo 200 caracteresregistrationDate: Obrigatório (formato ISO-8601: YYYY-MM-DDTHH:mm:ss)userType.userTypeId: Obrigatório, deve existir no banco de dados
O projeto foi testado utilizando as seguintes abordagens:
Testes de Integração: Verificação da integração com Oracle Database Testes de API: Documentação e testes realizados via Postman
| Categoria | Tecnologia | Função |
|---|---|---|
| Backend | Java | Linguagem de programação |
| Framework | Spring Boot | Framework para API REST |
| Persistência | Spring Data JPA | Camada de acesso a dados |
| Banco de Dados | Oracle Database | Armazenamento principal |
| Driver JDBC | ojdbc11 | Conexão com Oracle |
| Validação | Hibernate Validator | Validação de dados |
| Build | Maven | Gerenciamento de dependências |
| Utilitários | Lombok | Redução de boilerplate code |
| Logging | SLF4J | Sistema de logs |
| Monitoramento | Spring Actuator | Health checks e métricas |
- ✅ Cadastro rápido no sistema
- ✅ Registro digital de perfil
- 🔄 Registro de lotes agrícolas (em desenvolvimento)
- 🔄 Dashboards de produtividade (em desenvolvimento)
- ✅ Visualização de usuários cadastrados
- 🔄 Mapa interativo da produção (planejado)
- 🔄 Métricas de sustentabilidade (planejado)
- 🔄 Analytics de exportação (planejado)
- 🔄 Consulta de rastreabilidade via QR Code (planejado)
- 🔄 Validação de origem e sustentabilidade (planejado)
- 🔄 Marketplace integrado (planejado)
Legenda:
- ✅ Implementado
- 🔄 Em desenvolvimento
- 📋 Planejado
Este projeto foi desenvolvido como parte do Challenge Oracle na FIAP.







