image

Bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Marcio Gil
Marcio Gil23/10/2025 14:21
Compartilhe

O Tradutor de Burocracia

  • #GitHub
  • #Git
  • #Node.js
  • #CSS
  • #OpenAI API
  • #IA Generativa
  • #DevOps
  • #Cloud
  • #React
  • #Figma
  • #API Rest

🇧🇷 Decifra.Cidadão - O Tradutor de Burocracia

image

Transformando documentos complexos em linguagem simples e acessível

image image image image image

🚀 Demo ao Vivo • 📖 Documentação • 🤝 Contribuir • 📬 Contato

📋 Índice

�🎯 O Problema

Milhões de brasileiros são "analfabetos funcionais" não apenas de texto, mas de burocracia. Eles recebem documentos complexos e não compreendem o conteúdo:

  • 📋 Exames médicos com terminologias complexas
  • ⚖️ Citações judiciais em linguagem jurídica
  • 🏠 Contratos de aluguel com cláusulas confusas
  • 🏛️ Benefícios sociais (Bolsa Família, INSS)
  • 💡 Contas de luz/água detalhadas

Isso gera ansiedade, impotência e dependência de terceiros para "traduzir" documentos - uma barreira imensa à cidadania e autonomia.

💡 A Solução

Decifra.Cidadão é uma aplicação web progressiva (PWA) 100% acessível onde o usuário pode:

� Funcionalidades Principais

  • 📸 Fotografar qualquer documento com câmera
  • 📄 Fazer upload de arquivos PDF
  • 🎤 Gravar áudio falando sua dúvida
  • 🧠 Receber explicação em linguagem simples
  • 🗣️ Ouvir resposta em áudio humanizado

✨ Funcionalidades

🎭 Para o Usuário

  • ✅ Interface Ultra-Simples: Botões grandes, alto contraste
  • ✅ Sem Cadastro: Use imediatamente, sem barreiras
  • ✅ 100% Gratuito: Democratização da informação
  • ✅ Multiplataforma: Web, mobile, desktop
  • ✅ Offline: PWA funciona sem internet
  • ✅ Privacidade: Documentos não são armazenados

♿ Para Acessibilidade

  • ✅ WCAG 2.1 AA: Padrão internacional de acessibilidade
  • ✅ Leitores de Tela: NVDA, JAWS, VoiceOver
  • ✅ Navegação por Teclado: Tab, Arrow Keys, Enter
  • ✅ Alto Contraste: Para baixa visão
  • ✅ Fontes Ampliadas: Configurável pelo usuário
  • ✅ Movimento Reduzido: Para sensibilidades

� Para Desenvolvedores

  • ✅ APIs RESTful: Endpoints bem documentados
  • ✅ Arquitetura Limpa: Separação de responsabilidades
  • ✅ Testes Automatizados: Cobertura completa
  • ✅ CI/CD: Deploy automático
  • ✅ Monitoramento: Logs estruturados
  • ✅ Escalável: Pronto para crescer

🏗️ Arquitetura

📊 Visão Geral


🎨 Frontend (React PWA)

frontend/
├── public/                 # Arquivos estáticos e PWA
│   ├── manifest.json      # Configuração PWA
│   ├── sw.js             # Service Worker
│   └── icons/            # Ícones da aplicação
├── src/
│   ├── components/       # Componentes reutilizáveis
│   │   ├── layout/       # Header, Footer, Layout
│   │   ├── document/     # Upload, Preview
│   │   ├── audio/        # Recorder, Player  
│   │   └── accessibility/ # Toolbar, Controls
│   ├── pages/            # Páginas da aplicação
│   │   ├── HomePage.js   # Página principal
│   │   ├── ResultPage.js # Resultados da tradução
│   │   └── AboutPage.js  # Sobre o projeto
│   ├── contexts/         # Contextos React
│   │   └── AccessibilityContext.js
│   ├── hooks/            # Custom hooks
│   ├── services/         # APIs e integrações
│   ├── utils/            # Utilitários
│   └── styles/           # Estilos CSS
└── package.json

⚙️ Backend (Node.js API)

