Skip to content
Commit e51807ea authored by Igor Matheus's avatar Igor Matheus
Browse files

Bolão: backend NestJS, app Flutter e o processo que os produziu



Produto completo de bolão de futebol, construído do PRD ao device: 35 das 38
stories fechadas, 312 de 318 tasks, três PRDs concluídos (Identificação e
acesso, Criação e convite, Ciclo de vida do bolão).

Backend (NestJS 11 + Prisma 7 + Postgres)
- Palpite com prazo decidido pelo relógio do servidor, sigilo até o fim do jogo,
  apuração 10/5/3 lida da configuração do bolão, ranking com desempate por
  critério configurável, extrato explicando cada ponto.
- Ciclo de vida: encerramento normal e antecipado, campeão derivado na leitura
  (nunca congelado), arquivamento reversível, recriação de temporada herdando
  regras e galera.
- Fonte oficial de calendário e placar via porta `FonteDeDados`: adaptador falso
  para desenvolvimento e `FootballDataAdapter` (football-data.org v4) para
  produção. O limite de 10 req/min desenhou o adaptador — uma requisição por
  temporada, cache de 5 min, cota recusada antes de ser gasta.
- 71 testes de unidade e 216 e2e, em banco próprio (`bolao_test`).

App (Flutter + Riverpod sem codegen)
- Palpite offline com rascunho local e fila de envio, contagem de prazo pelo
  horário do servidor, ranking e extrato, convite por link e por código,
  administração de participantes.
- 235 testes de widget e unidade; identidade visual da Raro (#615FF6) com os
  contrastes medidos e travados por teste.

Documentação (docs/)
- 5 PRDs, 38 stories com tasks por disciplina, 27 planos de caso de teste com
  execução registrada, e `CONTROLE.md` como fonte única de progresso —
  verificado por `docs/validar.sh`.

As 6 tasks abertas dependem de credencial do FCM e de hospedagem que não
hiberne, não de código.

Co-Authored-By: default avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
parent 5a0abfed
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment