Workout Logger

Draw.Io Sketches

Veb aplikacija za zapisivanje treninga bazirana na tekstu, sa pristupačnim GUI-jem. Workout logovi mogu biti ili backup-ovani od strane korisnika (u Excel tablici), ili kao tekst. Dodatno, sistem može pružiti cloud backup.

(Ovaj sadržaj preveden na Srpski korištenjem vještačke inteligencije)

Sveska i olovka bi pružila bolje UX, ali nisu lako da se nose u teretani, tako da ova webapp omogućava skladištenje logova na telefonu, i export treninga drugde, kao tekst.

Kome je ovo namenjeno?

  1. Pravi jedan trening, exportuje ga u CSV, pa Google Sheets. Mislim da bi neki korisnici to voleli. Ni ne moraju da gledaju log unutar aplikacije.
  2. Pravi jedan trening, exportuje kao tekst, i snima u fajl. Ovo sam bio ja, neko vreme.
  3. Korisnici kojima nije bitno, koji žele MENI da čuvam, za njih. Na bilo koji način koji ja nađem najjeftiniji i siguran.
  4. Korisnici 1 i 2, koji mogu imati veliki log, i odluče da ga uvozu, i onda koriste feature kao:
    1. pamteći uobičajena vežbanja
    2. uzmu prethodni trening kao šablon
    3. Snimaju šablone? Gde? Kao šta podatke? Samo prazan trening?

Tieri

Demo dozvoljava:

Aplikacioni tieri

  1. Demo -> Samo dummy ponašanje.
  2. Lični Backup - Jednoplaćanje, jer je 100% upotrebljivo offline. Instaliraj PWA sa magic linkom. (Pratim ga u bazi podataka)
  3. Cloud Backup. Zahteva trajni JWT na strani klijenta, pošto korisnik može želeti da backupuje u bilo koje vreme. Takođe praćen u bazi podataka.

Arhitektura

  1. Klijent = Vanilla JS. Progressive Web Application. Single Page Application, čuvajući podatke u IndexedDB-a i periodično sinhronizujući ka spolja - cloud ili ne.
  2. Host = Cloudflare pages ili VPS
  3. Server = Fastify
  4. Persistentnost = PostgresSQL
  5. Jedan server ili više?

Lični backup

  1. Offline prvi PWA
  2. Autentifikacioni server. Ili možda, potreban samo za instalaciju?
  3. Import/Export CSV ili txt.

Cloud Backup

  1. Zahteva konstantnu autentifikaciju?
Napomena

Persistentnost

Tieri

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.

NAJPRVI NAPRAVI APLIKACIJU OFFLINE