Workout Logger

Draw.Io Sketches

Text based workout logging app, with an accessible GUI. A temporary log is kept inside the app, shown as text. Workout logs can be either backed up by the user (in an Excel sheet), or as text. Aditionally, the system may provide cloud backup.

A notebook and pen would provide better UX, but they're not easy to carry in a gym, so this webapp allows storing logs on your phone, and exporting the workout elsewhere, as text.

Who is this for?

  1. Makes a single workout, exports it to CSV, so Google Sheets. I think some users would like that. They don't even need to view the log inside the app.
  2. Makes a single workout, exports as text, and saves in a text file. This was me, for a while.
  3. Users who don't care, who want ME to persist it, for them. In whichever way I find most cheap and efficient, and safe.
  4. Users 1 and 2, who might have a big log, and decide to import it, and then use features like:
    1. remembering common exercises
    2. take a previous workout as a template
    3. Save templates? Where? As what data? Just an empty workout?

Tiers

Demo allows:

App tiers

  1. Demo -> Only dummy behavior.
  2. Personal Backup - One time purchase, because it's 100% usable offline. Install PWA with magic link. (I track it in a database)
  3. Cloud Backup. Requires a persistent JWT on the client side, because a user might wanna back up at any time. Also tracked in the database.

Architecture

  1. Client = Vanilla JS. Progressive Web Application. Single Page Application, keeping data in IndexedDB and periodically syncing to the outside - cloud or not.
  2. Host = Cloudflare pages or VPS
  3. Server = Fastify
  4. Persistence = PostgresSQL
  5. One server or many?

Personal backup

  1. Offline first PWA
  2. Authentication server. Or perhaps, it's only required for installing?
  3. Import/Export CSV or txt.

Cloud Backup

  1. Requires constant authentication?
Note

Persistence

Tiers

Status Icon Label What it means
🟢 Storage: Protected persist() was granted. The OS won't touch it.
🟡 Storage: Standard Data is safe, but the OS might clear it if the phone gets full.
🔴 Storage: Low Space The device is almost full. Data is at risk.

MAKE THE APP OFFLINE FIRST