Skip to content
  1. Aug 07, 2026
    • Igor Matheus's avatar
      README da raiz: o que é o projeto, e as regras que não se negocia · 938ee639
      Igor Matheus authored
      
      
      O arquivo era o template do GitLab explicando como subir arquivos. Trocado por
      uma porta de entrada real: as três partes do monorepo, as seis regras de domínio
      que quebram a competição se forem violadas (prazo pelo servidor, sigilo até o fim
      do jogo, empate sem faixa de saldo, campeão nunca congelado, saída definitiva,
      tudo adiado) e onde ler o processo.
      
      Co-Authored-By: default avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
      938ee639
    • Igor Matheus's avatar
      Bolão: backend NestJS, app Flutter e o processo que os produziu · e51807ea
      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: default avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
      e51807ea
    • Igor Matheus's avatar
      Initial commit · 5a0abfed
      Igor Matheus authored
      5a0abfed