122 lines
4.8 KiB
Markdown
122 lines
4.8 KiB
Markdown
# Tracciamento Requisiti — CalorieTracker
|
|
|
|
> Questo documento tiene traccia dello stato di avanzamento di ogni requisito sessione per sessione.
|
|
> Aggiornare questo file alla fine di ogni sessione di lavoro.
|
|
|
|
---
|
|
|
|
## Stato Requisiti
|
|
|
|
| ID | Titolo | Stato | Sessione | Note |
|
|
|----|--------|-------|----------|------|
|
|
| REQ-001 | Scaffolding Ionic + Capacitor | ✅ COMPLETATO | S0 | Ionic 8 + Angular 20 + Capacitor 8 |
|
|
| REQ-002 | Setup Firebase Firestore | ⬜ DA FARE | — | Richiede REQ-001 |
|
|
| REQ-003 | Home screen + FAB | ⬜ DA FARE | — | Richiede REQ-002 |
|
|
| REQ-004 | Modal input numerico | ⬜ DA FARE | — | Richiede REQ-003 |
|
|
| REQ-005 | Modal input LLM | ⬜ DA FARE | — | Richiede REQ-003 + REQ-006 |
|
|
| REQ-006 | Servizio Claude API | ⬜ DA FARE | — | Richiede REQ-001 |
|
|
| REQ-007 | CRUD pasti Firestore | ⬜ DA FARE | — | Richiede REQ-002 |
|
|
| REQ-008 | Statistiche giornaliere | ⬜ DA FARE | — | Richiede REQ-007 |
|
|
| REQ-009 | Statistiche settimanali | ⬜ DA FARE | — | Richiede REQ-007 |
|
|
| REQ-010 | Ricerca pasti | ⬜ DA FARE | — | Richiede REQ-007 |
|
|
| REQ-011 | Design brief Stitch | ✅ COMPLETATO | S0 | Mockup disponibili |
|
|
|
|
### Legenda Stati
|
|
- ⬜ DA FARE — Non ancora iniziato
|
|
- 🔄 IN CORSO — Lavoro iniziato
|
|
- ⏸️ IN PAUSA — Iniziato ma bloccato/sospeso
|
|
- ✅ COMPLETATO — Tutti i criteri accettazione soddisfatti
|
|
- ❌ BLOCCATO — Bloccato da dipendenza o problema
|
|
|
|
---
|
|
|
|
## Ordine di Implementazione Raccomandato
|
|
|
|
```
|
|
Fase 1 (Foundation):
|
|
REQ-001 → REQ-002 → REQ-007
|
|
|
|
Fase 2 (Core Features):
|
|
REQ-003 → REQ-004 (parallelo con REQ-006)
|
|
REQ-006 → REQ-005
|
|
|
|
Fase 3 (Analytics & Search):
|
|
REQ-008 → REQ-009
|
|
REQ-010
|
|
|
|
Fase 4 (Polish):
|
|
REQ-011 (già completato — usare come riferimento)
|
|
```
|
|
|
|
---
|
|
|
|
## Log Sessioni
|
|
|
|
### Sessione 0 — 16/04/2026
|
|
**Obiettivo**: Setup iniziale progetto
|
|
**Completato**:
|
|
- Inizializzazione repository Git
|
|
- Configurazione remote Gitea (git.i-a.run)
|
|
- Creazione CLAUDE.md
|
|
- Creazione documentazione progetto (REQUIREMENTS.md, TRACKING.md, TECHNICAL.md, FIRESTORE_SETUP.md, DEVICE_TESTING.md)
|
|
- Analisi mockup design Stitch (REQ-011 ✅)
|
|
|
|
**Prossima sessione**: Iniziare REQ-001 (scaffolding Ionic)
|
|
|
|
### Sessione 0b — 16/04/2026
|
|
**Obiettivo**: REQ-001 — Scaffolding progetto Ionic
|
|
**Completato**:
|
|
- Scaffolding Ionic 8 + Angular 20 + Capacitor 8 (REQ-001 ✅)
|
|
- 4 tab configurati: Journal, Stats, Plans, Profile (da design Precision Vitality)
|
|
- Struttura features con lazy loading: home, stats, search, profile
|
|
- Core services stubs: MealService, CalorieEstimatorService, AuthService, StorageService
|
|
- Modal placeholders: ManualInputModal, LlmInputModal
|
|
- Design system Precision Vitality applicato (CSS custom properties, font, tonal layering)
|
|
- Food dictionary creato in assets/data/
|
|
- Environment files configurati con placeholder Firebase
|
|
- `ionic build` e `npx cap sync` verificati con successo
|
|
- Push su Gitea completato
|
|
|
|
**Note tecniche**:
|
|
- Angular 20 (generato da Ionic CLI) — usa NgModules (non standalone)
|
|
- Capacitor 8.3 richiede Node.js >= 22.0.0
|
|
- Node.js 22.15.0 usato via nvm (PATH override necessario su questa macchina)
|
|
- Warning innocuo su localforage (CommonJS dependency)
|
|
|
|
**Prossima sessione**: REQ-002 (Firebase Firestore) oppure REQ-006 (Claude API proxy) — possono procedere in parallelo
|
|
|
|
---
|
|
|
|
## Decisioni Prese
|
|
|
|
| Data | Decisione | Motivazione |
|
|
|------|-----------|-------------|
|
|
| 16/04/2026 | Proxy API: Firebase Cloud Function | API key non esposta nel bundle mobile |
|
|
| 16/04/2026 | Cancellazione pasti: hard delete | Semplicità, niente complessità soft delete |
|
|
| 16/04/2026 | Obiettivo calorico: @ionic/storage locale | Non serve persistenza cloud per preferenza utente |
|
|
| 16/04/2026 | Ricerca: client-side 30 giorni | Firestore non supporta full-text, sufficiente per uso tipico |
|
|
| 16/04/2026 | Nome UI: "Precision Vitality" | Da design brief Stitch approvato |
|
|
| 16/04/2026 | 4 tab: Journal, Stats, Plans, Profile | Da design (diverge dai 3 tab originali dei requisiti) |
|
|
|
|
---
|
|
|
|
## Problemi Aperti
|
|
|
|
| # | Problema | Impatto | Stato |
|
|
|---|----------|---------|-------|
|
|
| 1 | Deadline business non definita | Pianificazione | Aperto |
|
|
| 2 | Target platform prioritario (Android vs iOS) | Build priority | Aperto |
|
|
| 3 | Strategia Auth lungo termine | REQ-002 | Aperto — per ora Anonymous |
|
|
| 4 | Logo app | REQ-011 | Aperto |
|
|
| 5 | Dark mode in scope? | Design | Aperto |
|
|
|
|
---
|
|
|
|
## Come Usare Questo Documento
|
|
|
|
1. **Inizio sessione**: leggere lo stato attuale dei requisiti e il log dell'ultima sessione
|
|
2. **Durante la sessione**: aggiornare lo stato dei requisiti man mano
|
|
3. **Fine sessione**: aggiungere entry nel log sessioni con obiettivo, completato e prossimi passi
|
|
4. **Decisioni**: registrare ogni decisione architetturale con motivazione
|
|
5. **Problemi**: aggiungere problemi aperti che bloccano o impattano il lavoro
|