BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2,或任何藍牙控制器搭配 MyWhoosh、Rouvy、Zwift 等。可於 iOS、Android、Windows 與 macOS 免費試用。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Soccer play time tracker
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A substitution and shift tracker for youth sports coaches: soccer (and futsal),
field hockey, lacrosse, ice hockey and basketball. One HTML file, no account, no
signal required.
Add it to your home screen and it opens like an app. The top of the Setup
tab has an Install the app button in Chrome, and tells iPhone users where
Safari keeps Add to Home Screen.
Everyone Plays keeps track of who is on the field and how long each player has been
out there, so playing time comes out even without you keeping a tally in your
head while nine kids ask you when they're going on.檢視完整 README ↗A substitution and shift tracker for youth sports coaches: soccer (and futsal), field hockey, lacrosse, ice hockey and basketball. One HTML file, no account, no signal required.
Use it here: https://hudelson42.github.io/everyone-plays/
Add it to your home screen and it opens like an app. The top of the Setup tab has an Install the app button in Chrome, and tells iPhone users where Safari keeps Add to Home Screen.
Everyone Plays keeps track of who is on the field and how long each player has been out there, so playing time comes out even without you keeping a tally in your head while nine kids ask you when they're going on.
Even minutes. Every player's clock runs while they're on. The app builds the next shift around whoever has played least.
Positions, not just bodies. Every spot is a real position — left D, sweeper, striker, right wing — so you can see that a player got twenty minutes but never left the back line, or never played the right side.
Everyone tries new spots. Subs go into the positions they've played least, so over a game kids rotate around the field. Turn it off if you'd rather keep kids where they're comfortable.
A next shift in one tap. Tap Plan next shift and it builds the rotation; check it and send them on. Or have it keep one ready in the background.
Extra time counts. At full time the buzzer goes but the clock keeps running until you end the period, so stoppage time still counts toward minutes.
No needless reshuffles. Players already on the field hold their position unless moving them genuinely evens things out. You can cap how many switch per shift on Setup.
Built for a sideline. Big targets, high-contrast sun mode, an optional buzzer and vibration at shift end, and the screen stays awake.
Injuries and late arrivals. Pull a player in one tap and the app offers the fairest replacement. Mark someone as arriving late or leaving early and they drop out of the rotation.
A record afterwards. Minutes per position per player, exportable as CSV for the parent emails.
More than one team. Each team keeps its own roster, settings, minutes and history. Tap the team name on the Roster tab to switch.
The whole season. Past games are listed by date. The Season view adds them up: games played and missed, minutes, each kid's share of an even split, and positions played, plus the team's record in Advanced mode. It can also even out playing time across games, suggest who goes in goal next, and remind you when the clock has been left paused.
Your sport. Each team has its own sport, with that sport's positions and words: left D and sweeper in soccer, point guard and center in basketball, the Ice tab in hockey. Hockey rotates whole lines and defense pairs; lacrosse and hockey penalties sit a player out for their length; basketball can foul players out.
Optional Advanced mode adds formations, the score, each sport's stats (goals, assists, shots, saves, cards and penalties; or points, rebounds, steals and fouls) and season totals. Leave it off and the app stays simple.
There is no server, no account and no analytics. Everything lives in your browser's storage on your own device. Nothing about any child leaves the phone it was typed into.
The flip side is that clearing your browser data will erase your roster. Use Setup → Save backup file before a big day. It includes every team, and it's the only copy that survives.
How it works, at the top of Setup, covers the rest. Tap the clock at the top for period controls, notes and New game.
It's a single file with no build step and no dependencies. Download
index.html and open it in a browser. That said, opening it straight from your
downloads folder makes browser storage unreliable on some phones — if you want
it to remember your roster, host it or use the link above.
Everything lives in index.html — no build step, no dependencies. Open it in a
browser and edit. CLAUDE.md has the architecture notes and the
decisions worth not relitigating; HISTORY.md has the full data schema, why
each decision was made, and the bugs found so far.
Before shipping a change:
pip install playwright && playwright install chromium
python3 tests/test_everyone_plays.py
When you change index.html, bump CACHE in sw.js in the same commit, or
phones that already installed the app will keep running the old version.
Setup → Teams → Share this team makes a file with just that team — the roster, your sport and format, and your saved lineups. Photos and past games are left out unless you switch them on, and the game in progress never goes. The other coach opens it with Setup → Teams → Add a shared team and it arrives beside their own teams, replacing nothing.
It travels however you send it — message, email, AirDrop — and nothing is uploaded anywhere. It holds your players' names, so send it only to someone who should have them. If all they need is the names, Copy the roster as a list gives them something to paste into Roster → Paste a whole list.
Setup → Tell another coach has the link, a Share the link button, and a QR code another coach can scan off your phone at a parents' night or a coaches' meeting. The QR code is generated inside the app — like everything else here, it works with no signal and fetches nothing.
If something gets in your way during a real game, that's the most useful thing you can send. In the app: Setup → About and feedback, or the card at the bottom of Help. It offers four things:
Nothing is ever sent on its own: there is no analytics and no account.
Bug reports and ideas are welcome via GitHub Issues.
Everyone Plays is free, with no ads and no accounts. If it helps your team, you can buy me a coffee on Ko-fi.
MIT — see LICENSE. Use it, fork it, run it for your club. If it helps your team, that's the whole point.