Automation Bot — Plataforma Estatal de Formação
2024-
Automação Python com Playwright para operações numa plataforma estatal de formação profissional. RPA browser-based, Page Object Model, seletores YAML, CLI Typer e GUI CustomTkinter — 6 fluxos em produção e 191 testes.
Sistema de automação Python e RPA browser-based para operações diárias numa plataforma estatal de gestão de formação profissional. Desenvolvido por Jorge Marques com Playwright, arquitetura em camadas, Page Object Model e seletores YAML externos — pensado para fluxos repetitivos, auditáveis e resilientes a mudanças de UI.
Contexto
Automação de operações numa plataforma estatal de gestão de formação profissional. O sistema elimina fluxos manuais repetitivos e propensos a erro, substituindo-os por automações estáveis, testáveis e auditáveis que correm em produção diariamente.
Arquitetura
```
CLI (Typer) / GUI (CustomTkinter)
↓
Runtime (settings.toml, credenciais cifradas, perfis, ExecutionContext)
↓
Flow Registry (FlowSpec: nome, classe, capabilities, inputkind)
↓
Flows (FluxoBase → 6 fluxos concretos)
↓
Steps (subfluxos reutilizáveis) + Pages (POM + YAML selectors)
↓
Services (Excel, PDF, email, reporting) + Core (browser, DB, logging)
```
Cada camada tem responsabilidade única. As Pages isolam os seletores de UI em ficheiros YAML externos — mudanças no front-end da plataforma implicam apenas atualizar YAML, sem tocar no código dos fluxos.
Fluxos em produção (6)
- Extração de dados de formandos — scraping de competências e documentação via AJAX e PDF
- Extração de modalidades de formação — inventariação de ações e cursos por formando
- Investigação de formandos — pesquisa por nome e data de nascimento, extração de modalidades
- Ativação de percursos formativos — ativação de passaportes, geração de documentos, envio de emails automáticos
- Emissão de certificados — emissão em massa a partir de ficheiros Excel
- Atualização de registos — atualização de campos (contactos, morada) e sincronização com modelo interno
Métricas (Abril 2026)
- 191 testes passados, 3 skipped
- 40+ ficheiros de teste
- 13 classes Page (Page Object Model)
- 10 ficheiros YAML de seletores
- 90 módulos Python
- 6 fluxos registados no FlowRegistry
Decisões de design
A arquitetura permite implementar um novo fluxo em minutos quando o problema está bem definido. O investimento em Pages, Steps e FlowRegistry converte-se em alavancagem real: cada novo fluxo reutiliza infraestrutura existente em vez de duplicar lógica.
Credenciais cifradas com Fernet AES armazenadas em SQLite local. Master password resolúvel via OS keychain, prompt interativo ou settings. Zero variáveis de ambiente fora do módulo de compatibilidade legacy.
Stack
Python 3.11, Playwright (Chromium), Typer, Rich, CustomTkinter, YAML selectors, Page Object Model, SQLite, Fernet AES, keyring, pandas, pypdf, tenacity
Software · Python · playwright · automação · automacao · RPA · GUI · CLI · testing · page-object-model · Programação · programacao · Digital · Tecnologia