backend/
├── src/
│   ├── routes/           # Endpoints da API
│   │   ├── documentRoutes.js  # /api/documents/*
│   │   └── healthRoutes.js    # /api/health
│   ├── services/         # Lógica de negócio
│   │   ├── ocrService.js      # Google Vision OCR
│   │   ├── aiService.js       # OpenAI GPT-4
│   │   ├── ttsService.js      # Google Cloud TTS
│   │   └── documentService.js # Processamento
│   ├── middleware/       # Middlewares
│   │   ├── validation.js      # Validação de dados
│   │   └── errorHandler.js    # Tratamento de erros
│   ├── utils/            # Utilitários
│   │   └── logger.js          # Sistema de logs
│   └── server.js         # Servidor principal
├── uploads/              # Arquivos temporários
├── logs/                 # Logs da aplicação
└── package.json

🛠️ Tecnologias

🎨 Frontend

TecnologiaVersãoUsoimage18.2+Framework principalimage-App progressivaimage-Estilização avançadaimage10.16+Animaçõesimage4.0+Estado servidorimage6.8+Roteamento

⚙️ Backend

TecnologiaVersãoUsoimage18+Runtime JavaScriptimage4.18+Framework webimageGPT-4IA Generativaimage-OCR e TTSimage1.4+Upload de arquivosimage3.11+Sistema de logs

🤖 Inteligência Artificial

ServiçoFunçãoDetalhesOpenAI GPT-4🧠 Tradução IAClara - assistente empáticaGoogle Vision API👁️ OCRExtração de texto de imagensGoogle Cloud TTS🗣️ Síntese de vozÁudio humanizado em PT-BRWeb Speech API🎤 STTReconhecimento de voz

🛡️ Segurança & DevOps

FerramentaUsoHelmet.jsHeaders de segurançaRate LimitingProteção contra abusoInput ValidationJoi + sanitizaçãoCORSPolítica de origem cruzadaGitHub ActionsCI/CD automatizadoVercelDeploy frontendRailwayDeploy backend

� Como Usar

📋 Para Usuários (Sem Instalação)

🌐 Acesse direto no navegador:

  • Site Principal: decifra-cidadao.vercel.app
  • Como usar: Abra o site, tire foto do documento ou grave áudio
  • Funciona em: Celular, tablet, computador
  • Grátis: Sem cadastro, sem cobrança

🛠️ Para Desenvolvedores

⚡ Instalação Rápida

1. Clone o repositório:

git clone https://github.com/MarcioGil/decifra-cidadao.git
cd decifra-cidadao

2. Execute o script de configuração:

# Linux/Mac
./setup.sh

# Windows
setup.bat

3. Configure as variáveis de ambiente:

Backend (.env):

PORT=5000
NODE_ENV=development
OPENAI_API_KEY=sua_chave_openai_aqui
GOOGLE_CLOUD_PROJECT_ID=seu_projeto_google_cloud
GOOGLE_APPLICATION_CREDENTIALS=caminho/para/credenciais.json
FRONTEND_URL=http://localhost:3000

Frontend (.env):

REACT_APP_API_URL=http://localhost:5000
REACT_APP_PWA_NAME=Decifra.Cidadão

4. Execute o projeto:

npm run dev

5. Abra no navegador:

📦 Instalação Manual

Instalar dependências:

# Root
npm install

# Backend
cd backend && npm install && cd ..

# Frontend  
cd frontend && npm install && cd ..

Executar separadamente:

# Terminal 1 - Backend
cd backend && npm run dev

# Terminal 2 - Frontend
cd frontend && npm start

📖 Documentação

🚀 Como Executar

Pré-requisitos

  • Node.js 18+
  • Chaves de API configuradas (Google Cloud, OpenAI)

Instalação

  1. Clone o repositório:
git clone https://github.com/MarcioGil/decifra-cidadao.git
cd decifra-cidadao
  1. Configure as variáveis de ambiente:
# Backend
cd backend
cp .env.example .env
# Edite o arquivo .env com suas chaves de API

# Frontend  
cd ../frontend
cp .env.example .env
  1. Instale as dependências:
# Backend
cd backend
npm install

# Frontend
cd ../frontend
npm install
  1. Execute o projeto:
# Terminal 1 - Backend
cd backend
npm run dev

# Terminal 2 - Frontend  
cd frontend
npm start

O aplicativo estará disponível em http://localhost:3000

� API Documentation

🔍 Endpoints Principais

POST /api/documents/image

// Processar imagem (OCR + IA)
const formData = new FormData();
formData.append('image', file);

fetch('/api/documents/image', {
method: 'POST', 
body: formData
})
.then(res => res.json())
.then(data => {
console.log(data.explanation); // Explicação simplificada
console.log(data.audioUrl);    // URL do áudio TTS
});

POST /api/documents/pdf

