尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Rede social fitness com coach de treino e dieta por IA. Une, num só app, o acompanhamento personalizado (treino + nutrição gerados por IA) e uma comunidade onde as pessoas compartilham a evolução — fechando um ciclo de retenção. Documento de decisões e escopo: veja o plano do MVP em C:\Users\00asa\.claude\plans\ (fora do repo). Requisitos: Node 20+ e um MongoDB (local ou Atlas). Fatia 2 (Onboarding com IA — requer Bearer token): Fatia 3 (Geração de plano — requer Bearer token): Fatia 4 (Rede social — requer Bearer token):查看完整 README ↗
Rede social fitness com coach de treino e dieta por IA. Une, num só app, o acompanhamento personalizado (treino + nutrição gerados por IA) e uma comunidade onde as pessoas compartilham a evolução — fechando um ciclo de retenção.
Documento de decisões e escopo: veja o plano do MVP em
C:\Users\00asa\.claude\plans\(fora do repo).
FitSocial/
├─ api/ Backend — Node.js + Express + MongoDB + TypeScript
└─ app-android/ App — React Native (Expo). iOS em Swift virá em fase futura.
api/)Requisitos: Node 20+ e um MongoDB (local ou Atlas).
cd api
cp .env.example .env # ajuste JWT_SECRET, MONGODB_URI, ANTHROPIC_API_KEY
npm install
npm run dev # sobe em http://localhost:4000
npm test # testes de integração (Mongo em memória)
Endpoints da Fatia 1 (Auth):
| Método | Rota | Descrição |
|---|---|---|
| GET | /health | Healthcheck |
| POST | /auth/register | Cadastro (retorna token + usuário) |
| POST | /auth/login | Login (retorna token + usuário) |
| GET | /auth/me | Usuário autenticado (Bearer token) |
Fatia 2 (Onboarding com IA — requer Bearer token):
| Método | Rota | Descrição |
|---|---|---|
| GET | /onboarding/greeting | Mensagem inicial do coach |
| POST | /onboarding/message | Um turno da conversa; ao concluir, salva a ficha |
Fatia 3 (Geração de plano — requer Bearer token):
| Método | Rota | Descrição |
|---|---|---|
| POST | /plans/generate | Gera treino+dieta a partir da ficha (nova versão) |
| POST | /plans/import | Importa o plano pessoal (texto → IA estrutura) |
| GET | /plans/current | Retorna o plano mais recente |
Fatia 4 (Rede social — requer Bearer token):
| Método | Rota | Descrição |
|---|---|---|
| POST | /social/posts | Cria post (texto + imageUrl opc.) |
| GET | /social/feed | Feed (quem você segue + você) |
| POST | /social/posts/:id/like | Curtir |
| DELETE | /social/posts/:id/like | Descurtir |
| POST | /social/users/:id/follow | Seguir |
| DELETE | /social/users/:id/follow | Deixar de seguir |
| GET | /social/users/:id | Perfil + contagens + posts |
Fatia 5 (Freemium):
| Método | Rota | Descrição |
|---|---|---|
| POST | /plans/generate | Grátis gera 1x; regenerar exige premium (402) |
| POST | /billing/webhook | Webhook do RevenueCat (atualiza tier) |
| POST | /billing/dev-upgrade | Upgrade de DEV (alterna free/premium; off em prod) |
Assinatura real: integração via RevenueCat + Google Play Billing (o
dev-upgrade é só para demonstração). Configure o RevenueCat usando o _id do
usuário como app_user_id e aponte o webhook para /billing/webhook
(opcionalmente proteja com REVENUECAT_WEBHOOK_AUTH).
A IA fica isolada atrás da interface AIProvider (src/services/ai/). Hoje usa
Google Gemini (grátis) via REST. Trocar de LLM = nova implementação da
interface + apontar o factory em src/services/ai/index.ts. Configure
GEMINI_API_KEY no .env (grátis em https://aistudio.google.com/apikey).
Teste as integrações reais com: npm run try:gemini (onboarding) e
npm run try:plan (geração de plano).
Vídeos de exercício (opcional): Configure YOUTUBE_API_KEY no .env para carregar
miniaturas reais dos vídeos de execução e tocar dentro do app. Sem a chave, o app mostra
um botão de fallback que abre a busca no YouTube em navegador externo. Obtenha a chave em
https://console.cloud.google.com/apis/library/youtube.googleapis.com (Google Cloud Console → "YouTube Data API v3").
app-android/)cd app-android
npm install
npm run android # requer emulador Android ou o app Expo Go
Por padrão o app aponta para http://10.0.2.2:4000 (host no emulador Android).
Para dispositivo físico, defina EXPO_PUBLIC_API_URL com o IP da sua máquina.
Endpoints v2.2–v2.4 (Bearer token):
| Método | Rota | Descrição |
|---|---|---|
| GET | /gamification/users/:id | Badges de um usuário |
| GET | /gamification/leaderboard | Ranking entre seguidos (7 dias) |
| POST | /uploads | Upload de imagem (multipart) |
| POST | /social/posts/:id/comments | Comentar em um post |
| GET | /social/posts/:id/comments | Listar comentários |
| GET | /coach/messages | Histórico do chat com o coach |
| POST | /coach/messages | Conversa com o coach (pode reajustar o plano) |
| Método | Rota | Descrição |
|---|---|---|
| POST | /checkins | Registra treino feito (carga/reps; post opcional) |
| GET | /checkins/stats | Streak, treinos na semana e total |
| GET | /checkins | Histórico recente de treinos |
| GET | /checkins/progress | Evolução de carga por exercício (para o gráfico) |
| POST | /plans/adjust | Reajuste do plano pela IA com base na adesão (premium) |
502 amigável; falha de rede no app vira mensagem clara.