Add project foundation: CLAUDE.md, requirements tracking system, technical architecture docs, Firestore setup guide, device testing guide, and Stitch design mockups for Precision Vitality app. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
CalorieTracker (Precision Vitality) — CLAUDE.md
Progetto
App mobile per il tracciamento calorico giornaliero con stima AI dei pasti. Nome UI: Precision Vitality | Nome progetto: CalorieTracker
Stack Tecnologico
- Frontend: Ionic 7+ / Angular 17+ / TypeScript
- Capacitor: 5+ (Android + iOS)
- Database: Firebase Firestore (Spark plan gratuito)
- Auth: Firebase Anonymous Auth (upgrade Google Sign-In futuro)
- AI: Anthropic Claude API (claude-haiku-4-5-20251001) via proxy sicuro
- Chart: Chart.js + ng2-charts
- Storage locale: @ionic/storage-angular
Repository
- Remote: git.i-a.run (Gitea) —
emanuele/traccia-calorica - Branch principale:
main - Lingua codice: inglese (variabili, commenti tecnici)
- Lingua UI: italiano
Design System — "Precision Vitality"
- Riferimento design:
stitch_calorietracker_design_brief_brief/ - Font: Lexend (dati/numeri) + Plus Jakarta Sans (UI)
- Colori primari: Verde
#006b1b, Accent arancione#FF7043, Errore#F44336 - Background:
#f6f6f6(surface),#f0f1f1(container-low),#ffffff(cards) - Testo:
#2d2f2f(primario),on-surface-variant(secondario) - Regola NO-LINE: niente bordi 1px — separazione solo tramite tonal shifts
- Elevazione: tonal layering, no drop shadows su card statiche
- Icone: Material Icons (Outlined/Two-Tone, mai Filled pesanti)
Struttura Tab (da design)
- JOURNAL (Home) — diario pasti + FAB arancione
- STATS — statistiche giornaliere/settimanali
- PLANS — (futuro) piani alimentari
- PROFILE — (futuro) profilo utente
Struttura Cartelle
src/
app/
core/ # Servizi singleton, guards, interceptors
services/
meal.service.ts
calorie-estimator.service.ts
auth.service.ts
shared/ # Componenti, pipe, direttive condivise
features/
home/ # Tab Journal/Home
modals/ # Manual input + LLM input modals
stats/ # Tab Statistiche (daily + weekly)
search/ # Ricerca pasti
profile/ # Tab Profile (futuro)
assets/
data/
food-dictionary.md
environments/
environment.ts
environment.prod.ts
Convenzioni
- Lazy loading per ogni feature module
- Servizi in
core/services/— singleton conprovidedIn: 'root' - Componenti condivisi in
shared/ - Ogni modal è un componente standalone
- Commit messages in inglese, descrittivi
- Branch naming:
feature/REQ-XXX-descrizione,fix/REQ-XXX-descrizione
Documenti di Progetto
docs/REQUIREMENTS.md— requisiti funzionali completidocs/TRACKING.md— tracciamento stato requisiti sessione per sessionedocs/TECHNICAL.md— architettura e decisioni tecnichedocs/FIRESTORE_SETUP.md— guida configurazione Firebase/Firestoredocs/DEVICE_TESTING.md— test su device e build APK senza Android Studio
Decisioni Architetturali
- Proxy API Claude: Firebase Cloud Function (free tier) — API key mai nel bundle
- Cancellazione pasti: hard delete (semplice, niente soft delete per ora)
- Obiettivo calorico: salvato in @ionic/storage locale (default 2000 kcal)
- Ricerca: client-side su ultimi 30 giorni
Comandi Utili
ionic serve # Dev server
ionic build # Build produzione
npx cap sync # Sync Capacitor
npx cap open android # Apri in Android Studio
Note per Claude
- Leggere sempre il design in
stitch_calorietracker_design_brief_brief/prima di implementare UI - Seguire il DESIGN.md (Precision Vitality) per colori, tipografia e componenti
- Aggiornare
docs/TRACKING.mddopo ogni sessione di lavoro - Non esporre mai API keys nel codice client
- Verificare
docs/TRACKING.mdper sapere cosa è stato completato nelle sessioni precedenti