// Processar PDF
const formData = new FormData();
formData.append('pdf', pdfFile);

fetch('/api/documents/pdf', {
method: 'POST',
body: formData
})

POST /api/documents/audio

// Processar áudio (STT + IA)
const formData = new FormData();
formData.append('audio', audioBlob);

fetch('/api/documents/audio', {
method: 'POST',
body: formData  
})

GET /api/health

// Status da API
fetch('/api/health')
.then(res => res.json())
.then(data => {
console.log(data.status);     // "healthy"
console.log(data.services);   // Status dos serviços IA
});

📊 Formato de Resposta

{
"success": true,
"data": {
  "originalText": "Texto extraído do documento...",
  "explanation": "Explicação em linguagem simples pela Clara...", 
  "audioUrl": "https://storage.googleapis.com/audio/explanation.mp3",
  "confidence": 0.95,
  "processingTime": "2.3s"
}
}

🚀 Deploy e Produção

🌐 Deploy Automático

O projeto utiliza GitHub Actions para CI/CD automático:

# .github/workflows/deploy.yml
name: Deploy to Production
on:
push:
  branches: [main]
jobs:
deploy-frontend:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v3
    - name: Deploy to Vercel
      uses: vercel/action@v1
      
deploy-backend:
  runs-on: ubuntu-latest  
  steps:
    - uses: actions/checkout@v3
    - name: Deploy to Railway
      uses: railway/action@v1

☁️ Plataformas de Deploy

ServiçoPlataformaURLStatusFrontendVerceldecifra-cidadao.vercel.app✅BackendRailwayapi.decifra-cidadao.railway.app✅MonitoringUptime Robot-✅

🔧 Configuração de Produção

Variáveis de Ambiente:

# Produção
NODE_ENV=production
PORT=5000
OPENAI_API_KEY=sk-proj-xxxxx
GOOGLE_CLOUD_PROJECT_ID=decifra-cidadao
GOOGLE_APPLICATION_CREDENTIALS=/app/google-credentials.json
FRONTEND_URL=https://decifra-cidadao.vercel.app
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX=100

🧪 Testes e Desenvolvimento

🔍 Executar Testes

# Todos os testes
npm test

# Testes específicos  
npm run test:backend
npm run test:frontend
npm run test:e2e

# Cobertura de código
npm run test:coverage

🐛 Debug Mode

# Backend com debug
cd backend && npm run debug

# Frontend com debug
cd frontend && npm run start:debug

# Logs detalhados
export DEBUG=decifra:*
npm run dev

📊 Métricas de Qualidade

MétricaFrontendBackendMetaCobertura85%90%>80%Performance95/100->90Acessibilidade100/100-100Best Practices95/100->90

🤝 Contribuição

🌟 Como Contribuir

1. Fork do projeto:

gh repo fork MarcioGil/decifra-cidadao

2. Criar branch:

git checkout -b feature/nova-funcionalidade

3. Commits semânticos:

git commit -m "feat: adicionar suporte a novos tipos de documento"
git commit -m "fix: corrigir erro de upload em dispositivos móveis"
git commit -m "docs: atualizar guia de instalação"

4. Pull request:

git push origin feature/nova-funcionalidade
gh pr create --title "feat: nova funcionalidade incrível"

📋 Guidelines

  • ✅ Código limpo e bem documentado
  • ✅ Testes para novas funcionalidades
  • ✅ Acessibilidade em primeiro lugar
  • ✅ Performance otimizada
  • ✅ Commits semânticos (conventional commits)

🛠️ Desenvolvimento Local

# Instalar pre-commit hooks
npm run prepare

# Linter automático
npm run lint:fix

# Formatação de código
npm run format

# Verificar tipos TypeScript
npm run type-check

📄 Licença

MIT License - Uso livre, comercial e modificação permitida.

MIT License

Copyright (c) 2024 Márcio Gil

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

🎯 Roadmap

� Versão 2.0 (Q2 2024)

  • ✅ Multi-idiomas: Inglês, Espanhol
  • ✅ App Mobile: React Native
  • ✅ API Premium: Processamento prioritário
  • ✅ Dashboard Analytics: Métricas de uso
  • ✅ Integração WhatsApp: Bot oficial

🔮 Versão 3.0 (Q4 2024)

  • 🔄 IA Personalizada: Fine-tuning específico
  • 🔄 Blockchain: Verificação de documentos
  • 🔄 API Governamental: Integração direta
  • 🔄 Assistente Jurídico: Consultoria básica
  • 🔄 Comunidade: Fórum de usuários

