Tutti i progetti personali

RosaLog

La stessa cosa di IronLog, ma nel browser: riscritta in HTML, CSS e JavaScript senza una sola dipendenza, senza build e senza server. I dati stanno nel localStorage, il file di export e' identico a quello dell'app.

Contesto
Progetto personale
Ruolo
Sviluppo completo
Stack
HTML · CSS · JavaScript, zero dipendenze
Dati
localStorage del browser
Stato
Funzionante, installabile da telefono
Home di RosaLog: titolo "I tuoi periodi" e la card di un periodo in corso, alla settimana 1 di 8.
La home dei periodi. Stessa struttura di IronLog, tavolozza rosa al posto del rosso su nero
Modulo Nuovo esercizio di RosaLog: nome Squat, 4 serie da 8 a 12 ripetizioni e tre caselle, Serie variabili, Carico a zavorra e Super serie, tutte spente.
Il modulo per aggiungere un esercizio alla scheda
Lo stesso modulo con Super serie spuntata: sotto compare il riquadro Secondo esercizio con nome Croci ai cavi, ripetizioni da 10 a 15 e la casella del carico a zavorra.
Con la super serie accesa compare il secondo esercizio, con ripetizioni e zavorra sue

Descrizione del progetto

RosaLog l'ho fatto per la mia fidanzata: è IronLog portato nel browser, con la tavolozza rosa al posto del rosso su nero.

Stessa struttura a tre livelli dell'app: periodi con durata e stato calcolato sul giorno, scheda con serie, range di ripetizioni, zavorra e riordino, sedute generate copiando la scheda in modo che modificarla non riscriva lo storico.

  • Serie variabili — il numero di serie non è fisso nella scheda: l'app lo chiede all'inizio di ogni seduta. Utile durante una fase di accumulo ad esempio, dove le serie aumentano dentro lo stesso periodo.
  • Super serie — a un esercizio della scheda se ne può legare un secondo, da fare subito dopo senza pausa, con le sue ripetizioni e la sua zavorra.
  • Volume — somma di carico per ripetizioni, aggiornata mentre si digita.
  • Ultimo carico — mostrato come segnaposto, preso dall'ultima seduta con lo stesso esercizio dentro il periodo.
  • Excel — export e import di un foglio .xls nello stesso formato dell'app Flutter, quindi i dati passano da un dispositivo all'altro e si correggono a mano se serve.
  • Backup JSON — copia esatta di tutto, per spostarsi tra domini diversi.
  • Installabile — con il manifest si aggiunge alla schermata home e si apre a tutto schermo come un'app.

Cinque file e nient'altro: la pagina, il foglio di stile, i dati e le regole, il lettore del foglio Excel, l'interfaccia e le schermate. Si aprono con un doppio clic, senza installare niente.

Dettaglio di un periodo di RosaLog senza esercizi: la scheda invita ad aggiungerli e la sezione Sedute avvisa che vengono generate dalla scheda.
Il periodo appena creato: senza scheda non ci sono sedute, e l'app lo dice invece di mostrare un elenco vuoto

Tech stack

LinguaggiHTML, CSS e JavaScript, nessuna libreria
PersistenzalocalStorage, legato all'origine del sito
ExportSpreadsheetML 2003 generato a mano, compatibile con IronLog

Problema risolto

IronLog gira solo dove ho installato l'APK. Se sono al computer, o se il telefono e' scarico, i miei allenamenti non esistono. E ogni modifica all'app richiede build, cavo e installazione: troppa cerimonia per correggere una riga.

Volevo la stessa cosa raggiungibile da un indirizzo, aggiornabile trascinando una cartella e capace di scambiare dati con la versione Flutter. Da qui il formato di export condiviso: e' il ponte tra le due versioni, non un allegato.

C'era anche una seconda ragione, piu' personale: rifare da zero un progetto che conoscevo gia' bene, ma senza framework, per vedere quanta parte del lavoro fosse davvero mia e quanta me la stesse facendo Flutter.