smooth-app
A collaborative, free and open database of ingredients, nutrition facts and information on food products from around the world
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A personal HRV tracking web app built for Apple Watch data exported via Health Auto Export. Runs entirely in the browser — no server, no account. Data stored in localStorage with optional GitHub sync.
Slow Wave Sync (primary method)
Paste three Health Auto Export JSON exports together — previous day HRV, morning HRV, and sleep analysis. The app matches each HRV reading against Apple Watch sleep stage segments in priority order:
Priority 1 — Deep Sleep HRV
HRV readings whose timestamp falls inside a Deep (slow wave) sleep segment. Collected first, any time of night.查看完整 README ↗An overnight recovery tracker for Apple Watch data exported with Health Auto Export. It tracks HRV, resting heart rate, respiratory rate and wrist temperature, plus training load, tags and ectopy. Each metric is judged against your own rolling baselines.
It runs entirely in the browser as an installable PWA, with no server and no account. Data lives on the device and, optionally, syncs to a JSON file per user in this repo.
Live app: https://altroad.github.io/HRV-Tracker/
| # | Panel | What it shows |
|---|---|---|
| 1 | Baselines strip | Current baselines: HRV · RHR · RR · TEMP · KCAL |
| 2 | Top card | Latest / 3D avg / 7D avg / Trend, with the zones underneath. It auto-rotates HRV → RHR → RR → Kcal → Temp every 5 s; tap to flip manually (auto-rotation stops for the session). |
| 3 | Status | A combined verdict from the latest night, with HRV · RHR · RR · Temp columns. Tap it for the Status Reference. |
| 4 | Today panel | The night's HRV · RHR · RR · TEMP, the sleep-stage strip and stats, and the readings used. Below a divider is the previous day's activity: kcal (tap to edit), Quick Add + and tags. |
| 5 | Capture Window | Auto or manual shift of the overnight windows (below) |
| 6 | Chart | 14D / 60D trend of HRV, RHR, RR, Temp and Kcal |
| 7 | Year at a Glance | Heatmap: HRV, RHR, Kcal, Temp or Ect |
| 8 | Data Analysis | Every entry, with averages, sorting, note search and tag filters |
An iOS Shortcut uploads the morning's Health Auto Export JSON to the inbox, either data/inbox-<user>.json or a timestamped file in data/inbox-<user>/. When the app opens it:
Each reading is dated from the data itself, not from when the app was opened.
Copy the export and tap IMPORT, or paste it via ≡ → Overnight Capture. If that date already has a reading, you're asked to REPLACE or KEEP it.
| Export | Required | Used for |
|---|---|---|
| HRV (yesterday + this morning) | ✓ | HRV capture |
| Sleep analysis | ✓ | Sleep stages, timeline, RR matching |
| Heart rate | RHR | |
| Respiratory rate | RR | |
| Sleeping wrist temperature | Temp | |
| Workouts | Kcal (previous day) |
Respiratory-rate history: an upload containing respiratory rate and sleep analysis but no HRV, e.g. a few weeks exported in one go, only backfills RR for every night in it. HRV entries are left untouched.
Chips show the readings used: dark blue = deep, cyan = core, dark red = trimmed. Readings recorded back to back share one bordered block.
A late night pushes sleep later, so the Core top-up and RHR windows can shift by up to 1 hour.
The deep anchor always follows actual deep sleep.
The lowest stretch of heart rate lasting at least 9 minutes (gaps up to 7 min bridged), between midnight and 3:30am, shifted by the capture window.
The plain average of every Apple Watch respiratory-rate sample taken during Core, Deep or REM sleep in the night's main sleep session. Awake, "In Bed" and daytime samples are excluded, and at least 5 samples are needed. This matches AutoSleep's nightly figure.
Apple Watch's sleeping wrist temperature, taken from the export.
An entry's kcal is the previous day's activity, the session that shaped that morning's numbers. If Strava and Garmin record the same ride, it's counted once (Strava preferred). Extra activity can be added with Quick Add + or ≡ → Log Reading.
| Metric | Baseline | Zones |
|---|---|---|
| HRV | Average of the last 12 months (all data until then) | High ≥ 110% · Good 95–110% · OK 80–95% · Low < 80% |
| RHR | Average of the last 90 logged nights | Excellent ≤ +1 · Good +2–4 · Elevated +5–7 · High ≥ +8 bpm |
| RR | Average of the 30 nights before each night (needs 7) | Low ≤ −1 (informational) · Normal −1 to +1 · Elevated +1–2 · High ≥ +2 breaths/min |
| Temp | Manual start, then the median of the last 14 nights after 7 | Low < −0.5° · Normal ±0.5° · High > +0.5° |
| Kcal | 42-day average | Low / Medium / High / Extreme relative to it |
Starting baselines for Temp and RR can be set in ≡ → Set Baselines. A manual value applies until 7 nights have been logged after it, then the rolling baseline takes over.
A low RR isn't a warning. A lower sleeping rate usually means deeper, calmer sleep or improving fitness, and it's normal for a while after returning from altitude.
The status message combines the latest HRV zone × RHR zone (16 messages) and adds notes for a raised temperature, an elevated or high RR, or a low RR. Four warning signals escalate it:
HRV Low · RHR High · Temp > +0.5° · RR +1 or more
| Signals | Result |
|---|---|
| Temp + RR up while HRV and RHR hold | Early illness signal (amber) |
| Any 3 of the 4 | Triple-system alarm (red), naming the three |
| All 4 | Quadruple-system alarm (red) |
Tap the status bar for every combination.
A morning rating at the top of the Today panel, so subjective feel can be compared with the data:
| 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|
| Wrecked | Flat | OK | Good | Great |
Tap a tag pill (or TAG) to open the picker. Lit options are active; tap to toggle. Days without an HRV reading (e.g. travel days logged with only RHR or kcal) can be tagged too; the tags move onto the HRV reading if one is logged for that day later.
Training load (one at a time): Rest, Active Recovery, <100TSS, 100-200TSS, 200-300TSS, 300TSS+, Race
Sick · Sauna · Cold: independent toggles
Ectopy (PACs), one grade, logged on the morning entry for the previous day's ride:
A logged ECT 0 is kept separate from a day that wasn't logged.
data/<user>.json. The token is kept in the browser only.Baseline_Backup.csv with the columns date, hrv, rhr, temp, note, tag, activities, ectopy, rr, kcal, feel. activities holds Sick/Sauna/Cold, and kcal holds the previous day's items as Name=kcal;Name=kcal. Import CSV restores it (adding only what's missing).| File | Purpose |
|---|---|
index.html | The whole app: HTML, CSS and JS in one file |
sw.js | Service worker: network-first HTML, cached fonts, icons and Chart.js |
manifest.json | PWA manifest |
fonts/ | Self-hosted fonts |
data/<user>.json | Synced data per user |
data/inbox-<user>… | Shortcut uploads waiting to be imported |