Skip to content

Repository files navigation

RPA Registry

O que é

RPA Registry é uma aplicação web para registro, acompanhamento e mensuração de projetos de automação RPA. O sistema oferece interface web e API REST para cadastro de automações, versionamento de alterações, cálculo de ganhos operacionais e geração de relatórios.

Para quem é útil

  • Equipes de automação que precisam rastrear iniciativas e ganhos de produtividade.
  • Times de governança que precisam de histórico de mudanças e auditoria de projetos.
  • Profissionais que querem transformar dados de automação em indicadores gerenciais.

Regras de negócio

  • Cada projeto possui um identificador lógico (project_uuid) e várias versões históricas.
  • Atualizações e exclusões são registradas como novas versões em project_versions.
  • A exclusão é lógica: o status muda para inativo, mas o histórico permanece.
  • O cálculo de ganho operacional é:
horas_antes_total = horas_antes × pessoas × frequência
horas_agora_total = horas_agora × pessoas × frequência
economia = horas_antes_total - horas_agora_total
percentual = (economia / horas_antes_total) × 100
  • A interface e a API exibem apenas a última versão de cada projeto como estado atual.

Arquitetura e responsabilidades

  • main.py
    • Inicializa o Flask, registra a API, inicia o scheduler e cria diretórios de suporte.
  • api/
    • Expõe a API REST v1 com autenticação Bearer Token, valida payloads, aplica filtros, paginação e formata respostas JSON.
  • services/db_service.py
    • Gerencia conexões MySQL, insere projetos e versões, e consulta dados.
  • services/report_service.py
    • Suporta geração de relatórios semanais e integração com o scheduler.
  • jobs/
    • Configura e executa rotinas agendadas com APScheduler.
  • templates/
    • Contém páginas HTML para dashboard, formulário e detalhes do projeto.
  • database/init/
    • Contém scripts SQL para criação do esquema e dados de exemplo.
  • api_examples/
    • Contém exemplos de payloads JSON para testes manuais da API.
  • legacy/
    • Contém código histórico de migração CSV que não faz parte do fluxo principal.

API

  • Base URL:

    • http://localhost:5000/api/v1
  • Endpoints:

    • GET /api/v1/health
      • Verifica disponibilidade da API.
    • GET /api/v1/projects
      • Lista projetos com filtros (status, client_name, technology) e paginação (page, limit).
    • GET /api/v1/projects/<project_id>
      • Consulta um projeto pelo identificador lógico.
    • POST /api/v1/projects
      • Cria novo projeto.
    • PATCH /api/v1/projects/<project_id>
      • Atualiza parcialmente um projeto existente.
    • DELETE /api/v1/projects/<project_id>
      • Inativa logicamente um projeto.
  • Autenticação:

    • Todos os endpoints exceto /health exigem header:
      • Authorization: Bearer <token>
    • O token esperado é lido da variável de ambiente API_TOKEN.

Instalação

Pré-requisitos

  • Docker Desktop instalado e em execução
  • Git instalado

Passos

git clone https://github.com/zxkaren/automation-registry.git
cd automation-registry
cp .env.example .env

Ajuste as variáveis em .env conforme necessário.

Executando com Docker

docker compose up --build

A aplicação ficará disponível em:

http://localhost:5000

MySQL

  • O docker-compose.yml mapeia a porta MySQL local:
    • 127.0.0.1:3307:3306
  • Dentro do container da aplicação, o host MySQL é mysql.
  • Para conexões locais fora do container, use:
    • DB_HOST=127.0.0.1
    • DB_PORT=3307

Variáveis de ambiente esperadas

  • APP_HOST
  • APP_PORT
  • APP_DEBUG
  • SECRET_KEY
  • API_TOKEN
  • DB_HOST
  • DB_PORT
  • DB_NAME
  • DB_USER
  • DB_PASSWORD
  • ANNUAL_HOURS_TARGET
  • DEFAULT_STATUS_ACTIVE
  • DEFAULT_STATUS_INACTIVE
  • DEFAULT_REGISTERED_BY
  • HOURS_BEFORE_MULTIPLIER
  • HOURS_NOW_MULTIPLIER
  • PEOPLE_MULTIPLIER
  • FREQUENCY_MULTIPLIER
  • REPORT_WEEKDAY
  • REPORT_HOUR
  • REPORT_MINUTE
  • TIMEZONE

Testes

Instale as dependências de desenvolvimento:

pip install -r requirements-dev.txt

Execute os testes:

pytest tests

Segurança

  • O arquivo .env não deve ser versionado.
  • O API_TOKEN deve ser mantido privado e configurado apenas em .env.
  • Endpoints protegidos exigem Authorization: Bearer <token>.
  • O Docker Compose expõe apenas serviços locais; não exponha o MySQL publicamente.
  • Não armazene credenciais reais em exemplos de payloads ou arquivos versionados.

Legado

O diretório legacy/ contém código histórico de migração CSV:

  • legacy/migrate_csv_to_mysql.py — script de migração de CSV para MySQL
  • legacy/csv_service.py — utilitários de leitura e escrita em CSV

Esses arquivos são mantidos apenas para referência e não são necessários para o funcionamento normal da aplicação.

Tecnologias utilizadas

  • Python
  • Flask
  • MySQL
  • Docker
  • Docker Compose
  • APScheduler
  • python-decouple
  • Jinja Templates
  • HTML
  • CSS

About

Sistema de cadastro de RPAs para acompanhamento e reporte aos stakeholders com base em indicadores.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages