BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Live tournament planner: registration, groups, brackets, self-rescheduling clock
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Plan and run a tournament live: open team registration, groups + knockout
generation, a round clock whose schedule re-derives itself when rounds run late,
per-team "what's next" pages, open score reporting with admin confirmation, a
projector board for the room, and a test mode that simulates players so the
whole thing can be rehearsed.
Next.js 16 (App Router) · React 19 · TypeScript strict · Tailwind v4 · Prisma 6 +
Postgres (Neon in prod) · Auth.js v5 (admins only) · Vitest.查看完整 README ↗Plan and run a tournament live: open team registration, groups + knockout generation, a round clock whose schedule re-derives itself when rounds run late, per-team "what's next" pages, open score reporting with admin confirmation, a projector board for the room, and a test mode that simulates players so the whole thing can be rehearsed.
Next.js 16 (App Router) · React 19 · TypeScript strict · Tailwind v4 · Prisma 6 + Postgres (Neon in prod) · Auth.js v5 (admins only) · Vitest.
cp .env.example .env # fill in DATABASE_URL, AUTH_SECRET
npm install
npx prisma db push
npm run db:seed # creates the first admin (ADMIN_USERNAME / ADMIN_PASSWORD)
npm run dev
Further organisers are added in the app under Account (/admin/account),
which is also where usernames and passwords are changed — the seed script is only
for the very first admin.
/board/[slug] (admin only) is the full-screen view for a beamer in the room:
live games over the venue backdrop, group tables or the tree, and the projected
schedule — cycling, pinned or all at once. Everything it can be told is in the
query string, e.g. ?view=all&dwell=8&contrast=high. See
docs/projector-board.md.
The Format tab builds the day from two independent choices: how the group stage is laid out, and how big the playoff is. Three groups of four can feed quarter-finals (top 2 + the two best 3rds) or go straight to semi-finals (the three winners + the best runner-up) — the advance/wildcard split is derived, not configured. Presets are still there as quick starts.
The Schedule tab's Stage timing card gives each stage in the plan its own game length, break between its rounds, and the (usually longer) break before the next stage. Anything left empty falls back to the tournament defaults on the settings tab, and a single round can still override both from its ⚙ menu.
npm run typecheck and npm run test are the gates. Branding lives in
src/lib/config.ts.
See DEPLOY.md for Neon + Vercel.