Estrutura do Projeto
O ThesisBR adota a estrutura padronizada de engenharia de dados do ColabHD, separando o código-fonte do pacote Python, os testes automatizados e o website de documentação.
Árvore de Diretórios
Section titled “Árvore de Diretórios”thesisbr/├── .github/ # Workflows de CI/CD (testes, lint e deploy automático)├── src/│ └── thesisbr/ # Código-fonte principal do pacote Python│ ├── __init__.py # Inicialização do pacote e versão│ ├── cli.py # Interface de linha de comando construída em Typer│ ├── harvester.py # Motor de requisições e coleta do protocolo OAI-PMH│ ├── parser.py # Tratamento e extração de esquemas XML (Dublin Core)│ └── storage.py # Persistência e estruturação dos dados brutos├── tests/ # Suíte de testes com Pytest│ ├── test_cli.py # Testes dos comandos do terminal│ ├── test_harvester.py # Testes das rotinas de coleta (offline com mocks)│ └── conftest.py # Configurações e fixtures de teste├── website/ # Website de documentação pública (Astro + Starlight)│ ├── public/ # Ativos estáticos e imagens│ ├── src/│ │ └── content/│ │ └── docs/ # Manuais e páginas de documentação em Markdown│ ├── astro.config.mjs # Configuração do Starlight, temas e navegação│ └── package.json # Dependências do ecossistema Node/Astro├── pyproject.toml # Metadados do pacote Python e dependências gerenciadas por uv├── uv.lock # Trava determinística de dependências do Python├── .pre-commit-config.yaml # Configuração dos hooks de linter (Ruff, Mypy) e commit├── ROADMAP.md # Planejamento estratégico de desenvolvimento└── README.md # Apresentação geral do projeto no repositórioPrincipais Componentes
Section titled “Principais Componentes”1. Pacote Python (src/thesisbr/)
Section titled “1. Pacote Python (src/thesisbr/)”- CLI (
cli.py): Expõe os comandos de terminal (identificar,coletar) utilizando a biblioteca Typer, permitindo filtragem por conjuntos institucionais e limites de amostragem. - Módulo Harvester: Responsável por interagir com os servidores de repositórios digitais respeitando os verbos e padrões do protocolo OAI-PMH v2.0.
- Módulo Parser: Decodifica a resposta XML bruta colhida dos repositórios, normalizando campos Dublin Core (título, autor, orientador, resumo, ano e link do PDF).
2. Website (website/)
Section titled “2. Website (website/)”Construído com Astro e o tema Starlight, compila documentação estática ultrarrápida com indexação de busca local integrada via Pagefind e deploy contínuo na Cloudflare Pages.