尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
App web (PWA) de emagrecimento com plano alimentar, treinos, metas diárias, progresso e sistema de níveis. Sem build, sem npm: é HTML, CSS e JavaScript puro. Basta subir os arquivos e funciona. Ligar o banco de dados (fazer uma única vez) O app já vem apontado para o seu projeto do Supabase. Falta só criar a tabela: 1. Entre no painel do Supabase 2. Menu lateral → SQL Editor → New query 3. Abra o arquivo schema.sql deste repositório, copie tudo e cole lá 4. Clique em Run Pronto. A partir daí o login e a sincronização na nuvem funcionam.檢視完整 README ↗
App web (PWA) de emagrecimento com plano alimentar, treinos, metas diárias, progresso e sistema de níveis. Sem build, sem npm: é HTML, CSS e JavaScript puro. Basta subir os arquivos e funciona.
O app já vem apontado para o seu projeto do Supabase. Falta só criar a tabela:
schema.sql deste repositório, copie tudo e cole láPronto. A partir daí o login e a sincronização na nuvem funcionam.
Importante sobre a chave: a chave que está em
config.jsé a chave publishable (pública) — ela foi feita para ficar visível no site. Quem protege os dados são as políticas RLS criadas peloschema.sql: cada pessoa só enxerga e só altera a própria linha. Nunca coloque emconfig.jsa senha do banco nem a chaveservice_role.
Por padrão o Supabase exige confirmação de e-mail no cadastro. Para testar mais rápido, você pode desligar isso em Authentication → Providers → Email → desmarcar Confirm email. Em produção, o recomendado é deixar ligado.
O app cobra por assinatura (mensal/trimestral/anual) e usa a Ticto como meio de pagamento. Duas peças cuidam disso:
Controle de pagamento: o schema.sql (rode de novo se já tinha rodado
antes — ele não duplica nada) criou as tabelas assinaturas,
ticto_webhook_logs e respostas_quiz. Uma function separada recebe o
aviso da Ticto a cada compra/renovação/cancelamento e atualiza
assinaturas — o app só libera as telas internas se achar uma linha ativa
pro e-mail de quem logou. Veja o passo a passo completo em
supabase/functions/ticto-webhook/README.md.
Ponte quiz → cadastro: quando a pessoa termina o quiz e escolhe um
plano, as respostas vão tanto pro localStorage (funciona se ela continuar
no mesmo navegador) quanto pro Supabase com um token de uso único, que
viaja na URL (?quiz=TOKEN) — assim o cadastro chega pré-preenchido mesmo
se ela pagar num navegador diferente do que abriu o quiz (comum em quem
entra pelo navegador interno do Instagram, por exemplo).
Links de checkout: cole os 3 links de produto da Ticto em config.js
(CHECKOUT_URL_MENSAL/TRIMESTRAL/ANUAL) e no topo de quiz.html,
quiz/escuro.html e quiz/claro.html — são arquivos sem import entre si,
então o valor não se propaga sozinho.
Igual ao quiz: conecte este repositório na Vercel e publique. Cada git push
republica sozinho. Não há passo de build.
Depois de publicado, quem abrir no celular pode tocar em "Adicionar à tela de início" e o app abre em tela cheia, como um aplicativo.
| Arquivo | O que faz |
|---|---|
config.js | Nome do app e chaves do Supabase. É o único arquivo de configuração. |
js/data.js | Todo o conteúdo: cardápios, planos de treino, biblioteca de exercícios e níveis. É aqui que você edita alimentos e exercícios. |
js/store.js | Cálculos e dados: meta calórica, pontos, níveis, streak, resumos. |
js/backend.js | Login e sincronização com o Supabase. |
js/screens.js | As telas do app. |
js/onboarding.js | Login, criação de conta e o cadastro de 3 passos. |
js/app.js | Navegação entre telas e as ações (marcar refeição, água, treino...). |
css/app.css | Todo o visual. As cores ficam nas variáveis no topo do arquivo. |
schema.sql | O SQL que cria as tabelas e as regras de segurança no Supabase. |
supabase/functions/ticto-webhook/ | Function que recebe o aviso de pagamento da Ticto e libera a assinatura. |
Trocar alimentos de um cardápio: abra js/data.js, procure
PLANOS_ALIMENTARES e edite a refeição desejada. Cada alimento tem nome,
gramas, medida caseira, calorias, proteína e a opção de troca.
As gramagens dos cardápios são reescaladas automaticamente para a meta de calorias de cada pessoa — os valores no arquivo são a base de referência.
Trocar exercícios de um treino: no mesmo arquivo, em PLANOS_TREINO.
Existem quatro planos: feminino_academia, feminino_casa,
masculino_academia e masculino_casa.
Mudar as cores: no topo de css/app.css, nas variáveis --verde,
--verde-esc etc.
Mudar o nome do app: em config.js (APP_NOME), no <title> do
index.html e no manifest.json.
Pontos por ação: alimento marcado +3, refeição completa +10, meta de água +20, meta de sono +20, treino concluído +40, pesagem registrada +15.
| Nível | Nome | Pontos |
|---|---|---|
| 1 | Decidido | 0 |
| 2 | Comprometido | 300 |
| 3 | Consistente | 900 |
| 4 | Imparável | 2.200 |
| 5 | Transformado | 4.500 |
Para ajustar, edite NIVEIS e PONTOS em js/data.js.
Se o Supabase estiver fora do ar ou as chaves não estiverem preenchidas, o app continua funcionando 100% no aparelho, salvando no navegador. A pessoa também pode escolher "Continuar sem conta" na tela de entrada.
Material educativo de apoio. Não substitui acompanhamento médico ou nutricional. Resultados variam de pessoa para pessoa.
Existem quatro páginas de quiz, todas em arquivo único (HTML + CSS + JS, sem build). Todas terminam na mesma tela de planos e usam as mesmas imagens da raiz.
| Arquivo | Público | Oferta apresentada |
|---|---|---|
quiz/escuro.html | geral (tema escuro) | app Focus Fit |
quiz/claro.html | geral (tema claro) | app Focus Fit |
quiz/caneta.html | quem usa canetinha | Método Destrave Metabólico, dentro do app |
quiz/natural.html | quem não usa canetinha | Protocolo GLP-1 Natural, dentro do app |
quiz/caneta.htmlAbertura com "o quanto você está aproveitando da sua canetinha", depois canetinha, tempo de uso, dose e objetivo. Vem a quebra que tira a culpa, as perguntas de dor (quilos eliminados, incômodo principal, flacidez, sintomas), a quebra do custo escondido com o dado dos 82%, e as perguntas de rotina que fecham o diagnóstico. O diagnóstico mostra o índice de aproveitamento e quais das 5 travas metabólicas estão fechadas. Depois vêm as metas, a mini-VSL e os planos.
quiz/natural.htmlAbertura igual à do quiz GLP-1 que já estava no ar. As perguntas seguem objetivo → situação e problema → tentativas anteriores e frustrações → rotina detalhada → metas, com quebra de tira a culpa depois da pergunta de fome e quebra de "você não está sozinha" depois da frustração. O diagnóstico mostra o Índice de GLP-1 Natural e as 5 travas.
Nos dois, a tela vsl roda antes da projeção e hoje mostra um placeholder de player
(.video-box) com o resumo do argumento em texto. Ao gravar o vídeo com a Kelly, troque o
bloco <div class="video-box"> pelo embed do player. Os roteiros completos das duas VSLs
estão em Site_Kelly\VSL\ (fora deste repositório).
num, e a barra de progresso é num/TOTAL_Q: renumere ao inserir ou
remover.pctAte('<id>') para a barra, e os gatilhos ficam no
FLOW.push dentro do QUESTIONS.forEach.PESOS_INDICE lê o índice da opção escolhida (<id>_i). Se você reordenar as
alternativas de uma pergunta, ajuste o array de pesos ou a pontuação sai errada em
silêncio.TRAVAS_CAN (caneta) e TRAVAS_NAT (natural): cada
linha é [nome, id da pergunta, função que diz se está liberada].