BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证F1 race weekend hub + prediction league
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Race weekend hub + prediction league for friends. Live: https://f1-hub-nu.vercel.app
• Stack: Next.js 16 (App Router) + TypeScript + Tailwind v4, Supabase Postgres, Vercel.
• Data: Jolpica for schedule, standings and results; OpenF1 for Sprint Qualifying results (Jolpica has none).
• Track outlines: generated from bacinger/f1-circuits (MIT): npm run build:circuits.
Everything lives in src/lib/scoring.config.ts: slot points, bonuses, multipliers and the rounding rule.
The logic in src/lib/scoring.ts only reads that object. After changing it:查看完整 README ↗Race weekend hub + prediction league for friends. Live: https://f1-hub-nu.vercel.app
npm run build:circuits.Everything lives in src/lib/scoring.config.ts: slot points, bonuses, multipliers and the rounding rule.
The logic in src/lib/scoring.ts only reads that object. After changing it:
npm test
then commit and push. Vercel redeploys. Already scored rounds keep their old points until the league owner presses Recalculate weekend for that weekend.
profiles.is_admin) can rename/remove players and recalculate any league. Private league owners can recalculate theirs.supabase/migrations/.
v1 tables (players, predictions, round_scores, player_devices, pin_attempts) are no longer used; their data was copied by scripts/migrate-to-profiles.mjs.cp .env.example .env.local
Fill in the values, then:
npm install
npm run dev
| Name | Where from |
|---|---|
SUPABASE_URL | Supabase → Connect / Project Settings → Data API → Project URL |
SUPABASE_SERVICE_ROLE_KEY | Supabase → Project Settings → API Keys → Secret key (sb_secret_…) |
CRON_SECRET | any long random string |