UCG Routine Planner
Plan UCG WAG, MAG and T&T routines, calculate start values, and export filled-in UCG worksheets and competition cards.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A personal, installable web app (PWA) for Kyle's DUPR pickleball history. Three tabs:
All filterable by year, type, level, event and partner. All from your real DUPR record.
Live app: https://kyeill.github.io/pickleball/
DUPR (your browser) ──🔄 Sync bookmark──▶ data/data.json ──┐
├──▶ index.html (the PWA) ──▶ your browser
your cleanup edits ──▶ data/overrides.json ──┘
data/data.json — your matches + ratings, pulled from DUPR. Updated by the
🔄 Sync bookmark. This is the only file that changes when you refresh.data/overrides.json — your edits: event renames, event types, levels and hidden
partners. Committed to the repo so they follow you to every device and survive every sync.data/players.json — a dated rating for every player you have faced, one point per sync,
going back to 2026-09-02. Feeds the Players tab.data/watchlist.json — who appears on the Players tab, in two groups.index.html — the whole app. Static; loads those files. No build step.DUPR's API only answers requests made from dashboard.dupr.com with your login cookie, so the sync runs there, as a bookmark, and hands the data to the app, which saves it to the repo.
main / root). Live at
https://kyeill.github.io/pickleball/.Sync whenever you've played. It runs in your own browser while you're logged in to DUPR, so no DUPR token or password is stored anywhere.
data/data.json to GitHub, and opens the updated app. Other devices see it ~1 minute later.If DUPR returns fewer matches than you already have, nothing is saved (a guard against DUPR changing its data format). Pop-up blocked? Allow pop-ups for dashboard.dupr.com.
Why not automatic? Until 2026-09 a GitHub Action refreshed daily with a copied DUPR token. DUPR then moved its API to
api.dupr.com, switched to an httpOnlydupr_atcookie, and started rejecting copied tokens from anywhere but your browser, so the Action was retired.
In the app: expand Filters → ⚙ Clean up data. There you can:
These edits live in your browser as you work. To make them permanent and cross-device, save them to the repo — one click, once you've connected GitHub:
kyeillpickleballThe token is stored only in your browser (localStorage) and is sent only to GitHub's API to save this one file — never to the app's host, never into the repo, never to anyone else. Because it's fine-grained and scoped to just this repo's Contents, the worst it can do is edit this repo. Disconnect removes it from the browser.
Clean up → Save / sync → 💾 Save to GitHub. It commits data/overrides.json and the live
site refreshes in ~a minute. Do the same on any device once it's connected.
(The manual ⤓ Export file / ⤒ Import buttons still exist as a no-token fallback and for moving edits between browsers.)
| Path | What it is |
|---|---|
index.html | The PWA (app shell + all logic). Static, no build. |
data/data.json | Matches + ratings, pulled from DUPR. |
data/overrides.json | Your event renames, types, levels and hidden partners. |
data/players.json | Dated ratings for everyone you have played. |
data/watchlist.json | Who shows on the Players tab. |
sync.js | What the Sync bookmark loads; generated — do not edit by hand. |
tools/sync_bookmarklet.js | Sync source. Run python tools/build_bookmarklet.py after editing. |
tools/backfill_players.py | One-off: rebuilt players.json from the committed data history. |
manifest.webmanifest, sw.js, icons/ | PWA install + offline. |
Win% + 25·Pts% + 50·(oppDUPR − teamDUPR) — last term is strength of schedule (positive = tougher opponents), it follows the at-time/now toggle.