Files
traccia-calorica/CLAUDE.md
emanuele 7fd03a99ba chore: initial project setup with documentation and design assets
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>
2026-04-16 09:44:35 +02:00

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)

  1. JOURNAL (Home) — diario pasti + FAB arancione
  2. STATS — statistiche giornaliere/settimanali
  3. PLANS — (futuro) piani alimentari
  4. 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 con providedIn: '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 completi
  • docs/TRACKING.md — tracciamento stato requisiti sessione per sessione
  • docs/TECHNICAL.md — architettura e decisioni tecniche
  • docs/FIRESTORE_SETUP.md — guida configurazione Firebase/Firestore
  • docs/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.md dopo ogni sessione di lavoro
  • Non esporre mai API keys nel codice client
  • Verificare docs/TRACKING.md per sapere cosa è stato completato nelle sessioni precedenti