Arquitetura do Querido Diário

O Querido Diário lida com diferentes desafios – descritos em Enfrentando o deserto de dados – e emprega recursos diversos para superar cada um deles, a fim de concretizar os Pilares do projeto.

Sua arquitetura é, portanto, reflexo das decisões técnicas que conectam essas duas pontas: o conjunto de soluções necessárias para enfrentar os obstáculos impostos pela disponibilização de diários oficiais e o interesse pela abertura destes dados.

Podemos resumir o fluxo do projeto para cada um dos tipos de diário oficial às etapas abaixo e compreendê-los mais detalhadamente a seguir.

  1. Coletar: obter arquivos de diários oficiais na fonte, os sites publicadores

  2. Processar: aplicar tratamentos sobre os arquivos originais obtidos

  3. Disponibilizar: permitir acesso e pesquisa nos conteúdos armazenados

[TODO]

1. Coleta de dados

Aqui, robôs raspadores são criados para, periodicamente, coletar dos sites publicadores os arquivos de diários oficiais e metadados associados a eles, como data de publicação e número da edição. Independente do tipo de diário oficial, todos eles demandam um raspador para coleta de arquivos.

  • Desenvolvimento: Python utilizando o framework Scrapy.

  • Armazenamento em produção: DO Spaces para arquivos e PostgreSQL para metadados.

  • Repositório de código: https://github.com/okfn-brasil/querido-diario

  • Agendamento de coletas:
    • Série histórica disponível no site: uma vez, ao integrar o município ao projeto.

    • Edição mais recente: todos os dias, às 18h, no horário de Brasília.

    • Mês anterior (redundância): todo dia 1º, às 20h, no horário de Brasília.

  • Saiba mais: Documentação sobre Raspadores

2. Processamento de dados

Este é o coração do Querido Diário, a etapa responsável pelas operações em texto e pela conexão entre os demais componentes da arquitetura.

Aqui, o texto puro é extraído dos diários oficiais, salvo em arquivos de formato aberto TXT junto ao arquivo original, e tem seu conteúdo e metadados indexados no motor de busca para viabilizar consultas aos textos.

Nota

Ainda que PDF Texto seja o formato de disponibilização mais comum por parte dos municípios, esta etapa é capaz de extrair texto de arquivos em formato DOC e DOCX, também.

Também é nesta etapa onde é implementada a integração de diários agregados por meio de segmentadores. Estes são instrumentos que fatiam os trechos referentes a cada município, dos vários presentes no conteúdo do arquivo, e produzem arquivos TXT individuais para cada município com os trechos.

Por fim, é realizada a filtragem temática, onde são realizadas buscas no índice de principal dos diários para então criar índices com excertos associados a temas específicos como “Tecnologias na Educação” e “Políticas Ambientais”.

Aviso

No momento, o projeto não integra casos em que o formato do arquivo é PDF Imagem pela baixa qualidade na extração de texto de imagens (OCR). Assim como diários fragmentados por limitações na modelagem do banco de dados.

3. Disponibilização de dados

API

A API Pública é a porta pela qual o acesso aos dados do projeto é facilitado. Ela conta com diversos endpoints (pontos de acesso) pelos quais diferentes dados podem ser solicitados às bases de dados de diários oficiais e de CNPJs da Receita Federal.

Backend

O Backend é responsável por ser o mecanismo intermediador entre o frontend do Querido Diário e sua API pública quando necessário. Conforme pessoas usuárias navegam o site, algumas de suas ações engatilham este mecanismo a solicitar dados à API Pública, realizar operações e entregar os resultados ao site.

Frontend

É o site oficial do Querido Diário, sua interface visual para pessoas usuárias via navegação pela Internet. Nele, fica a interface de busca de diários oficiais. O site serve também como ferramenta de difusão do projeto: registra sua história e as pessoas que fazem parte dela, além da produção de conhecimento ao redor dele como análises, reportagens e pesquisas.

Suporte

A documentação técnica oficial do projeto serve para auxiliar a compreensão de pessoas interessadas, usuárias e desenvolvedoras, registrando informações fundamentais e mais profundamente descritas sobre como o Querido Diário funciona.

Por também cumprir esse papel de “conversa entre o projeto e seus contribuidores”, no repositório de documentação fica o mapa de metas (Roadmap) do Querido Diário.

Desenho da arquitetura

[TODO]