Skip to content

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.

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ório

  • 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).

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.