Skip to content

yohann-risso/evolv

Repository files navigation

Evolv

Treinar sem pensar. Evoluir com clareza.

Evolv e um app de treino com foco em registro rapido, PR automatico e progresso visivel. A arquitetura agora segue o documento do produto: web primeiro, mobile preparado, backend Supabase e monorepo compartilhado.

Arquitetura

apps/
  web/       Next.js App Router
    src/app/ rotas, layout e APIs
    src/features/dashboard/ experiencia principal modularizada
  mobile/    Expo / React Native
  motion/    Remotion para animacoes de produto

packages/
  types/     contratos de dominio
  services/  Supabase, mock data e regras de progresso
  hooks/     estado local-first com Zustand
  ui/        componentes compartilhados

docs/
  lgpd-compliance.md
  repo-structure.md

supabase/
  migrations/ fonte de verdade do banco e RLS

Stack

  • Web: Next.js, React, Tailwind CSS e Geist.
  • Mobile: Expo, React Native e NativeWind preparado.
  • Backend: Supabase Auth, DB, Realtime e RLS.
  • Estado: Zustand com persistencia local.
  • Sincronizacao: React Query preparado no web.

MVP Web

  • Login com Supabase Auth e modulos para aluno, professor e admin.
  • Admin autoriza professores; professores aceitam alunos.
  • Historico de pagamentos na tela de planos.
  • Home com treino do dia, streak, volume e plano.
  • Tela de treino com registro de serie rapido.
  • Avisos de treino com horario escolhido pelo aluno e alertas de estagnacao.
  • Biblioteca de exercicios no modulo de professor com link de video embutido na ficha.
  • Historico com volume, PR automatico e grafico simples.
  • Gestao inicial de aluno, professor e vinculo.
  • Planos mensal, trimestral, semestral e anual com checkout InfinitePay.

Comandos

npm install
npm run dev

Mobile:

npm run mobile:start
npm run mobile:ios

Motion:

npm run motion:dev
npm run motion:render:launch
npm run motion:render:set
npm run motion:render:pr
npm run motion:render:checkout

Supabase

  1. Crie um projeto no Supabase.
  2. Aplique as migrations em supabase/migrations.
  3. Copie .env.example para .env.local e, para o app web local, para apps/web/.env.local.
  4. Preencha NEXT_PUBLIC_SUPABASE_URL e NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY ou NEXT_PUBLIC_SUPABASE_ANON_KEY.
  5. Para rodar npm run seed:admin, preencha SUPABASE_SERVICE_ROLE_KEY somente em .env.local.

Vercel

Configure no projeto Vercel as mesmas variaveis usadas pelo web:

  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY ou NEXT_PUBLIC_SUPABASE_ANON_KEY
  • NEXT_PUBLIC_APP_URL com a URL publica do deploy
  • APP_URL com a mesma URL publica do deploy
  • NEXT_PUBLIC_PRIVACY_CONTACT_EMAIL
  • INFINITEPAY_HANDLE, se o checkout real estiver ativo
  • INFINITEPAY_WEBHOOK_URL, se houver webhook dedicado
  • INFINITEPAY_LINKS_URL, se precisar sobrescrever o endpoint padrao da InfinitePay

Nao publique SUPABASE_SERVICE_ROLE_KEY com prefixo NEXT_PUBLIC_. Use essa chave apenas em rotinas server-side/admin.

InfinitePay

  1. Preencha INFINITEPAY_HANDLE com a InfiniteTag sem $.
  2. Ajuste NEXT_PUBLIC_APP_URL para a URL publica do app em producao.
  3. Opcionalmente, preencha INFINITEPAY_WEBHOOK_URL.

Sem INFINITEPAY_HANDLE, a tela de planos gera apenas o payload de teste do checkout.

Produto

O principio central da interface e salvar local primeiro e sincronizar depois. O treino nao pode depender de loading para registrar uma serie.

LGPD

  • Aviso publico em /privacidade.
  • Consentimento destacado para observacoes de saude.
  • Central de privacidade no app para exportacao local, limpeza do dispositivo e pedidos do titular.
  • Migration 20260502024925_add_lgpd_privacy_controls.sql cria consentimentos e pedidos LGPD com RLS.

Configure NEXT_PUBLIC_PRIVACY_CONTACT_EMAIL com o canal do encarregado antes de publicar.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors