OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Site vitrine (/) et application de compétitions de golf (/app) dans un seul projet Next.js, avec une base de données Supabase (PostgreSQL, comptes e-mail et mot de passe, temps réel).查看完整 README ↗
Site vitrine (/) et application de compétitions de golf (/app) dans un seul projet Next.js,
avec une base de données Supabase (PostgreSQL, comptes e-mail et mot de passe, temps réel).
supabase/schema.sql, cliquez Run.
Vous devez voir « Success. No rows returned ».https://votre-site.vercel.app/apphttps://votre-site.vercel.app/app et https://votre-site.vercel.app/app#nouveau-mdpEnvoyez ce dossier dans votre dépôt eagle-touch (ou laissez Claude le pousser pour vous).
eagle-touch, Import.NEXT_PUBLIC_SUPABASE_URL = la Project URLNEXT_PUBLIC_SUPABASE_ANON_KEY = la clé anon publicChaque modification envoyée sur GitHub redéploie le site automatiquement.
npm install
cp .env.example .env.local # puis remplir les deux valeurs Supabase
npm run dev # http://localhost:3000 et http://localhost:3000/app
app/(site)/ : site vitrine (/), composants dans components/app/(app)/app/ : application (/app), qui démarre lib/eagle/eagle-app.jslib/eagle/eagle-app.js : l'application (écrans, calcul Stableford, défis, annuaire, accès aux données)lib/eagle/eagle.css : styles de l'application, même système visuel que le sitelib/eagle/dir.json : annuaire des golfs de Belgique et de France (OpenStreetMap, ODbL)supabase/schema.sql : tables, règles de sécurité, fonction « rejoindre avec un code », profil créé à l'inscriptionAprès la première installation, exécutez aussi (une fois chacun, dans SQL Editor) :
supabase/patch-001-creer-competition.sqlsupabase/patch-002-manches-minimum.sql (nombre minimum de manches par compétition)supabase/patch-003-clubs-plusieurs-parcours.sql (clubs de 27 trous et plus, plusieurs parcours)supabase/patch-004-administrateur-application.sql (administrateurs qui peuvent corriger tous les parcours)supabase/patch-005-cartes-hommes-dames.sql (cartes de score hommes / dames, jusqu'à 7 par club)supabase/patch-006-securite.sql (renforcement de la sécurité : e-mails, codes d'invitation, verrous des scores)supabase/patch-007-vie-privee.sql (suppression de compte, RGPD)Tables : profiles, handicap_history, competitions, competition_members, golf_courses,
golf_holes, course_tees, rounds, round_participants, hole_scores.
round_participants ; le parcours est figé
dans rounds.course_snapshot. Modifier son index ou un parcours ne change jamais un résultat passé.Les photos utilisent Picsum (aléatoire) en attendant de vraies images :
components/Hero.tsx, components/PhotoBand.tsx, components/Challenges.tsx.