🌱 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
- Produtor interage via Bot Telegram — envia documentos, tira dúvidas
- IA (gpt-4o-mini) guia a coleta, valida documentos, orienta correções
- OCR extrai dados automaticamente de fotos e PDFs
- Dossiê PDF é gerado automaticamente quando todos os documentos estão prontos
- 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.