Skip to content

dynaum/bplog

Repository files navigation

bplog

Two readings a day, a record you actually keep, and a clean report your doctor can read in seconds.

bplog is a blood-pressure logging app for your phone. Log your numbers morning and evening, tag how you felt, watch the trend, and hand your doctor a printable summary. Everything stays on your device.

Open the app

License: MIT PWA No tracking Storage


Why bplog

  • Logging takes seconds, so you keep doing it. Two readings a day is the whole routine.
  • Your data lives on your phone. No account, no server, no tracking.
  • Your doctor gets a clear report, not a photo of a paper notebook.
  • It works offline and installs to your home screen like a native app.

Screenshots

Log Trends History
Log screen Trends screen History screen

Features

  • Fast entry: systolic, diastolic, and pulse with large, readable number fields.
  • One-tap symptoms: mark a headache, dizziness, chest discomfort, fatigue, or stress without typing. A free note is there when you want it.
  • Today at a glance: the log screen shows whether you have logged your morning and evening readings.
  • Live category: each reading is classed against the American Heart Association ranges (Normal, Elevated, Stage 1, Stage 2, Hypertensive crisis) with a clear label and color.
  • Trends: a chart of systolic, diastolic, and pulse over 7, 30, or 90 days, or all time, with averages, highs and lows, and a category breakdown.
  • Doctor report: a print and PDF friendly page with the summary, the chart, and a full table of every reading.
  • Backups: export your data to a file you control and import it to restore or move to another device.
  • Light and dark themes, large tap targets, and a layout built for one-handed use.

Privacy and data retention

bplog is local first. Your readings never leave your device unless you export them yourself.

  • Where your data lives: in your browser's IndexedDB on your device, in a database named bplog with two stores, readings and settings. There is no account and no server.
  • No network for your data: readings are never uploaded. There is no analytics, no tracking, and no third-party sharing. The app makes no backend calls.
  • How long it is kept: your readings stay on your device for as long as you keep them. There is no expiry and no automatic cleanup. The app never deletes old entries on its own.
  • What removes data: choosing "Clear all data" in More (with a confirm), importing a backup and choosing Replace instead of Merge, clearing your browser's site data, or removing the installed app. Browsers can also evict site storage when the device is very low on space, so keep a backup.
  • Backups are yours: export writes a JSON file you store wherever you like. Import restores it or moves it to another device. Export is the only time your data leaves the device, and only when you trigger it.
  • The doctor report renders in your browser and is printed or saved as a PDF by you. Nothing is uploaded.
  • One external request: the app loads its fonts from Google Fonts (fonts.googleapis.com and fonts.gstatic.com). That request carries your IP and normal browser headers for font delivery and never includes your readings. Self-hosting the fonts to remove this request is on the roadmap.
  • Transport: the app and its assets are served over HTTPS.

Use it

  1. Open bplog.dynaum.com on your phone.
  2. Add it to your home screen for an app-like, offline experience.
  3. Log a reading in the morning and the evening.
  4. Open More, then Doctor report, before your next appointment.

Run locally

git clone https://github.com/dynaum/bplog.git
cd bplog
npm install
npm run dev      # start the dev server
npm test         # run the test suite
npm run build    # production build

How it is built

React, Vite, and TypeScript with MUI (Material 3) and @mui/x-charts. Storage is IndexedDB through idb. The PWA layer uses vite-plugin-pwa. Domain logic (classification, validation, statistics) lives in src/lib with no UI dependencies and is unit tested. The app deploys to GitHub Pages on every push to main.

Accessibility

bplog targets WCAG 2.1 AA. It uses semantic landmarks and labels, keeps color from being the only signal, meets AA contrast, respects reduced-motion, and ships an automated axe check in the test suite. The trend chart has a text-table equivalent for screen readers.

Contributing

Issues and pull requests are welcome. Run npm test and npm run build before opening a PR.

License

MIT. See LICENSE.

About

Blood-pressure logging PWA — log twice a day, track trends, print a doctor report. Local-first.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors