Diario alimentare
Quattro pasti al giorno, e come confronto la media dei sette giorni precedenti al posto di un obiettivo calorico da rispettare.
Le app per contare quello che si mangia hanno tutte un traguardo da centrare, ed è il traguardo la parte che fa smettere dopo una settimana.
FastAPI e SQLite dietro, React e Vite davanti, serviti dallo stesso processo. Gli alimenti si cercano prima in casa — FTS5 sui nomi normalizzati — e poi fra circa 850 alimenti di base ricavati dalla tabella CIQUAL e i prodotti di Open Food Facts, per nome o per codice a barre. Quello che si usa resta in archivio, così il database nutrizionale si costruisce con l’uso invece di arrivare già pieno.
La schermata del giorno mostra i quattro pasti e tre barre per proteine, carboidrati e grassi. Il totale calorico resta nel riepilogo chiuso in fondo: sopra 2000 kcal chiede se c’è stata attività, senza trasformare quella soglia in un obiettivo. La dashboard naviga settimane, mesi e anni; nella settimana mostra anche sette categorie di alimenti e quanti alimenti diversi di ciascuna sono entrati nei pasti. Le ricette della nutrizionista possono essere proposte per pranzo e cena, e si registrano solo quando tutti gli ingredienti sono collegati a un alimento.
La regola che tiene in piedi il resto è una: ogni voce conserva i valori calcolati nel momento in cui è stata scritta. Correggere un alimento oggi non tocca le giornate passate, e il riallineamento è un’azione esplicita. Nella stessa famiglia stanno le altre due: un nutriente che manca resta «non lo so» fino al badge incompleto invece di diventare zero, e le medie contano solo i giorni davvero registrati — un giorno vuoto interrompe la linea del grafico, non la tira giù. Sono i tre errori che non romperebbero nessuna schermata e falserebbero tutto in silenzio: i test si concentrano lì.
Nasce dalla richiesta di un amico e da un design handoff di cinque schermate, con i colori e la tipografia decisi assieme su richiesta.
Una trappola trovata scrivendo: l’endpoint cgi/search.pl di Open Food Facts, quello che la documentazione indica per la ricerca testuale, risponde 503. Funziona solo search.openfoodfacts.org; il codice a barre invece sta dove ci si aspetta.