- Cliente
- Team Garin (consultoria esportiva online)
- O que fizemos
- Plataforma de consultoria esportiva: app do aluno (treino, nutrição, comunidade, gamificação, questionários) e painel web da equipe (planos, acompanhamento, moderação), sobre uma fundação multi-consultoria com cobrança recorrente — mais a migração da base da geração anterior
- Plataforma
- App iOS e Android (React Native · Expo · banco local RxDB) · Painel web (React + Vite) · API NestJS · MongoDB · AWS (Elastic Beanstalk, S3) · Stripe · Expo Push
- 1.168 alunos
- cadastrados na plataforma até 02/09/2026 — e, desde outubro, a base inteira opera no app novo
- 416 mil séries
- registradas com carga e repetição (99% preenchidas) até 02/09/2026, levadas com os mesmos identificadores
- 49% · 62%
- da base treinou na semana e no mês, em 02/09/2026: o uso que a geração nova herdou
- 444 alunos ativos
- no Team Garin Pro, o app novo, em 23/10/2026
O ponto de partida
O Team Garin vende acompanhamento: treinador e nutricionista montam o plano, o aluno executa e a equipe ajusta. A primeira geração da plataforma, também construída pela Epicora, dava conta disso — e o banco mostrava que dava bem. Até 02/09/2026 eram 37.237 treinos registrados, com média de 7 exercícios e 11 séries por sessão e carga preenchida em 99% das séries. O aluno não marcava presença: registrava a execução. Do outro lado, uma equipe de 8 pessoas operando no dia a dia fazia cerca de 1.220 revisões de plano por mês.
A medição foi feita justamente para achar o que o uso não mostrava — e o produto antigo não tinha telemetria de navegação, só o que vira registro no banco, então todo número é piso. Mesmo assim, os buracos apareceram nítidos. E havia um limite de arquitetura: a primeira geração rodava uma instalação e um banco por consultoria, com app próprio na loja. Servia ao Team Garin; não servia para a próxima consultoria.
- 39% da base parada — 292 alunos dormentes ou que nunca treinaram — e nenhum gatilho automático para trazê-los de volta: as duas únicas notificações do sistema saíam quando a equipe publicava um plano.
- O cancelamento se decidia no primeiro mês: 49% de quem saiu nunca registrou um treino. O desafio não era reter quem treinava — era ativar quem chegava.
- O diário alimentar não pegou: só 25% de quem tinha plano registrava alguma refeição no mês, em queda, e 86% das dietas diárias que o sistema pré-gerava nunca recebiam um registro.
- Funcionalidade sem uso e dado que faltava: o módulo de questionários tinha zero respostas, o modelo de dados não ligava o aluno ao seu treinador ou nutricionista, e a percepção de esforço do treino tinha deixado de ser gravada sem que ninguém percebesse.
A virada
A decisão foi desenhar a geração nova em cima do retrato, não de uma lista de desejos. O núcleo — o treino registrado série a série — ficou intacto e ganhou o que faltava em volta dele. O aluno que some precisa de um motivo para voltar que não dependa de a equipe lembrar dele: daí a gamificação, que pontua treino concluído, recorde pessoal batido, refeição registrada, questionário respondido e post publicado, com conquistas por sequência de dias, volume e tempo de casa e um ranking geral e trimestral; e a comunidade, onde o aluno posta o treino, compartilha a conquista e recebe curtida e comentário de quem treina com ele.
Cada achado do banco virou decisão no sistema novo. A dieta do dia deixou de ser pré-gerada para todo aluno e passou a nascer no primeiro registro ou na primeira leitura. O vínculo do aluno ganhou profissionais responsáveis, e o painel passou a recortar a carteira por colaborador. O treino voltou a gravar percepção de esforço, e o questionário virou acompanhamento recorrente — semanal, quinzenal ou mensal, com envio em massa e revisão pela equipe. E a refeição registrada e o questionário respondido passaram a valer ponto: o comportamento que o produto antigo não reforçava ganhou reforço.
A terceira decisão foi de arquitetura: uma plataforma, várias consultorias. Todo registro carrega a consultoria a que pertence, e o isolamento não depende de cada consulta lembrar disso — um plugin de banco injeta o filtro em toda leitura e escrita, e uma consulta sem consultoria definida falha em vez de devolver o dado de todo mundo. Em cima disso vêm cobrança recorrente via Stripe, cadastro self-service de consultoria, tema e logo por workspace e aluno com conta única em mais de uma consultoria. O Team Garin é o primeiro workspace; a fundação para o próximo já está no código.
O app novo é outra ficha na loja: ninguém recebe atualização, todo aluno precisa baixar. Por isso a base não virou de uma vez. A migração rodou em lotes definidos pela consultoria, com o sistema antigo atendendo quem ainda não tinha trocado. Cada lote passa por ensaio a seco antes de gravar, chega com os mesmos identificadores do banco antigo — o histórico de treino, dieta e peso aponta para os mesmos registros, sem remapeamento — e com a mesma senha, e termina com uma reconferência automática coleção por coleção. Os lotes registrados fecharam sem divergência, e em outubro a base inteira já operava no app novo.
O que entregamos
01 · O app do aluno, que funciona sem sinal na academia
Treino, plano alimentar, peso e histórico vivem no aparelho, num banco local sincronizado com a API: o aluno executa e registra sem conexão, e tudo sobe quando o sinal volta — inclusive os pontos, porque o crédito acontece no servidor quando a sincronização chega. Durante o treino, o iPhone mostra a sessão na tela bloqueada; na tela inicial, um widget com o mapa de calor dos treinos. A última carga aparece na prescrição, o recorde pessoal é detectado série a série e a evolução de cada exercício vira gráfico. Ao terminar, o treino vira imagem pronta para compartilhar.
02 · Gamificação com regra de contabilidade
Pontos por treino concluído, recorde batido, refeição completa, questionário respondido e post na comunidade, com o valor de cada um definido pela consultoria; conquistas automáticas (sequência de dias, volume, recordes, treinos, refeições, questionários, tempo de vínculo) e manuais, concedidas pela equipe; ranking geral e trimestral, com cada trimestre fechado e guardado automaticamente. Por baixo, um livro-razão imutável: ponto nunca é apagado nem editado, e correção é lançamento de estorno, como no cartão. Mudar a tabela de pontos não reescreve o passado, o mesmo treino nunca pontua duas vezes, e parar de treinar zera a sequência, mas não tira ponto.
03 · A comunidade da consultoria, com moderação de verdade
Feed com texto e até 4 fotos por post, curtida, comentário, posts fixados pela equipe e conquista compartilhada direto do app. Curtidas chegam agrupadas, como no Instagram, e o aluno liga ou desliga cada categoria de notificação — comunidade, gamificação, acompanhamento, conta. A equipe modera pelo painel: denúncia vira fila de Conteúdo Reportado, com as ações de ocultar, manter ou restringir o acesso do aluno à comunidade; e o aluno pode bloquear outro aluno, como a App Store exige de app com conteúdo de usuário. As fotos dos posts são privadas e só abrem por link assinado e temporário.
04 · O painel da equipe: a carteira inteira e o aluno por dentro
O painel abre num dashboard operacional: alunos ativos contra o limite do plano, questionários esperando revisão, denúncias a moderar e o pódio do ranking. Ao abrir um aluno, a equipe entra no Modo Aluno — resumo, treino, nutrição, questionários, pontuação, material de apoio e assinatura num só lugar. O questionário de acompanhamento sai recorrente e em massa, com comparativo de fotos de evolução; os planos saem de templates da consultoria; e cada aluno tem seus profissionais responsáveis, o recorte que faltava para enxergar a carteira de cada treinador e nutricionista.
Como garantimos
Migração que só grava depois de ensaiar
O script de migração lê o banco antigo e nunca escreve nele: antes do primeiro dado novo, voltar atrás é só reabrir o sistema antigo. Toda execução começa em modo seco, que mostra o que vai acontecer e para diante de qualquer bloqueio — e-mail que já existe na plataforma, identificador numérico ocupado, item de catálogo faltando. A gravação é idempotente (rodar de novo reescreve o mesmo, não duplica) e termina com uma reconferência que conta, coleção por coleção, o que chegou ao destino.
A sujeira do legado resolvida sem perder documento
O ensaio contra a base real achou o que o banco antigo tolerava e o novo não: 38 e-mails repetidos em 115 contas, sobras de convites refeitos. Nenhum e-mail tinha duas contas vivas; a conta ativa ficou com o endereço, as sobras já apagadas receberam um endereço reservado que nunca é entregue, e todo documento manteve o mesmo identificador. O mesmo valeu para perfis órfãos e numeração repetida: cada correção registrada no relatório da migração, nada descartado em silêncio.
Dado de saúde trancado por padrão
Foto de avaliação, documento e foto de post vivem em armazenamento privado, por consultoria e por usuário, e só abrem por link assinado com prazo pela sensibilidade — 5 minutos para foto de questionário, 15 para documento. A API confere que o arquivo citado pertence a quem o envia, e o isolamento entre consultorias é imposto no acesso ao banco, não em cada tela. A exclusão de conta acontece dentro do app, como as lojas exigem, e os erros de produção caem num monitoramento próprio.
O resultado
O número que mais importa neste case ainda está sendo escrito — por isso ele vem com data. Até 02/09/2026, ainda na geração anterior, metade da base treinava toda semana, cerca de 156 alunos por dia, com ~11 treinos por mês por aluno ativo. Esse é o piso: o uso que já existia sem comunidade, sem gamificação e sem nenhum gatilho para o aluno parado. Desde outubro, a base inteira do Team Garin treina e posta no Team Garin Pro, publicado na App Store e no Google Play: em 23/10/2026 eram 444 alunos ativos no app novo e 204 publicações na comunidade.
E a plataforma que roda a consultoria hoje não é um app de uma consultoria só. Isolamento por workspace, cobrança recorrente, cadastro self-service e catálogo de temas já estão no código, com o Team Garin como primeiro inquilino. O próximo passo é transformar essa fundação em produto para outras consultorias — sobre a operação real de uma consultoria com mais de mil alunos cadastrados, não sobre demonstração.
Sua consultoria tem aluno registrando treino e nenhum motivo para ele voltar amanhã?
A Epicora constrói a plataforma da sua operação a partir do uso medido — app que funciona na academia, gamificação e comunidade com regra de verdade — e com a fundação pronta para o dia em que ela virar produto.
