Uma solução empresarial de automação que recebe contratos corporativos, valida CNPJ, vigência, valores e duplicidade via API REST em tempo real, cadastra no ERP legado com seletores resilientes e consolida telemetria operacional na Torre de Controle.
🌐 Acesse a demonstração interativa ao vivo: ContractOps AI — Cadastramento Inteligente de Contratos
O projeto representa uma esteira crítica de Gestão e Cadastramento de Contratos Corporativos (Suprimentos, Compras e Contas a Pagar). O processo manual de recepção de documentos, conferência cadastral e digitação no ERP legado — que demandava em média 45 minutos por contrato — é executado de forma totalmente autônoma pelo robô em 23 segundos (-98,4% no tempo de ciclo).
| Entrada | Processamento | Resultado |
|---|---|---|
| 📄 Contratos em PDF / Propostas | 🤖 UiPath REFramework + Regras de Negócio | ✅ Contrato Registrado no ERP |
| 🏢 Base de Fornecedores Homologados | ⚡ Validação REST FastAPI em Tempo Real | 🛡️ Bloqueio Preventivo de Compliance |
| 📬 Fila Orchestrator / Webhook | 🖥️ Digitação com Seletores Resilientes | 📊 Telemetria na Torre de Controle |
Importante: A solução conta com uma aplicação web completa integrando Landing Page institucional, Simulador Visual Interativo com preenchimento em tempo real do ERP, Portal ERP Legado para o robô atuar e Torre de Controle Executiva (Control Tower) com KPIs de SLA e AHT. A automação real está nos workflows UiPath Studio, iniciando pelo
Main.xaml.
Acesse a demonstração interativa online publicada no Vercel:
👉 ContractOps AI — Cadastramento Inteligente de Contratos
A aplicação web disponibiliza uma experiência completa antes e depois da automação:
- Landing Page Institucional: Apresentação da solução com design system All-Black (Linear/Vercel) e métricas-chave;
- Simulador Visual Passo a Passo: Permite selecionar diferentes propostas de contratos, visualizar cada etapa da automação, inspecionar a validação do CNPJ e assistir à digitação robótica simulada no formulário do ERP em tempo real;
- Torre de Controle (Control Tower Dashboard): Visão executiva com indicadores de SLA, TMA, horas de trabalho economizadas, gráficos de throughput temporal e distribuição de desfechos operacionais;
- Portal ERP Legado: Sistema web simulando o ambiente corporativo com suporte a injeção de falhas (modo de indisponibilidade 503) e seletores semânticos resilientes.
Para rodar o ambiente completo de desenvolvimento local com o servidor Flask e banco de dados:
# Iniciar a aplicação web integrada:
python webapp/app.pyEm seguida, acesse http://localhost:5000 no seu navegador.
flowchart LR
A[📄 Contrato Recebido] --> B[🤖 UiPath REFramework]
B --> C[⚡ Validação REST API]
C --> D{🛡️ Regras Válidas?}
D -->|Sim| E[🖥️ Digitação no ERP Legado]
D -->|Não| F[⚠️ Business Exception]
E --> G[✅ PROCESSED]
F --> H[📋 Incidente Registrado]
G --> I[(📊 Banco de Dados & Auditoria)]
H --> I
I --> J[📈 Torre de Controle Control Tower]
| Verificação | Critério | Ação quando viola regra |
|---|---|---|
| Formato e Extração | Leitura de metadados do documento | Desvio para triagem / exceção técnica |
| Duplicidade | Contrato já registrado na base | Rejeição imediata (DUPLICATE_CONTRACT) |
| Homologação | Fornecedor ativo na base corporativa | Bloqueio preventivo (VENDOR_NOT_FOUND) |
| Compliance | Ausência de restrições cadastrais | Bloqueio de compliance (VENDOR_BLOCKED) |
| Vigência | Término posterior à data de início | Rejeição de regra (INVALID_DATE_RANGE) |
| Valor Financeiro | Montante estritamente positivo | Rejeição de regra (INVALID_CONTRACT_VALUE) |
| Todas as regras válidas | Validação completa pela API REST | Cadastro automático no ERP legado (PROCESSED) |
| Componente | Tecnologia | Responsabilidade |
|---|---|---|
Main.xaml |
UiPath Studio | Máquina de estados REFramework (Init, Get, Process, End) |
InvokeApi.xaml |
UiPath (HttpClient) | Integração REST com autenticação e telemetria |
RegisterContract.xaml |
UiPath (UI Automation) | Digitação resiliente dos campos no formulário ERP |
api/app/main.py |
FastAPI + Pydantic | API corporativa com 26 endpoints e validação de regras |
webapp/app.py |
Flask + Jinja2 + Chart.js | Landing page, simulador interativo, ERP legado e Torre de Controle |
tests/ |
pytest (Python) | Suíte com 26 testes automatizados de backend e interface |
| Métrica de Negócio | Processo Manual (AS-IS) | Automação ContractOps AI (TO-BE) | Impacto / Ganho Obtido |
|---|---|---|---|
| Tempo Médio por Contrato (TMA) | 45 minutos | 23 segundos | -98,4% de tempo de ciclo |
| Taxa de Erro de Digitação | ~8,5% | 0,0% (Validação via API) | Eliminação total de retrabalho |
| Aderência a SLAs Contratuais | 72,0% | 99,2% | +27,2 pontos percentuais |
| Rastreabilidade e Compliance | Planilhas e e-mails dispersos | Trilha imutável em banco relacional | 100% de auditabilidade |
| Detecção de Renovação Automática | Manual / Amostral | 100% extraído e parametrizado | Mitigação de passivos jurídicos |
A máquina de estados implementada em rpa/ContractOps/Main.xaml segue rigorosamente a arquitetura empresarial padrão UiPath, composta por 4 estados e 10 transições:
stateDiagram-v2
[*] --> Inicializacao : Início da Execução
state Inicializacao {
InitAllSettings --> CarregarConfig
CarregarConfig --> InitAllApplications
InitAllApplications --> TestarConexoes
}
Inicializacao --> ObterTransacao : Sucesso (SystemException Is Nothing)
Inicializacao --> FinalizarProcesso : Falha Fatal de Inicialização
state ObterTransacao {
ConsultarFilaOrchestrator --> VerificarItem
}
ObterTransacao --> ProcessarTransacao : Item Disponível (New Transaction)
ObterTransacao --> FinalizarProcesso : Fila Vazia (No Data)
ObterTransacao --> FinalizarProcesso : Erro Crítico na Fila
state ProcessarTransacao {
ValidarRegras --> ValidacaoGate
state ValidacaoGate <<choice>>
ValidacaoGate --> RegistrarERP : IsValid == True
ValidacaoGate --> ExcecaoNegocio : IsValid == False (4xx)
RegistrarERP --> AtualizarAuditoriaSucesso
}
ProcessarTransacao --> ObterTransacao : Sucesso (Incrementa TxnNumber, Limpa TxnID)
ProcessarTransacao --> ObterTransacao : Exceção de Negócio (Sem Retry, Despacha Incidente)
ProcessarTransacao --> Inicializacao : Exceção de Sistema (Retry < MaxRetries, Preserva TxnID, Executa KillProcess)
ProcessarTransacao --> FinalizarProcesso : Exceção de Sistema (Retry >= MaxRetries Excedido)
state FinalizarProcesso {
CloseAllApplications --> FecharSessoes
FecharSessoes --> GerarRelatorioFinal
}
FinalizarProcesso --> [*] : Término Gracioso
O ecossistema implementa 8 cenários de teste automatizados cobrindo tanto o caminho feliz quanto cenários de estresse, falha e validação de regras:
| Caso de Teste | Contrato / Referência | Condição de Entrada | Regra Validada | Resultado Esperado do Robô |
|---|---|---|---|---|
| TC-001 | CTR-2026-0001 |
Fornecedor Ativo, R$ 145.000, Datas válidas | Caminho Feliz Padrão | Valida na API, digita no ERP legado e grava PROCESSED. |
| TC-002 | CTR-2026-0001 |
Contrato repetido com mesmo ID | DUPLICATE_CONTRACT |
BusinessRuleException imediata, sem retry, gera incidente. |
| TC-003 | CTR-2026-0005 |
CNPJ não cadastrado no banco | VENDOR_NOT_FOUND |
BusinessRuleException, recusa digitação no ERP. |
| TC-004 | CTR-2026-0006 |
Data Término anterior à Data Início | INVALID_DATE_RANGE |
BusinessRuleException disparada pelo validador. |
| TC-005 | CTR-2026-0007 |
Valor negativo (-R$ 50.000) | INVALID_CONTRACT_VALUE |
BusinessRuleException, bloqueio antes da digitação. |
| TC-006 | CTR-2026-9999 |
Fornecedor com restrição judicial | VENDOR_BLOCKED |
Bloqueio preventivo de compliance / compras. |
| TC-007 | CTR-2026-0008 |
Documento com OCR borrado (Conf. 0.62) | Limiar de Confiança < 0.85 | Desvia para o UiPath Action Center (Human-in-the-Loop). |
| TC-008 | CTR-2026-0002 |
Timeout de rede / Erro 503 no ERP | Falha Técnica Transitória | Lança SystemException, tira screenshot, fecha browser e retenta. |
contractops-ai/
├── api/ # Microsserviço Backend em FastAPI
│ ├── app/
│ │ ├── api/v1/ # Endpoints REST (/contracts, /vendors, /incidents, /transactions)
│ │ ├── core/ # Configurações, conexão com banco e logging estruturado
│ │ ├── models/ # Entidades relacionais do SQLAlchemy (PostgreSQL / SQLite)
│ │ ├── schemas/ # Esquemas Pydantic tipados com validações estritas
│ │ └── services/ # Regras de negócio, cálculo de KPIs e serviços de IA
│ └── tests/ # Testes unitários e de integração (pytest com 93% de cobertura)
├── rpa/ # Projeto UiPath Studio (REFramework Modern Windows)
│ └── ContractOps/
│ ├── Components/ # Módulos XAML atômicos (InvokeApi, RegisterContract, etc.)
│ ├── Config/ # Config.json (Parâmetros, URLs e limiares operacionais)
│ ├── Framework/ # Máquina de estados REFramework (Init, Process, Retry, Kill)
│ ├── Main.xaml # State Machine principal com 4 estados e 10 transições
│ └── project.json # Metadados e dependências UiPath 2024.10
├── webapp/ # Portal Web do ERP Legado Corporativo
│ ├── static/css/theme.css # Design system moderno em tons de ardósia suave
│ ├── templates/ # Telas Jinja2 em português (Dashboard com Chart.js, etc.)
│ └── app.py # Servidor da aplicação web com simulação de queda (503)
├── scripts/ # Utilitários de simulação e validação
│ ├── rpa_simulator.py # Simulador ponta a ponta do robô REFramework via terminal
│ └── validate_uipath_project.py # Validador de integridade sintática e arquitetural de XAMLs
└── tests/ # Testes automatizados dos 8 cenários de RPA
- Python 3.12 ou 3.13 instalado
- Git configurado
git clone https://github.com/geovatatsuga/contractops-ai.git
cd contractops-ai
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
pip install -r api/requirements.txt
pip install pytest pytest-cov httpx ruffTerminal 1 — API Backend FastAPI:
uvicorn api.app.main:app --port 8000- Documentação interativa Swagger: http://localhost:8000/docs
- Métricas operacionais da Torre de Controle: http://localhost:8000/api/metrics
Terminal 2 — Portal Web do ERP Legado Corporativo:
python webapp/app.py- Acesse a interface web: http://localhost:5000
- Credenciais de demonstração pública: Usuário
admin_rpa| SenhaDemoEnterprise2026!
# Executar a suíte de 26 testes automatizados com cobertura:
pytest -v
# Validar a integridade estrutural das 24 árvores XAML do UiPath:
python scripts/validate_uipath_project.py
# Rodar a simulação completa da máquina de estados do robô:
python scripts/rpa_simulator.py- Sem Credenciais de Produção (Apenas Credenciais de Demonstração): Nenhuma senha de ambiente produtivo, token privado ou string de conexão real está exposta no repositório. As credenciais listadas no guia destinam-se unicamente ao sandbox local de simulação e testes.
- Gestão de Segredos: Padrão UiPath Credential Assets e variáveis de ambiente locais (
.envno.gitignore). - Dados Sintéticos: Todos os nomes de empresas (NovaCore Tecnologia Ltda, Atlas Cloud), CNPJs e contratos são fictícios.
- Princípio do Menor Privilégio: Identidade de serviço dedicada (
robot_contractops_svc) para execução das tarefas automatizadas.
Jeová Anderson
Dados • Automação • Inteligência Artificial
Profissional com formação em Ciência de Dados e sólida experiência em Python, SQL, Business Intelligence, Power BI, PySpark, Azure Databricks, APIs e automação de processos. Histórico prático em automação de conciliação e gestão de contratos com Python e arquiteturas de dados, expandindo a atuação para soluções completas de RPA corporativo com UiPath e Orchestrator.
- GitHub: @geovatatsuga
- Portfólio: geovatatsuga.github.io
Projeto demonstrativo com dados totalmente sintéticos.
Desenvolvido para estudo e apresentação de automação corporativa de processos com UiPath REFramework e FastAPI.