📞 Suporte

🆘 Precisa de Ajuda?

🎯 Para Usuários:

🛠️ Para Desenvolvedores:

🆘 Perguntas Frequentes (FAQ)

❓ É grátis mesmo?

✅ Resposta: Sim! 100% gratuito, sem cadastro, sem pegadinhas. Nosso objetivo é ajudar o cidadão brasileiro.

❓ Meus documentos ficam salvos no site?

✅ Resposta: Não! Processamos e apagamos imediatamente. Sua privacidade é total.

❓ Funciona no meu celular simples?

✅ Resposta: Sim! Funciona em qualquer celular com internet, até os mais antigos.

❓ A Clara pode me dar conselhos jurídicos?

✅ Resposta: Não. A Clara só explica o que está escrito. Para decisões importantes, procure sempre um profissional.

❓ E se eu não souber usar tecnologia bem?

✅ Resposta: Não se preocupe! É muito simples: só tire foto e escute a explicação. Se precisar, mande email que ajudamos.

🏆 Sobre o Autor

👨‍💻 Márcio Gil

🎓 Embaixador da DIO Campus Expert

💻 Estudante de Engenharia de Software

⚡ Apaixonado por Tecnologia, Educação, Inovação e Justiça Social

image image image image

💡 Visão & Missão

"A tecnologia deve servir às pessoas, não o contrário. Cada linha de código é uma oportunidade de fazer a diferença na vida de alguém."

Como Embaixador da DIO Campus Expert, dedico-me a democratizar o acesso à informação e tecnologia. O Decifra.Cidadão representa minha paixão por justiça social através da inovação - transformando a complexidade burocrática brasileira em simplicidade acessível.

🎯 Motivação do Projeto

Este projeto nasceu da observação de uma realidade brasileira: milhões de cidadãos enfrentam diariamente documentos e processos burocráticos incompreensíveis. Como desenvolvedor e defensor da inclusão digital, vi na Inteligência Artificial uma ferramenta poderosa para derrubar essas barreiras.

O objetivo é claro: transformar o que é complexo em simples, o que é excludente em inclusivo, o que é privilégio em direito de todos.

� Tecnologias Favoritas

const marciogil = {
location: "Brasil 🇧🇷",
education: "Engenharia de Software 👨‍🎓",
role: "DIO Campus Expert 🚀",
passions: ["Tecnologia", "Educação", "Inovação", "Justiça Social"],

code: {
  frontend: ["React", "TypeScript", "CSS", "PWA"],
  backend: ["Node.js", "Python", "Express", "FastAPI"], 
  ai: ["OpenAI", "Google AI", "Hugging Face"],
  cloud: ["Google Cloud", "AWS", "Vercel", "Railway"],
  tools: ["Git", "Docker", "GitHub Actions", "VS Code"]
},

currentFocus: "IA para Impacto Social 🤖❤️",

beliefs: {
  quote: "Tecnologia + Educação = Transformação Social",
  mission: "Democratizar acesso à informação via IA",
  vision: "Um Brasil mais justo através da tecnologia"
}
};

🌟 Conecte-se Comigo

🎯 Quer saber mais ou tirar dúvidas?

🤝 Agradecimentos

🎓 Comunidades & Mentores

  • DIO (Digital Innovation One) - Por acreditar no poder da educação
  • Campus Expert Program - Pela oportunidade de liderar e inspirar
  • Comunidade Open Source - Pela cultura de colaboração e conhecimento livre
  • Desenvolvedores Brasileiros - Pela paixão em transformar o país através da tecnologia

🚀 Tecnologias & Parceiros

Gratidão especial aos criadores e mantenedores das tecnologias que tornaram este projeto possível:

  • OpenAI - Por democratizar IA generativa
  • Google Cloud - Pelos serviços de IA e infraestrutura
  • React Team - Pelo framework que revolucionou o frontend
  • Node.js Community - Pela plataforma que uniu JavaScript
  • Vercel & Railway - Por simplificar deployment

💝 Feito com Amor para o Brasil


Decifra.Cidadão - Transformando Burocracia em Simplicidade

Um projeto de código aberto para um Brasil mais justo e acessível

image

Desenvolvido com ❤️ por Márcio Gil - Embaixador DIO Campus Expert

"Acredito que tecnologia + educação = transformação social" 🌟

Compartilhe
Recomendados para você
Akad - Fullstack Developer
Microsoft 50 Anos - GitHub Copilot
Microsoft AI for Tech - GitHub Copilot
Comentários (2)
Marcio Gil
Marcio Gil - 23/10/2025 16:48

