Parte I — Preparar o chão
00 · Abertura: a semente
Uma semente de baobá pode passar anos na terra seca esperando a chuva. Este módulo é a espera boa: preparar o chão antes de cavar.
Como estudar
- Leia de fora para dentro. Primeiro o que a pessoa vê (o site, a CLI), depois a API, depois os serviços, por último o disco. Cada camada explica a de baixo.
- Leia com um teste aberto ao lado. A suíte em
testes/não usa pytest: cada arquivo é um script que monta uma galáxia de verdade numa pasta temporária e confere um comportamento. O docstring do topo de cada teste conta a história do bug que ele impede. É a melhor documentação do projeto. - Os comentários são longos de propósito. Quase toda decisão estranha tem um parágrafo explicando o bug real que a motivou. Antes de "simplificar" algo, leia o comentário.
- Estude em roda. No fim de cada módulo há perguntas para conversar. Código comunitário se aprende melhor em grupo.
Montar o ambiente
# backend
cd bbx-v3-back
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt && pip install -e .
sudo apt install git-annex ffmpeg poppler-utils # opcionais para mídia/sync
bbx criar-galaxia "Galáxia de Estudo" # cria mucua, território e admin
bbx api # http://127.0.0.1:8000/docs
# frontend (outro terminal)
cd bbx-v3-front
npm ci
npm run dev # http://localhost:5173
A senha do admin criado fica em ~/.baobaxia/credenciais.yaml.
Rodar os testes
bash testes/rodar_suite.sh # tudo (≈ 5 min)
python3 testes/test_merge_bbx.py # um arquivo só
Os testes não precisam de FastAPI, git-annex nem rede: testes/_fake_fastapi.py deixa importar as rotas como funções comuns, e um FakeSankofaBackend troca o git-annex por git puro. Sem faster-whisper e tesseract, quatro casos de test_enriquecimento_whisper.py falham — é esperado.
No front: npm run check (svelte-check) e npm run build.
Práticas
- Suba a API e abra
/docs. Ache três rotas que não pedem autenticação. Por que cada uma pode ser pública? - Entre com o admin (
bbx login --usuario <admin>), crie um saber (bbx publicar foto.jpg --titulo "Teste") e abra a pasta dele em~/.baobaxia/galaxias/. O que tem dentro desaber.bbx? - Rode
testes/test_quem_e_desambiguacao.pye leia o docstring. Que problema de gente de verdade ele resolve?
Para conversar
- O que muda em quem programa quando a mucua está numa escola de quilombo, sem técnico por perto, e não num data center?
