Requisitos — Busca Geral do OLA

Demanda para recuperação de páginas, imagens e artefatos publicados no OLA sem depender inicialmente de back-end.

1. Finalidade da página

Esta página registra os requisitos da demanda Busca Geral do OLA. A necessidade central é permitir que o OLA recupere páginas, imagens e artefatos publicados sem exigir o cadastramento manual de cada item.

2. Problema a resolver

À medida que o OLA cresce, torna-se difícil localizar rapidamente páginas, imagens, infográficos, modelos, demandas, entregas e outros artefatos distribuídos em várias pastas.

A busca desejada deve funcionar como uma espécie de busca interna do OLA, mesmo sem back-end, usando um índice estático gerado automaticamente.

3. Solução prevista

A solução inicial será composta por três elementos:

raiz/
├── busca.html
├── busca_index.json
└── gerar_busca_index.py

O arquivo gerar_busca_index.py será executado no Mac para varrer as pastas do OLA e gerar o arquivo busca_index.json. A página busca.html lerá esse índice e apresentará os resultados no navegador.

4. Requisitos funcionais

Código Requisito Descrição Prioridade
RF01Buscar páginas HTMLO sistema deve localizar arquivos .html e .htm publicados no OLA.Alta
RF02Buscar imagensO sistema deve localizar imagens .png, .jpg, .jpeg, .svg e .webp.Alta
RF03Abrir resultadosTodo resultado encontrado deve possuir link clicável para abrir a página, imagem ou arquivo.Alta
RF04Exibir miniatura de imagensQuando o resultado for imagem, a busca deve apresentar uma miniatura clicável.Alta
RF05Filtrar por áreaA busca deve permitir filtrar por áreas como fundamentos, domínios, demandas, entregas, metodologia, governança e experimentos.Média
RF06Filtrar por formatoA busca deve permitir distinguir páginas, imagens, PDFs e outros arquivos aceitos.Média
RF07Buscar por nome e caminhoA busca deve considerar o nome do arquivo, o caminho da pasta e palavras derivadas desses elementos.Alta
RF08Gerar índice automaticamenteO script deve varrer as pastas do OLA e gerar automaticamente o arquivo busca_index.json.Alta
RF09Ignorar arquivos desnecessáriosO gerador deve ignorar arquivos temporários, ocultos, backups e pastas que não devem aparecer na busca.Média
RF10Exibir quantidade de resultadosA página deve informar quantos resultados foram encontrados para a busca realizada.Média

5. Requisitos não funcionais

Código Requisito Descrição Prioridade
RNF01Funcionar sem back-endA primeira versão deve funcionar apenas com arquivos estáticos: HTML, CSS, JavaScript e JSON.Alta
RNF02Ser compatível com HostingerA solução deve funcionar no ambiente atual de publicação do OLA.Alta
RNF03Ser responsivaA página de busca deve funcionar em celular, tablet, desktop e TV.Alta
RNF04Ter boa legibilidadeResultados, caminhos e miniaturas devem ser apresentados de modo claro.Alta
RNF05Evitar cadastro manualA manutenção deve ser baseada na geração automática do índice, e não no cadastramento item a item.Alta
RNF06Ser simples de atualizarO processo de atualização deve consistir em rodar o script e publicar o JSON atualizado.Alta
RNF07Preservar segurançaA busca não deve expor arquivos privados, sensíveis ou fora do escopo público do OLA.Alta

6. Tipos de arquivo contemplados

.html
.htm
.png
.jpg
.jpeg
.svg
.webp
.pdf

Em versões futuras, poderão ser avaliados outros formatos, como .json, .txt e .md, caso façam sentido para a recuperação de conhecimento.

7. Pastas inicialmente consideradas

fundamentos/
dominios/
demandas/
entregas/
metodologia/
governanca/
experimentos/
lab/
arquitetura/
processos/
conteudo/
conhecimento/
ferramentas/
referencias/
documentacao/

A raiz também deve ser considerada, pois nela ficarão páginas como index.html, portal.html, ola.html, mapa_site.html e busca.html.

8. Arquivos e pastas a ignorar

O gerador do índice deve evitar incluir arquivos que não são úteis para o leitor.

.DS_Store
__pycache__/
.git/
.backup/
backup/
rascunhos/
arquivos_temporarios/
node_modules/
*.tmp
*.bak

9. Requisitos de interface

  • Campo de busca principal.
  • Filtro por área.
  • Filtro por formato.
  • Contador de resultados.
  • Cards de resultado.
  • Link clicável para abrir o arquivo.
  • Miniatura clicável para imagens.
  • Botão para limpar busca.
  • Botão para voltar ao topo.
  • Alternância entre tema claro e escuro.

10. Critérios de aceitação

Código Critério Exemplo de teste
CA01Encontrar uma página HTML existenteBuscar por sistema deve retornar páginas do domínio Sistema.
CA02Encontrar uma imagem existenteBuscar por organismo vivo deve retornar a imagem correspondente, se ela existir no índice.
CA03Abrir resultadoClicar no título, caminho ou miniatura deve abrir o arquivo em nova aba.
CA04Funcionar sem internet externaA página deve funcionar sem depender de Google, banco de dados ou API externa.
CA05Atualizar resultados após novo índiceApós rodar o script e publicar novo busca_index.json, novos arquivos devem aparecer na busca.

11. Fora do escopo inicial

  • Busca em tempo real no servidor.
  • Banco de dados.
  • Login de usuário.
  • Indexação semântica com IA.
  • Busca dentro do conteúdo integral de PDFs.
  • Controle de permissões por usuário.

12. Evoluções futuras

  • Extrair o título real das páginas HTML a partir da tag <title>.
  • Extrair subtítulos e metadados das páginas.
  • Permitir busca por conteúdo textual das páginas.
  • Gerar pesos por área, tipo de página e importância.
  • Adicionar busca por tags do OLA.
  • Separar resultados por páginas, imagens, PDFs e demandas/entregas.
  • Transformar o índice em uma base de conhecimento navegável.

13. Síntese dos requisitos

A primeira versão da Busca Geral do OLA deve ser simples, estática, responsiva e gerada automaticamente. Seu objetivo principal é permitir que qualquer página, imagem ou artefato publicado possa ser encontrado e aberto sem cadastro manual.