BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Personal training tracker for a Sub-3:45 NYC Marathon plan (race day: Sun Nov 1, 2026). Mobile-first, works on phone and laptop, progress syncs across devices.
Built from Sub_3-45_NYC_Marathon_Plan.xlsx (5 tabs → structured JSON). The plan itself is
immutable in git; check-offs, logged actuals, workout edits/swaps, and travel scenario picks
live in Supabase as a revertible override layer.
/guide/race-day, the Guide tab's landing page) — one
shareable link for family/friends: an animated cartoon-runner hero and race-bib card,
then collapsible sections: how to track me in the app, 3 viewing stops with be-there
times, subway directions and course maps (with the cartoon runner on the spot), the
post-race meetup, an outfit flat lay, and mile-by-mile ETAs. Content lives in
src/data/spectator.ts.Next.js 16 (App Router) · TypeScript · Tailwind v4 · Supabase Postgres (or a local JSON file store when Supabase env vars are unset) · Vercel.
npm install
npm run dev # http://localhost:3000 — no PIN, local file store in .data/
Regenerate plan data after editing the spreadsheet:
python3 scripts/convert_xlsx.py # validates weekly mileage, writes src/data/*.json
supabase/schema.sql in the SQL editor,
copy the Project URL and service_role key.APP_PIN, SUPABASE_URL,
SUPABASE_SERVICE_KEY, deploy. Optional features add STRAVA_CLIENT_ID /
STRAVA_CLIENT_SECRET (auto-sync), NEXT_PUBLIC_VAPID_PUBLIC_KEY / VAPID_PRIVATE_KEY
/ VAPID_SUBJECT (push), CRON_SECRET (weekly-recap cron auth).Docs: architecture · data model · roadmap/progress · decisions · Garmin sync