尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗App de treino de triatlo do grupo (4 pessoas) para a All Limits – High Limits (distância olímpica, Lagoa dos Ingleses).
Tecnologia: Next.js no Vercel (rotas seguras em app/api), Supabase (login + banco Postgres), API da Anthropic (IA), API do Strava.
transicao · Região: South America (São Paulo) · anote a senha do banco.supabase/schema.sql e clique Run. Deve aparecer "Success".Project URL → NEXT_PUBLIC_SUPABASE_URLanon public → NEXT_PUBLIC_SUPABASE_ANON_KEYservice_role → SUPABASE_SERVICE_ROLE_KEY (secreta, nunca coloque no navegador)Onde ficam os dados: Table Editor → documents. Cada linha é um assunto de um atleta (data/users/<id>/profile, /activities, /plan, /checkins, /weights, /diet, /chat). Toda alteração guarda a versão anterior em documents_history, então nada se perde se alguém apagar por engano.
https:// (ex.: transicao.vercel.app; para testar local use localhost)STRAVA_CLIENT_ID e Client Secret → STRAVA_CLIENT_SECRET.ANTHROPIC_API_KEY.claude-sonnet-5-5, tarefas rápidas usam claude-haiku-5-5).Heenga/transicao..env.example:| Variável | Valor |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | do Passo 1 |
NEXT_PUBLIC_SUPABASE_ANON_KEY | do Passo 1 |
SUPABASE_SERVICE_ROLE_KEY | do Passo 1 |
GROUP_INVITE_CODE | código do grupo (desativado no momento; REQUIRE_GROUP_CODE em app/api/signup) |
ADMIN_USERNAMES | seu usuário (ex.: henrique) — pode editar a prova e exportar dados do grupo |
MAX_MEMBERS | 4 |
ANTHROPIC_API_KEY | do Passo 3 |
AI_MODEL / AI_MODEL_QUICK | claude-sonnet-5-5 / claude-haiku-5-5 |
STRAVA_CLIENT_ID / STRAVA_CLIENT_SECRET | do Passo 2 |
APP_URL | a URL final, ex.: https://transicao.vercel.app (sem barra no fim) |
STATE_SECRET | um texto aleatório longo (ex.: gere em https://1password.com/password-generator) |
APP_URL bate com a URL real; se mudou, ajuste e clique Redeploy. Atualize também o Callback Domain no Strava.henrique, senha (4+ caracteres, pode ser só números).npm install
cp .env.example .env.local # preencha os valores
npm run dev # http://localhost:3000
app/api/signup cria conta (confere o limite de membros)
app/api/me quem está logado, organizador?, Strava conectado?
app/api/ai proxy da IA (chave fica no servidor)
app/api/strava/connect inicia o login no Strava da pessoa
app/api/strava/callback recebe a autorização e guarda os tokens (só o servidor lê)
app/api/strava/activities treinos e zonas do Strava da pessoa
app/api/strava/disconnect desconecta
lib/ utilitários do servidor (Supabase admin, Strava)
public/index.html app (tela de login + painel)
public/shim.js login, banco, IA e downloads no navegador
public/app.js · app.css interface e lógica de treino
public/motor.js motor de treino (carga, fases, metas, prontidão, validação) — base: transicao-coach/
tests/ testes do motor (npm test)
supabase/schema.sql tabelas e regras de segurança
team/) é visível ao grupo; a prova (config/) só o organizador altera; organizadores leem tudo para backup.service_role ficam só no servidor (Vercel).