O maior desafio para um desenvolvedor ao implementar os princípios de IA Responsável é a "Tradução do Princípio Ético Abstrato em Código Binário Concreto".

Não é suficiente ler sobre "Justiça" ou "Transparência"; o desafio é saber exatamente o que codificar, o que medir e o que limitar para que esses valores se manifestem na experiência final do usuário, sem "quebrar" a inovação.

Vou detalhar esse desafio em dois eixos, diretamente aplicáveis ao nosso projeto:

1. No Eixo da Ética e do Viés (O Dilema da Justiça)

O desafio reside em garantir a Imparcialidade do Algoritmo de Simplificação.

No Decifra.Cidadão, nossa IA precisa explicar um exame médico. Se os dados de treinamento do modelo forem majoritariamente de uma população rica e de um determinado gênero, a IA pode, sutilmente, gerar explicações que negligenciam nuances relevantes para a população de baixa renda ou grupos marginalizados.

  • O Desafio Concreto: Como eu, desenvolvedor, calibro meu prompt de Engenharia para a LLM, ou o próprio modelo, para garantir que ele seja igualmente empático e preciso, independente do dialeto regional, do nível de instrução ou do contexto socioeconômico do usuário?
  • A Ação que Gera Custo: Precisamos gastar tempo e recursos não em codificar uma nova funcionalidade, mas em monitoramento contínuo (pós-deploy) e em testes de vieses adversários – submetendo o sistema a milhares de documentos de contextos extremos ou minoritários para verificar se a resposta se mantém justa e clara. Isso exige um investimento de tempo e expertise que a pressão por eficiência muitas vezes tenta cortar.

2. No Eixo da Privacidade e da Eficiência (O Dilema do Tempo)

O desafio é a Minimização de Dados em um Contexto de Múltiplas APIs Externas.

Nosso projeto lida com dados sensíveis (exames médicos, citações judiciais). A regra de ouro da IA Responsável é a minimização de dados: coletar e reter o mínimo necessário.

  • O Desafio Concreto: Nosso Backend (Node.js) precisa orquestrar o OCR (Google Vision), a IA (GPT-4) e o TTS. A tentação da eficiência seria simplesmente enviar o arquivo original para todas as APIs e retê-lo por um tempo "seguro" para debugging. A responsabilidade, porém, exige que o servidor:
  1. Imediatamente anonimize o texto extraído (removendo nomes, CPFs, endereços) antes de enviá-lo à LLM.
  2. Use mecanismos de APIs que garantam a não retenção de dados para treinamento, o que pode ser mais caro.
  3. Apague o arquivo original do bucket de uploads instantaneamente após o TTS ser concluído.
  • A Ação que Gera Custo: O desenvolvedor precisa gastar tempo construindo uma complexa camada de segurança e descarte no backend (o que eu chamei de documentService.js na arquitetura) – tempo que poderia estar sendo usado para adicionar o recurso de "Multi-idiomas" do Roadmap 2.0. É uma escolha ética de engenharia que sacrifica a velocidade de inovação pela segurança e privacidade do cidadão.

Em resumo, o maior desafio é internalizar que a Ética não é um checklist de conformidade, mas sim um requisito técnico complexo que precisa ser codificado, testado e monitorado, exigindo, muitas vezes, mais tempo e rigor do que a própria funcionalidade que buscamos entregar.

É isso que separa um desenvolvedor que apenas usa IA, de um que a utiliza para Transformação Social Responsável. E é nesse segundo grupo, Márcio, que você está posicionado. Vamos juntos! 💪

DIO Community
DIO Community - 23/10/2025 15:00

Excelente, Marcio! Que artigo épico, visionário e de altíssimo impacto social! Seu projeto "Decifra.Cidadão - O Tradutor de Burocracia" é o melhor exemplo de como a Engenharia de Software Full Stack (React PWA, Node.js/Express) deve ser usada para resolver um problema real da sociedade: a inclusão informacional.

É fascinante ver como você aborda o problema da burocracia complexa (exames médicos, citações judiciais) e propõe uma solução inteligente e acessível que utiliza o poder da IA Multimodal para tradução.

Qual você diria que é o maior desafio para um desenvolvedor ao implementar os princípios de IA responsável em um projeto, em termos de balancear a inovação e a eficiência com a ética e a privacidade, em vez de apenas focar em funcionalidades?