Progresso individual, sem ranking público.
produto · migração documentada · demo navegável- O que é
- Plataforma de gamificação individual para operações de atendimento
- Papel
- Produto, arquitetura, frontend, backend e migração
- Stack
- React 19 · Vite · TypeScript · Prisma · Vitest · Docker · nginx
- Formato
- Página de case com demo navegável de dados fictícios
O que foi feito, por que assim, o que resolveu
§ 01 a 03O que foi feito
Plataforma que transforma indicadores operacionais e de qualidade em progresso pessoal, missões e recompensas. São duas superfícies. O painel do agente reúne saldo, progresso, missões, loja e histórico. O painel administrativo reúne missões, recompensas, regras, aprovações, budget e importação de KPI.
Integra-se ao Portal Core por SSO de embed, o mesmo token single-use descrito na folha anterior.
Por que foi feito assim
- Descartado
- Ranking público entre colegas. É o desenho padrão de gamificação e o mais fácil de vender numa reunião, mas expõe quem está atrás e transforma indicador operacional em exposição pessoal.
- Escolhido
- Progresso individual, sem leaderboard. O objetivo é senso de evolução em vez de competição exposta, e isso muda o desenho de tela inteiro, porque não existe onde colocar o pódio.
Essa é decisão de produto, não técnica, e é a que mais define o resultado. A segunda vem junto: controle de budget como cidadão de primeira classe. Recompensa custa dinheiro real, então o teto vive dentro do produto, e não numa planilha paralela que ninguém reconcilia.
A migração de Next.js 15 para React 19 com Vite foi
documentada antes de ser executada, em três documentos: escopo,
arquitetura alvo e plano. O inventário listou 17 rotas de UI, 14 route
handlers embutidos no runtime do Next e cada acoplamento
(next/font, next/image, next/navigation,
middleware.ts, NextResponse) com o substituto
correspondente.
O princípio declarado no plano: manter o frontend como cliente HTTP do backend, não como host de regras críticas. É o que torna a migração possível sem reescrever o produto.
O que resolveu
KPIs de seis áreas operacionais mapeados e convertidos em progresso individual, com o custo das recompensas sob teto no próprio produto.
A saída do runtime Node para artefato estático: a interface passa a ser
servida sem processo, e a lógica crítica volta para o backend, onde é
testável. O churn de componentes ficou mínimo, porque a migração reaproveita
components/* e lib/* e troca só a camada de
plataforma.
A suíte tem 103 testes: 100 passam e 3 falham.
São dois contratos que esperam 190 pontos e recebem 90, e um que compara
zendeskDomain nulo com string vazia. As três são anteriores à
sanitização, confirmado rodando a suíte no commit original. Mesma regra da
folha anterior: número medido, não arredondado.
As peças
ainda a produzirPendente nesta folha: gerar o mock da demo navegável e capturar os dois painéis. As três falhas de suíte também estão em aberto.
- 356
- commits no histórico
- 6
- áreas com KPI mapeado
- 17
- rotas inventariadas na migração
- 100/103
- testes do backend passando