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