GitHub - not-a-feature/GHealth_Dashboard · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
not-a-feature
GHealth_Dashboard
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>5 Commits<br>5 Commits
js
js
README.md
README.md
index.html
index.html
styles.css
styles.css
View all files
Repository files navigation
GHealth Dashboard
Live demo: https://not-a-feature.github.io/GHealth_Dashboard/
A private dashboard for your Google Health data — steps, sleep, heart rate,<br>workouts and more - pulled straight from the Google Health API into your<br>browser.
Plain static site. The files talk to Google's OAuth and Health API<br>directly from the browser. Your credentials, tokens and cached data live<br>only in local storage — no server involved.
Demo mode: append ?demo=1 to the URL to try the UI with sample data —<br>no Google account needed.
Run it or use the demo
python -m http.server 8180<br># or: npx serve
Or host it anywhere (GitHub Pages, Netlify, your own server) and register that<br>exact URL in your OAuth client's origins/redirect URIs.
One-time Google setup
Google Cloud Console → create a<br>project.
APIs & Services → Library → enable "Google Health API".
APIs & Services → OAuth consent screen → type External → add<br>yourself as a test user (required, or sign-in fails with<br>access_denied).
APIs & Services → Credentials → Create credentials → OAuth client ID →<br>Desktop app for localhost, Web application for a hosted site.
Paste the Client ID /Secret into the dashboard's setup screen, sign<br>in. The "unverified app" warning is expected — choose Continue.
In Testing mode, sign-in expires after ~7 days. Publishing the consent<br>screen (still just for you) removes that limit.
What you get
Today: stat tiles (steps, active zone minutes, active energy, resting<br>HR, sleep, weight) with trends, a weekly cardio-load ring, and today's<br>intraday HR curve.
Trends (7/30/90 days): steps, sleep stages, resting HR, weight, AZM,<br>active energy, HRV, SpO₂, respiratory rate, HR zones, distance, floors,<br>VO₂ max, body fat (when available). Click any tile for a 90-day<br>drill-down; click a night for its hypnogram.
Workouts: activity list with duration/distance/calories/HR; detail<br>page adds an HR curve, GPS route map, pace splits and elevation profile.
Every chart has a Table toggle and CSV export. Light/dark theme<br>follows your system.
Troubleshooting
"Couldn't load" / 403: that data type may not exist for your<br>account/device, or the API isn't enabled in your Cloud project.
Stale numbers: it paints from cache then re-fetches; Refresh<br>forces it.
Sleep without stages: shown as "light" sleep (Google doesn't break it<br>down).
Missing day: a gap, not a zero — device likely wasn't worn/synced.
Sign-in fails in one browser only: re-paste credentials via "Change<br>API credentials…" or try another profile.
Sign out (top right) revokes the token and clears local caches.
Layout
index.html app shell: setup → sign-in → dashboard → detail pages<br>styles.css light/dark theme<br>js/app/ OAuth PKCE flow, API client, caching, rendering<br>js/charts/ hand-rolled SVG charts
About
not-a-feature.github.io/GHealth_Dashboard/
Resources
Readme
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
stars
Watchers
watching
Forks
forks
Report repository
Releases
No releases published
Packages
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh oh!
There was an error while loading. Please reload this page.
Languages
JavaScript<br>79.6%
CSS<br>12.7%
HTML<br>7.7%
You can’t perform that action at this time.