尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
App personal para llevar el progreso en gimnasio (y, más adelante, dieta, estudios y peso corporal). Es una PWA: funciona en el navegador del PC y se puede instalar en el iPhone desde Safari, sin pasar por la App Store.檢視完整 README ↗
App personal para llevar el progreso en gimnasio (y, más adelante, dieta, estudios y peso corporal). Es una PWA: funciona en el navegador del PC y se puede instalar en el iPhone desde Safari, sin pasar por la App Store.
supabase/schema.sql y ejecútalo. Esto crea las tablas
workouts / workout_sets con seguridad a nivel de fila (cada usuario solo ve sus propios
datos).cp .env.example .env
Edita .env y pega los valores del paso anterior:
VITE_SUPABASE_URL=https://tu-proyecto.supabase.co
VITE_SUPABASE_ANON_KEY=tu-anon-key
npm install
npm run dev
Abre la URL que muestre la terminal (normalmente http://localhost:5173). Regístrate con tu
email — Supabase te enviará un correo de confirmación antes de poder iniciar sesión (puedes
desactivar esa confirmación en Authentication → Providers → Email mientras pruebas, si
quieres saltártela).
Con el servidor solo en local (npm run dev), únicamente el PC puede acceder. Para instalarla
en el iPhone como una app hace falta que esté servida por HTTPS y accesible desde internet.
La forma más simple y gratuita es desplegarla en Vercel o Netlify:
VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY) en la
configuración del proyecto en Vercel.https://...vercel.app.src/pages/ — pantallas: login, registro, dashboard, nuevo entrenamiento, historial, detalle.src/context/AuthContext.jsx — sesión de Supabase (login/registro/logout).src/components/Layout.jsx — navegación (barra inferior en móvil, superior en escritorio).supabase/schema.sql — tablas y políticas de seguridad (RLS).Para añadir un nuevo módulo (peso corporal, dieta, estudios...) se sigue el mismo patrón: una
tabla nueva en Supabase con RLS por user_id, una página en src/pages/, y una entrada en la
navegación de Layout.jsx.
api/hevy-sync.js es una función de Vercel que pide a la API de Hevy los entrenamientos
nuevos, editados o borrados desde la última vez y los vuelca en workouts / workout_sets.
Se ejecuta sola una vez al día (cron en vercel.json), cada vez que abres Gimnasio (si han
pasado más de 10 minutos) y con el botón Sincronizar ahora. Solo la cuenta de
src/lib/adminUser.js puede usarla, porque la clave de Hevy es de esa cuenta.
Los entrenamientos que ya importaste desde el CSV se emparejan por fecha y título, así que no se duplican.
Puesta en marcha (una sola vez):
supabase/migrations/016_hevy_sync.sql.HEVY_API_KEY: tu clave de hevy.com/settings?developer.SUPABASE_SERVICE_ROLE_KEY: en Supabase → Project Settings → API → service_role.
Es secreta: nunca con prefijo VITE_ ni en git.CRON_SECRET: cualquier texto largo inventado (Vercel lo usa para autorizar el cron).api/pasos.js recibe los pasos con una sola petición:
https://<tu-app>.vercel.app/api/pasos?pasos=8432&clave=<tu-clave> (opcional &fecha=AAAA-MM-DD,
por defecto hoy). La clave es la de webhook_secrets (ver migración 003), y los pasos se guardan
en la cuenta de src/lib/adminUser.js (migración 017).
El Atajo solo necesita tres acciones: Buscar muestras de Salud (Pasos, fecha de hoy),
Calcular estadísticas (Suma) y Obtener contenido de URL con la dirección de arriba,
poniendo el resultado de la suma en pasos=. Después, en Automatización, se programa cada
noche a las 23:30 con "Ejecutar inmediatamente".