尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
App web para que el entrenador gestione rutinas de entrenamiento y cada cliente registre sus series desde un enlace único, sin contraseña. Es una app estática (HTML/CSS/JS con módulos ES, sin paso de build) que usa Supabase (supabase-js cargado desde CDN) como backend.檢視完整 README ↗
App web para que el entrenador gestione rutinas de entrenamiento y cada cliente registre sus series desde un enlace único, sin contraseña.
Es una app estática (HTML/CSS/JS con módulos ES, sin paso de build) que
usa Supabase (supabase-js cargado desde CDN) como backend.
index.html splash / enlace al panel
c/index.html vista del cliente (lee el código de la URL)
admin/login.html login del entrenador
admin/index.html dashboard: lista de clientes
admin/cliente.html editor de la rutina de un cliente
assets/css/styles.css estética Artabria
assets/js/ lógica de cada página
supabase/schema.sql tablas + seguridad (RLS) + datos de ejemplo
vercel.json rewrite para que /c/<código> funcione
Entra en tu proyecto → SQL Editor → pega el contenido completo de
supabase/schema.sql → Run.
Esto crea las tablas, las políticas de seguridad (RLS) y el cliente de
ejemplo "Borja Bravo Llinares" (enlace /c/xk29fa).
Ve a Authentication → Sign In / Providers y activa "Allow anonymous sign-ins". Es lo que permite que un cliente entre con su enlace sin registrarse ni poner contraseña — sigue siendo seguro porque cada sesión anónima solo puede leer/escribir sus propios datos (RLS).
Abre admin/login.html (en local o ya desplegado) y pulsa "¿Primera
vez? Crear cuenta" para registrarte con tu email y una contraseña.
Vuelve al SQL Editor y ejecuta (sustituyendo el email si hace falta):
insert into admins (id)
select id from auth.users where email = '[email protected]';
Ahora esa cuenta ya puede entrar al panel de entrenador.
No hace falta Node ni ningún build. Basta un servidor estático simple:
python3 -m http.server 8000
Y abre http://localhost:8000. El panel está en /admin/login.html y el
enlace de ejemplo del cliente en /c/xk29fa.
Nota: en local, rutas como
/c/xk29falas resuelve el JS leyendolocation.pathnamedirectamente sobrec/index.html; para que la URL "bonita"/c/xk29fafuncione sin elindex.htmlexplícito necesitas el rewrite devercel.json(o el equivalente de tu hosting) — en producción (Vercel) ya está configurado.
vercel deploy desde aquí (framework: Other / Static).vercel.json ya incluye el rewrite para que /c/<codigo> sirva
c/index.html manteniendo la URL.rutinas.artabrianutrition.com al proyecto de Vercel..../c/<codigo> lista para enviar por WhatsApp, email, etc.xk29fa) no es solo una URL "secreta": al abrirlo,
el cliente obtiene una sesión anónima real de Supabase Auth y esa sesión
queda vinculada a su fila en clientes mediante la función claim_cliente.
A partir de ahí, las políticas de Row Level Security comprueban
auth.uid() igual que con cualquier usuario registrado — un cliente
nunca puede ver ni modificar los datos de otro, aunque manipule las
peticiones a la API.admins para tener acceso de escritura a clientes/rutinas.