How beatrizgomes1/nutriia works
NutriIA is an Android nutrition assistant backed by a Python API and analysis core. Users create a profile and dietary restrictions, capture a product label or scan its barcode, and receive a personalized ingredient analysis they can revisit in history. The graph includes authentication, profile management, analysis, persistence, and AI/product-data capabilities documented by the README or source index. Some subsystem internals were not excerpted; dashed links mark documented but unverified integrations.
Main entry points: nutrition_workflow_service.py Analysis workflow · InicioActivity.kt Home screen · AuthRepository.kt Authentication repository · routes.py API routes
Components 24
Android app
- Home screen
frontend/app/src/main/java/com/uece/nutriia/ui/inicio/InicioActivity.kt - Product capture
frontend/app/src/main/java/com/uece/nutriia/ui/escanear/EscanearActivity.kt - Analysis progress
frontend/app/src/main/java/com/uece/nutriia/ui/analise/AnaliseAndamentoActivity.kt - Analysis result
frontend/app/src/main/java/com/uece/nutriia/ui/resultado/ResultadoActivity.kt - Analysis history
frontend/app/src/main/java/com/uece/nutriia/ui/historico/HistoricoActivity.kt - Profile and restrictions
frontend/app/src/main/java/com/uece/nutriia/ui/perfil/PerfilActivity.kt - Account screens
frontend/app/src/main/java/com/uece/nutriia/ui/login/LoginActivity.kt - Authentication repository
frontend/app/src/main/java/com/uece/nutriia/data/repository/AuthRepository.kt - Analysis repository
frontend/app/src/main/java/com/uece/nutriia/data/repository/AnaliseRepository.kt - HTTP API client
frontend/app/src/main/java/com/uece/nutriia/data/remote/NutriIaApi.kt - Session storage
frontend/app/src/main/java/com/uece/nutriia/data/local/SessionManager.kt
Backend API
- API routes
backend/app/api/routes.py - Authentication service
backend/app/services/auth_service.py
Nutrition analysis
- Analysis workflow
backend/app/services/nutrition_workflow_service.py - Nutrition assessment
backend/app/services/nutrition_service.py - Product and profile models
backend/app/models/nutrition.py - Profile model
backend/app/models/user.py
Backend data
- Persistence services
backend/app/services/database_service.py - Database
backend/app/db/models.py
External integrations
- Barcode product lookup
backend/app/services/open_food_facts.py - Gemini provider
backend/app/gemini/nutrition_ai.py
Other components
- User
- Open Food Facts
- Gemini service
Connections 23
- User → Home screen: uses
frontend/app/src/main/java/com/uece/nutriia/ui/inicio/InicioActivity.kt - Home screen → Product capture: opens capture
frontend/app/src/main/java/com/uece/nutriia/ui/inicio/InicioActivity.kt - Product capture → Analysis progress: starts analysis
frontend/app/src/main/java/com/uece/nutriia/ui/escanear/EscanearActivity.kt - Analysis progress → Analysis result: opens result
frontend/app/src/main/java/com/uece/nutriia/ui/analise/AnaliseAndamentoActivity.kt - Home screen → Analysis repository: loads latest
frontend/app/src/main/java/com/uece/nutriia/ui/inicio/InicioActivity.kt - Analysis history → Analysis repository: loads history
frontend/app/src/main/java/com/uece/nutriia/ui/historico/HistoricoActivity.kt - Analysis history → Analysis result: opens result
frontend/app/src/main/java/com/uece/nutriia/ui/historico/HistoricoActivity.kt - Account screens → Authentication repository: submits credentials
frontend/app/src/main/java/com/uece/nutriia/data/repository/AuthRepository.kt - Profile and restrictions → User: sets preferences
- Authentication repository → HTTP API client: calls endpoints
frontend/app/src/main/java/com/uece/nutriia/data/repository/AuthRepository.kt - Authentication repository → Session storage: saves tokens
frontend/app/src/main/java/com/uece/nutriia/data/repository/AuthRepository.kt - Analysis repository → HTTP API client: calls endpoints
frontend/app/src/main/java/com/uece/nutriia/data/repository/AnaliseRepository.kt - HTTP API client → API routes: HTTP requests
README.md - API routes → Authentication service: auth operations
backend/app/api/routes.py - API routes → Analysis workflow: analysis requests
backend/app/api/routes.py - Analysis workflow → Nutrition assessment: assesses product
backend/app/services/nutrition_workflow_service.py - Analysis workflow → Persistence services: persists analysis
backend/app/services/nutrition_workflow_service.py - Analysis workflow → Barcode product lookup: looks up barcode
backend/app/services/nutrition_workflow_service.py - Nutrition assessment → Product and profile models: uses domain models
backend/app/services/nutrition_service.py - Nutrition assessment → Gemini provider: optional AI analysis
- Barcode product lookup → Open Food Facts: queries products
- Gemini provider → Gemini service: requests inference
- Persistence services → Database: reads and writes
backend/app/services/database_service.py