smooth-app
전 세계 식품의 성분·영양·정보를 자유롭게 협업하고 공개하는 데이터베이스
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 |