- Aug 07, 2026
-
-
Igor Matheus authored
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:Claude Opus 5 (1M context) <noreply@anthropic.com>
-
Igor Matheus authored
-