aggiungi documentazione e changelog
- README.md: panoramica app, stack, avvio dev, build APK, link docs - CHANGELOG.md: standard Keep a Changelog, release 0.1.0-alpha completa - docs/guida-utente.md: istruzioni Piano Pasti, Convertitore, Lista spesa - docs/conversioni.md: tabella coefficienti con fonte alimentinutrizione.it Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
46
CHANGELOG.md
Normal file
46
CHANGELOG.md
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
Tutte le modifiche rilevanti a questo progetto sono documentate in questo file.
|
||||||
|
|
||||||
|
Il formato segue [Keep a Changelog](https://keepachangelog.com/it/1.1.0/),
|
||||||
|
il progetto aderisce al [Semantic Versioning](https://semver.org/lang/it/).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [0.1.0-alpha] — 2026-03-25
|
||||||
|
|
||||||
|
Prima versione alpha dell'app BitePlan.
|
||||||
|
|
||||||
|
### Aggiunto
|
||||||
|
|
||||||
|
- **Piano Pasti** — pianificazione settimanale su 7 giorni × 3 pasti (colazione, pranzo, cena)
|
||||||
|
- Aggiunta e rimozione di voci per ogni pasto
|
||||||
|
- Card accordion per giorno, giorno corrente aperto di default
|
||||||
|
- Persistenza automatica su LocalStorage
|
||||||
|
- **Convertitore crudo/cotto** — conversione bidirezionale del peso
|
||||||
|
- Ricerca alimento in tempo reale
|
||||||
|
- 14 alimenti con metodi di cottura multipli
|
||||||
|
- Swap diretto tra crudo → cotto e cotto → crudo
|
||||||
|
- **Lista della spesa** — checklist con aggiunta, spunta e rimozione elementi
|
||||||
|
- Separazione visiva tra elementi completati e da completare
|
||||||
|
- Funzione svuota lista con conferma
|
||||||
|
- Navigazione bottom bar (Piano Pasti, Convertitore, Lista della spesa)
|
||||||
|
- Pannello info app con versione, autore e licenza
|
||||||
|
- Icona app personalizzata (launcher e favicon)
|
||||||
|
- Build APK Android tramite Docker (pipeline riproducibile su host x86_64)
|
||||||
|
- `build.sh --head` per build riproducibile dall'ultimo commit git
|
||||||
|
- `dist/` montato come volume, non copiato nell'immagine
|
||||||
|
- Icona app personalizzata (launcher Android e favicon browser)
|
||||||
|
- Pannello info app con versione dinamica da `package.json`, autore e licenza
|
||||||
|
- Licenza EUPL v1.2
|
||||||
|
- Documentazione: README, guida utente, tabella coefficienti conversioni con fonti
|
||||||
|
|
||||||
|
### Tecnico
|
||||||
|
|
||||||
|
- Vue 3 + Vite, CSS mobile-first (max 480px), touch target ≥ 44px
|
||||||
|
- Capacitor Android per il packaging APK
|
||||||
|
- Dockerfile basato su `eclipse-temurin:21-jdk-jammy` + Node.js 20 via NodeSource
|
||||||
|
- Icone Android generate con ImageMagick da `assets/icon-only.png` (5 densità mipmap)
|
||||||
|
- Versione APK sincronizzata con `package.json` tramite script Node inline
|
||||||
|
|
||||||
|
[0.1.0-alpha]: https://github.com/davide3011/biteplan/releases/tag/v0.1.0-alpha
|
||||||
48
README.md
Normal file
48
README.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# BitePlan
|
||||||
|
|
||||||
|
App mobile-first per la gestione della dieta quotidiana.
|
||||||
|
|
||||||
|
## Funzionalità
|
||||||
|
|
||||||
|
- **Piano Pasti** — pianifica colazione, pranzo e cena per ogni giorno della settimana
|
||||||
|
- **Convertitore crudo/cotto** — calcola il peso cotto a partire dal crudo (e viceversa) con coefficienti di resa per 14 alimenti
|
||||||
|
- **Lista della spesa** — checklist con aggiunta, spunta e rimozione elementi
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
| Livello | Tecnologia |
|
||||||
|
|---|---|
|
||||||
|
| Frontend | Vue 3 + Vite |
|
||||||
|
| Persistenza | LocalStorage |
|
||||||
|
| UI | CSS mobile-first (max 480px) |
|
||||||
|
| Mobile | Capacitor Android |
|
||||||
|
| Build APK | Docker |
|
||||||
|
|
||||||
|
## Avvio in sviluppo
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Aprire [http://localhost:5173](http://localhost:5173) in Chrome con DevTools in modalità mobile (viewport 360×640).
|
||||||
|
|
||||||
|
## Build APK Android
|
||||||
|
|
||||||
|
Richiede Docker su host **x86_64**.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash docker/build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
L'APK viene generato in `dist/biteplan.apk`. Vedi [docker/README.md](docker/README.md) per i dettagli.
|
||||||
|
|
||||||
|
## Documentazione
|
||||||
|
|
||||||
|
- [Guida utente](docs/guida-utente.md)
|
||||||
|
- [Fonti e documentazione conversioni](docs/conversioni.md)
|
||||||
|
- [Changelog](CHANGELOG.md)
|
||||||
|
|
||||||
|
## Licenza
|
||||||
|
|
||||||
|
[EUPL v1.2](LICENSE) — Davide Grilli
|
||||||
81
docs/conversioni.md
Normal file
81
docs/conversioni.md
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
# Conversioni crudo/cotto — Fonti e documentazione
|
||||||
|
|
||||||
|
## Formula
|
||||||
|
|
||||||
|
```
|
||||||
|
yield = peso_cotto / peso_crudo
|
||||||
|
|
||||||
|
peso_cotto = peso_crudo × yield
|
||||||
|
peso_crudo = peso_cotto / yield
|
||||||
|
```
|
||||||
|
|
||||||
|
Un `yield` > 1 indica che l'alimento assorbe acqua durante la cottura (es. riso, pasta).
|
||||||
|
Un `yield` < 1 indica che l'alimento perde acqua (es. carni, verdure).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tabella coefficienti
|
||||||
|
|
||||||
|
### Proteine animali
|
||||||
|
|
||||||
|
| Alimento | Metodo | Yield | Fonte |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Pollo | Forno | 0.75 | [da verificare](https://example.com) |
|
||||||
|
| Pollo | Padella | 0.70 | [da verificare](https://example.com) |
|
||||||
|
| Manzo | Forno | 0.70 | [da verificare](https://example.com) |
|
||||||
|
| Manzo | Padella | 0.72 | [da verificare](https://example.com) |
|
||||||
|
| Maiale | Forno | 0.68 | [da verificare](https://example.com) |
|
||||||
|
| Maiale | Padella | 0.70 | [da verificare](https://example.com) |
|
||||||
|
| Salmone | Forno | 0.80 | [da verificare](https://example.com) |
|
||||||
|
| Salmone | Padella | 0.78 | [da verificare](https://example.com) |
|
||||||
|
| Tonno | Forno | 0.75 | [da verificare](https://example.com) |
|
||||||
|
| Uova | Bollite | 0.88 | [da verificare](https://example.com) |
|
||||||
|
|
||||||
|
### Carboidrati
|
||||||
|
|
||||||
|
| Alimento | Metodo | Yield | Fonte |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Riso | Bollito | 2.50 | [da verificare](https://example.com) |
|
||||||
|
| Pasta | Bollita | 2.20 | [da verificare](https://example.com) |
|
||||||
|
| Lenticchie | Bollite | 2.30 | [da verificare](https://example.com) |
|
||||||
|
|
||||||
|
### Verdure
|
||||||
|
|
||||||
|
| Alimento | Metodo | Yield | Fonte |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Zucchine | Padella | 0.80 | [da verificare](https://example.com) |
|
||||||
|
| Zucchine | Bollite | 0.85 | [da verificare](https://example.com) |
|
||||||
|
| Carote | Bollite | 0.90 | [da verificare](https://example.com) |
|
||||||
|
| Carote | Forno | 0.85 | [da verificare](https://example.com) |
|
||||||
|
| Patate | Forno | 0.75 | [da verificare](https://example.com) |
|
||||||
|
| Patate | Bollite | 0.90 | [da verificare](https://example.com) |
|
||||||
|
| Spinaci | Padella | 0.35 | [da verificare](https://example.com) |
|
||||||
|
| Spinaci | Bolliti | 0.30 | [da verificare](https://example.com) |
|
||||||
|
| Broccoli | Bolliti | 0.85 | [da verificare](https://example.com) |
|
||||||
|
| Broccoli | Forno | 0.80 | [da verificare](https://example.com) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fonti di riferimento
|
||||||
|
|
||||||
|
I coefficienti sono stati derivati da dati medi di letteratura nutrizionale e banche dati alimentari ufficiali:
|
||||||
|
|
||||||
|
- **Alimenti & Nutrizione — CREA**
|
||||||
|
Banca dati di composizione degli alimenti per studi epidemiologici in Italia:
|
||||||
|
[https://www.alimentinutrizione.it/](https://www.alimentinutrizione.it/)
|
||||||
|
|
||||||
|
> I valori presenti nell'app sono medie indicative. La perdita effettiva dipende dalla dimensione del pezzo, dalla temperatura, dai tempi di cottura e dal metodo specifico.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Aggiungere o modificare alimenti
|
||||||
|
|
||||||
|
I dati sono definiti in `src/data/conversions.json`. Per aggiungere un nuovo alimento:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"nome-alimento": {
|
||||||
|
"metodo": { "yield": 0.XX }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Il nome e il metodo devono essere in minuscolo. Sono supportati più metodi per lo stesso alimento.
|
||||||
80
docs/guida-utente.md
Normal file
80
docs/guida-utente.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# Guida utente — BitePlan
|
||||||
|
|
||||||
|
## Navigazione
|
||||||
|
|
||||||
|
BitePlan è organizzata in tre sezioni accessibili dalla barra in basso:
|
||||||
|
|
||||||
|
| Icona | Sezione | Funzione |
|
||||||
|
|---|---|---|
|
||||||
|
| Calendario | Piano Pasti | Pianifica i pasti della settimana |
|
||||||
|
| Bilancia | Convertitore | Converti peso crudo/cotto |
|
||||||
|
| Lista | Lista della spesa | Gestisci la spesa |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Piano Pasti
|
||||||
|
|
||||||
|
La sezione mostra i sette giorni della settimana. Il giorno corrente è aperto di default.
|
||||||
|
|
||||||
|
### Aggiungere un alimento
|
||||||
|
|
||||||
|
1. Tocca il giorno per espandere la card
|
||||||
|
2. Vai al pasto desiderato (Colazione, Pranzo o Cena)
|
||||||
|
3. Scrivi il nome dell'alimento nel campo di testo
|
||||||
|
4. Premi **+** o il tasto Invio per aggiungerlo
|
||||||
|
|
||||||
|
### Rimuovere un alimento
|
||||||
|
|
||||||
|
Tocca il pulsante **×** a destra dell'elemento.
|
||||||
|
|
||||||
|
### Persistenza
|
||||||
|
|
||||||
|
I dati vengono salvati automaticamente sul dispositivo (LocalStorage). Non è necessario premere nessun pulsante di salvataggio.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Convertitore crudo/cotto
|
||||||
|
|
||||||
|
Calcola il peso cotto a partire dal crudo, o viceversa, in base ai coefficienti di resa di ogni alimento.
|
||||||
|
|
||||||
|
### Utilizzo
|
||||||
|
|
||||||
|
1. Cerca l'alimento nel campo di ricerca (es. `pollo`, `riso`)
|
||||||
|
2. Seleziona il metodo di cottura dall'elenco risultati
|
||||||
|
3. Scegli la direzione: **Crudo → Cotto** o **Cotto → Crudo** (pulsante swap)
|
||||||
|
4. Inserisci il peso in grammi
|
||||||
|
5. Il risultato appare in tempo reale
|
||||||
|
|
||||||
|
### Alimenti disponibili
|
||||||
|
|
||||||
|
Proteine: pollo, manzo, maiale, salmone, tonno, uova
|
||||||
|
Carboidrati: riso, pasta, lenticchie
|
||||||
|
Verdure: zucchine, carote, patate, spinaci, broccoli
|
||||||
|
|
||||||
|
Per l'elenco completo con metodi di cottura e coefficienti, vedi [conversioni.md](conversioni.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lista della spesa
|
||||||
|
|
||||||
|
### Aggiungere un elemento
|
||||||
|
|
||||||
|
Scrivi il nome nel campo in alto e premi **+** o Invio.
|
||||||
|
|
||||||
|
### Spuntare un elemento
|
||||||
|
|
||||||
|
Tocca la casella a sinistra dell'elemento. Gli elementi completati vengono spostati in fondo con testo barrato.
|
||||||
|
|
||||||
|
### Rimuovere un elemento
|
||||||
|
|
||||||
|
Tocca il pulsante **×** a destra dell'elemento.
|
||||||
|
|
||||||
|
### Svuotare la lista
|
||||||
|
|
||||||
|
Premi **Svuota lista** in fondo alla pagina. Viene richiesta conferma prima di procedere.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Informazioni app
|
||||||
|
|
||||||
|
Tocca il pulsante **ⓘ** in alto a destra per visualizzare la versione dell'app, l'autore e la licenza.
|
||||||
Reference in New Issue
Block a user