Zonara Trainer
Zonara Trainer – Fitness Coach: support, privacy policy and Health & Safety terms
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Same app as before, built to run as a real website instead of a Claude artifact. Each person's picks are private while the week is still open, PIN-protected, and lock in permanently once submitted — after that, everyone can see everyone's picks for that week.
/api/storage.js, a small serverless
function backed by a Redis database (not Claude's artifact-only storage).locked:week{n}:{name}) and rejects any further changes to
them — even a direct API call, not just the button in the UI.Push this folder to a GitHub repo, then import that repo into Vercel (vercel.com → New Project → select the repo).
Add a database. In your project, open Storage in the sidebar →
Create Database / Browse Marketplace → install "Upstash for
Redis". Create a database and connect it to this project, for all
three environments (Production, Preview, Development). Vercel injects
KV_REST_API_URL / KV_REST_API_TOKEN (or UPSTASH_REDIS_REST_URL /
UPSTASH_REDIS_REST_TOKEN) automatically — api/storage.js checks for
either name.
Set everyone's PINs. In the project's Settings → Environment
Variables, add a variable named PICK_PINS with a JSON value mapping
each name to a short PIN, e.g.:
{"Ace":"4821","Cisco":"1093","Dad":"5567","Lena":"2245","Mom":"8830","Tonio":"3391"}
Pick your own numbers — these are just examples. Add this for Production (and Preview/Development if you use those). Tell each family member their own PIN separately from the link you send them (e.g. text it, don't put it in the link).
Also add a second variable, COMMISSIONER_PIN, with a single PIN of your
own choosing (e.g. 7412). This gates the "enter final results" panel —
only whoever knows this PIN can open it and record game outcomes.
Redeploy so the build picks up the new environment variables.
Visit your *.vercel.app URL.
Each family member's link is yoursite.vercel.app?user=Name (e.g.
?user=Dad). Build each one yourself and send it to that person — there's
no in-app list of everyone's links. Send each person their link and,
separately, their PIN. The first time they open their link they'll be
asked for the PIN; after that it's remembered on their device (stored in
that browser only), so they won't need to re-enter it every visit.
If someone's PIN is ever compromised (e.g., a shared family device), just
change it in PICK_PINS, redeploy, and their old saved PIN on every device
stops working — they'll be asked to enter the new one next time.
npm install
vercel dev
vercel dev needs the same environment variables locally, including
PICK_PINS — run vercel env pull after linking the project to pull them
into a .env.local file.
results:week{n}), progress counts, and lock status
(locked:week{n}:{name}) are intentionally public — everyone needs to
see final results and who's submitted. Only the specific teams someone
picked stay gated, and only until that person submits.WEEKS object near the top of the
<script> in index.html — add a new week's games there each week and
redeploy.COMMISSIONER_PIN,
entered once per device the same way the personal pick PINs work.