Files
docuagro/README.md
2026-02-10 15:46:03 -03:00

5.5 KiB

🌱 DocuAgro

Compliance do produtor, na palma da mão.

Bot Telegram + Painel Web para coleta, validação e organização de documentação de produtores rurais para compliance EUDR (Regulamento da União Europeia contra Desmatamento).


📋 O que é

O DocuAgro resolve o problema da "última milha" do compliance EUDR: coletar, organizar e validar a documentação de cada produtor individual e entregar um dossiê padronizado para cooperativas e tradings.

Como funciona

  1. Produtor interage via Bot Telegram — envia documentos, tira dúvidas
  2. IA (gpt-4o-mini) guia a coleta, valida documentos, orienta correções
  3. OCR extrai dados automaticamente de fotos e PDFs
  4. Dossiê PDF é gerado automaticamente quando todos os documentos estão prontos
  5. Cooperativa acompanha tudo pelo Painel Web

📄 Documentos Coletados

# Documento Validação
1 CAR (Cadastro Ambiental Rural) Número SICAR + OCR
2 CCIR (Certificado Cadastro Imóvel Rural) OCR + código INCRA
3 ITR (Imposto Territorial Rural) OCR + CPF/CNPJ
4 Georreferenciamento Coordenadas GPS
5 Licença Ambiental OCR + validade
6 Contrato de Arrendamento OCR (se aplicável)
7 Nota Fiscal de Venda OCR + dados
8 Declaração de Não Desmatamento Gerada automaticamente

🛠 Stack Técnica

  • Bot: Node.js + Telegraf
  • IA: OpenAI API (gpt-4o-mini)
  • OCR: Tesseract.js
  • PDF: PDFKit
  • Banco: SQLite (via better-sqlite3)
  • API: Express.js
  • Painel: HTML/CSS/JS puro (sem framework)

🚀 Instalação

Pré-requisitos

  • Node.js 18+
  • Token do Bot Telegram (via @BotFather)
  • Chave API da OpenAI

Setup

# Clonar repositório
git clone http://137.184.77.7:3000/bigtux/docuagro.git
cd docuagro

# Instalar dependências
npm install

# Configurar variáveis de ambiente
cp .env.example .env
# Editar .env com seus tokens

# Criar banco de dados
npm run setup

# Iniciar (bot + API + painel)
npm start

Modo desenvolvimento

npm run dev  # Usa nodemon para auto-reload

⚙️ Configuração (.env)

# Bot Telegram
TELEGRAM_BOT_TOKEN=123456:ABC-DEF...

# OpenAI API
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini

# Servidor
PORT=3100

# Banco de dados
DB_PATH=./data/docuagro.db

# Upload
UPLOAD_DIR=./uploads

📱 Comandos do Bot

Comando Descrição
/start Iniciar cadastro
/status Ver status dos documentos
/dossie Gerar dossiê PDF
/pular Pular documento atual
/ajuda Menu de ajuda

🌐 Painel Web

Acesse http://localhost:3100 para o painel da cooperativa:

  • Dashboard com estatísticas em tempo real
  • Lista de produtores com status de compliance
  • Busca por nome, CPF, propriedade ou município
  • Detalhes de cada produtor e seus documentos
  • Download de dossiê PDF
  • Exportação CSV para sistemas externos

📡 API REST

Endpoint Método Descrição
/api/health GET Health check
/api/dashboard GET Estatísticas gerais
/api/produtores GET Listar produtores
/api/produtores/:id GET Detalhe do produtor
/api/produtores/:id/dossie POST Gerar dossiê PDF
/api/dossie/download/:arquivo GET Download do dossiê
/api/exportar/csv GET Exportar CSV

📁 Estrutura do Projeto

docuagro/
├── src/
│   ├── index.js              # Entry point
│   ├── setup-db.js           # Criação do banco de dados
│   ├── bot/
│   │   └── telegram-bot.js   # Bot Telegram (Telegraf)
│   ├── api/
│   │   └── routes.js         # API REST (Express)
│   ├── services/
│   │   ├── database.js       # Operações de banco (SQLite)
│   │   ├── ai-service.js     # Integração OpenAI
│   │   ├── ocr-service.js    # OCR (Tesseract.js)
│   │   ├── pdf-service.js    # Geração de dossiê PDF
│   │   └── system-prompt.js  # Prompt da IA especialista EUDR
│   └── utils/
├── public/
│   └── index.html            # Painel web da cooperativa
├── data/                     # Banco SQLite
├── uploads/                  # Documentos dos produtores
├── docs/                     # Documentação adicional
├── .env.example              # Template de configuração
├── .gitignore
├── package.json
└── README.md

🔒 Segurança

  • Documentos armazenados localmente (não em cloud pública)
  • Cada produtor tem diretório isolado de uploads
  • API sem autenticação no MVP (adicionar antes de produção!)
  • CPF/CNPJ armazenados para identificação

TODO para produção:

  • Autenticação JWT no painel
  • HTTPS obrigatório
  • Rate limiting na API
  • Criptografia de dados sensíveis
  • Backup automático do banco

📊 Contexto EUDR

O Regulamento (UE) 2023/1115 proíbe a importação na UE de commodities produzidas em áreas desmatadas após 31/12/2020. Afeta:

  • 🫘 Soja
  • Café
  • 🍫 Cacau
  • 🌴 Óleo de palma
  • 🌳 Madeira
  • 🐄 Gado
  • 🔧 Borracha

Produtores brasileiros que exportam precisam comprovar geolocalização, ausência de desmatamento e conformidade ambiental.


📝 Licença

MIT


DocuAgro — Feito com 🌱 para o agro brasileiro.