Todos os posts
#vue #python #postgresql #docker #dados abertos #transparência

Transparência Pública: O que Aprendi Construindo o Fiscaliza Brasil

Uma reflexão sobre os desafios técnicos e humanos de criar uma plataforma de monitoramento parlamentar com dados públicos.

5 de agosto de 2026 3 min de leitura

Transparência Pública: O que Aprendi Construindo o Fiscaliza Brasil

O Fiscaliza Brasil é uma plataforma de transparência que monitora a atividade de parlamentares do Congresso Nacional usando dados abertos do governo. Foi, sem dúvida, o projeto mais desafiador que já trabalhei.

O Problema

O acesso a dados parlamentares existe, mas é fragmentado, em formatos inacessíveis para a maioria das pessoas e sem padronização em alguns casos.

A Solução Técnica

Back-end (Python + FastAPI)

Criamos crawlers que coletam e normalizam dados de diferentes fontes APIs governamentais e centralizamos os dados em uma unica api própria com padrões próprios. O backend baixa fotos, importa dados cacheados e inicia os scrapers em background.

def fetch_votacoes_ano(ano, data_dir=None):
    if data_dir is None:
        data_dir = os.path.join(DATA_DIR, "camara", "votacoes")

    os.makedirs(data_dir, exist_ok=True)

    ano_atual = datetime.now().year
    merged_path = os.path.join(data_dir, f"{ano}.json")

    # Anos passados: cache do consolidado bate direto
    if ano < ano_atual:
        cached = load_json_if_valid(merged_path)
        if cached is not None:
            return cached

    url = "https://dadosabertos.camara.leg.br/api/v2/votacoes"
    all_items = []
    all_failed = True
    ...

Front-end (Vue 3 + Vite)

Escolhemos Vue pela sua curva de aprendizado mais suave para o time e pelo excelente ecossistema de visualização de dados.

Dados (PostgreSQL)

Todos os dados são coletados e armazenados em um banco de dados centralizado de maneira automatica quadrimestralmente garantindo que a aplicação tenha sempre dados atualizados. Os dados que exibimos é uma cópia dos dados disponíveis pelas APIs oficiais e só são armazenados pelo nosso sistema para evitar inatividade do nosso sistema caso uma das APIs fique fora do ar.

Desafios

  1. Volume de dados — parlamentares tomam centenas de decisões por mês
  2. Qualidade dos dados — APIs governamentais têm inconsistências frequentes em nomes próprios e formatação de valores numéricos e datas.
  3. UX — apresentar dados complexos de forma acessível ao público geral

Conclusão

Projetos de impacto social com dados abertos são tecnicamente desafiadores, mas extremamente gratificantes. A transparência é um pilar da democracia, e a tecnologia pode ser uma aliada poderosa nesse processo.

Aparência

Paleta de Cores