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.