Skip to content

gavinhaggis/physioo

Repository files navigation

Physioo

A personal physio exercise companion built as a Progressive Web App. Designed to be installed on Android and used daily without an account or backend. Reliant on local storage and sticky tape.

Live site

Features

  • Exercise tracking — log sessions, track daily and weekly exercises with pip indicators
  • Timers — built-in countdown timer for timed exercises, with auto-reset between sessions
  • Streak — counts consecutive days all daily exercises were completed
  • History — per-day completion log for the last 30 days
  • Exercise editor — add custom exercises, edit or hide any built-in exercise, set timers on anything
  • Push notifications — morning, midday, and evening reminders scheduled via service worker
  • Offline support — all app assets cached; works without a network connection after first load
  • Installable — full PWA with manifest, service worker, and install prompt

Stack

Plain HTML, CSS, and JavaScript — no build step, no framework, no dependencies. State is persisted in localStorage with a versioned migration system.

Running locally

node server.js

Opens on http://localhost:3000. The server adds correct MIME types for .mp3 files and serves the root directory statically.

Deployment

The app deploys automatically to GitHub Pages via .github/workflows/deploy.yml on every push to main.

To enable it on a new repo: Settings → Pages → Source → GitHub Actions.

The live URL will be https://<username>.github.io/<repo>/.

Data model

All data lives in localStorage under physioo-state:

{
  version: 4,
  completions: { 'YYYY-MM-DD': { 'exercise-id': sessionCount } },
  customExercises: [],       // user-added exercises
  exerciseEdits: {},         // overrides for built-in exercises
  hiddenExercises: [],       // built-ins removed from the program
  settings: {
    daily: false,
    morningTime: '08:00',
    middayTime:  '13:00',
    eveningTime: '19:00'
  },
  streak: 0
}

Migrations run automatically on load when version is behind the current STATE_VERSION.

About

Installable PWA for my own physio needs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors