Skip to content

Tecnologias e Dependências

Esta página documenta o ecossistema tecnológico, os gerenciadores de ambiente e as dependências principais que compõem o Open Journals Data e o seu website de documentação.

Tecnologia Versão / Padrão Finalidade no Projeto
Python 3.12+ Linguagem principal do coletor e processamento de dados
uv Atualizado Gerenciador unificado de dependências, empacotamento e ambientes virtuais
Node.js 22+ Ambiente de execução para compilação do website e documentação
npm Integrado ao Node Gerenciador de pacotes do ecossistema JavaScript do website

O processo de extração combina ferramentas para lidar com páginas estáticas e renderizadas dinamicamente via JavaScript:

Framework principal de raspagem utilizado para orquestrar as requisições, gerenciar filas de URLs, aplicar pipelines de limpeza de metadados e estruturar os spiders de cada periódico.

Biblioteca de automação de navegadores integrada ao Scrapy. É utilizada para acessar periódicos da plataforma SciELO e portais que exigem execução de JavaScript para renderização completa de metadados e botões de download de PDFs.

  • Navegador utilizado: Chromium (uv run playwright install chromium)

Banco de dados NoSQL orientado a documentos, leve e local-first.

  • Armazenamento: Grava os registros em arquivos JSON estruturados no caminho bd/<codigo_revista>/coleta_tinydb.json.
  • Isolamento: A pasta bd/ permanece fora do controle de versão (.gitignore), garantindo que grandes volumes de dados brutos não sobrecarreguem o repositório Git.

Utilizado no arquivo config/journals.json para garantir que novas revistas adicionadas possuam obrigatoriamente os metadados requeridos (acronym, url, platform e subject).


O projeto adota uma esteira rígida de testes e validações estáticas antes de cada commit e no fluxo de CI do GitHub Actions:

Framework de testes automatizados para validação de parsers, rotinas de rede e tratamento de metadados.

  • Marcação offline: Execução sem dependência de conexão externa via pytest -m "not e2e".

Linter e formatador de código Python de alta performance, substituindo Flake8, Black e isort em uma única ferramenta integrada.

Verificador estático de tipagem para garantir a integridade dos tipos anotados na pasta src/.

Gerenciador de ganchos Git que executa validações locais automáticas antes de confirmar qualquer commit:

  • Validação de formatação com Ruff
  • Verificação de tipos com Mypy
  • Verificação do padrão de mensagens com Conventional Commits

Componente Ferramenta Papel
Framework Web Astro Gerador de sites estáticos de alta performance
Tema de Documentação Starlight (@astrojs/starlight) Estruturação da documentação técnica, navegação e sumários
Motor de Busca Local Pagefind Indexação e busca textual em tempo real no website
Hospedagem e Deploy Cloudflare Pages Deploy contínuo automático a cada merge na branch main