How anshula-2006/nutriverse works
NutriVerse is a nutrition-tracking and food-guidance application. Users authenticate, maintain a nutrition profile, search foods and log meals or water, then review dashboard data or ask for chat-based guidance and recommendations. Food lookup retains source identity and retrieves exact records for meal logging; chat routes selected-food questions, recommendations, recipes and homemade-meal calculations through distinct backend services. The README documents MongoDB persistence and a read-only Neo4j food list, not graph-backed recommendations. Some controller/service and frontend/API wiring is represented from documented routes and component roles; unsampled implementation details are not asserted.
Main entry points: api.js API client · NutritionLookupService.java Food lookup · GroqService.java Chat guidance · ChatController.java Chat routes
Components 28
User interface
- React app
frontend/src/App.jsx - API client
frontend/src/api.js
Identity and profile
- Auth routes
backend/src/main/java/com/nutriverse/backend/controller/AuthController.java - JWT service
backend/src/main/java/com/nutriverse/backend/service/JwtService.java - Profile routes
backend/src/main/java/com/nutriverse/backend/controller/NutritionProfileController.java - Profile service
backend/src/main/java/com/nutriverse/backend/service/NutritionProfileService.java - Profile extraction
backend/src/main/java/com/nutriverse/backend/service/ProfileExtractionService.java - Daily targets
backend/src/main/java/com/nutriverse/backend/service/DailyTargetService.java
Nutrition tracking
- Dashboard routes
backend/src/main/java/com/nutriverse/backend/controller/DashboardController.java - Dashboard service
backend/src/main/java/com/nutriverse/backend/service/DashboardService.java - Nutrition routes
backend/src/main/java/com/nutriverse/backend/controller/NutritionController.java - Food lookup
backend/src/main/java/com/nutriverse/backend/service/NutritionLookupService.java - USDA provider
backend/src/main/java/com/nutriverse/backend/service/UsdaFoodDataProvider.java - Open Food Facts
backend/src/main/java/com/nutriverse/backend/service/OpenFoodFactsProvider.java - Meal logging
backend/src/main/java/com/nutriverse/backend/service/NutritionMealService.java - Meal routes
backend/src/main/java/com/nutriverse/backend/controller/MealLogController.java - Water routes
backend/src/main/java/com/nutriverse/backend/controller/WaterLogController.java - Water logging
backend/src/main/java/com/nutriverse/backend/service/WaterLogService.java
Food guidance
- Chat routes
backend/src/main/java/com/nutriverse/backend/controller/ChatController.java - Chat guidance
backend/src/main/java/com/nutriverse/backend/service/GroqService.java - Recommendations
backend/src/main/java/com/nutriverse/backend/service/RecommendationService.java - Meal estimates
backend/src/main/java/com/nutriverse/backend/service/CompositeMealService.java - Chat memory
backend/src/main/java/com/nutriverse/backend/service/ChatMemory.java - Knowledge graph routes
backend/src/main/java/com/nutriverse/backend/controller/KnowledgeGraphController.java
Other components
- User
- MongoDB
- Groq API
- Neo4j
Connections 39
- User → React app: uses
- React app → API client: requests
- API client → Auth routes: calls auth
- API client → Profile routes: calls profile
- API client → Dashboard routes: loads dashboard
- API client → Nutrition routes: searches foods
- API client → Meal routes: logs meals
- API client → Water routes: logs water
- API client → Chat routes: sends chat
- Auth routes → MongoDB: reads/writes users
- Auth routes → JWT service: issues tokens
- Profile routes → Profile service: delegates
- Profile service → MongoDB: reads/writes profiles
- Profile service → Daily targets: calculates targets
- Dashboard routes → Dashboard service: delegates
- Dashboard service → MongoDB: reads tracking data
- Nutrition routes → Food lookup: searches/retrieves
- Nutrition routes → Meal logging: logs selected food
- Food lookup → USDA provider: queries
- Food lookup → Open Food Facts: fallback lookup
- USDA provider → Groq API
- Meal logging → Food lookup: fetches exact record
- Meal logging → MongoDB: stores meal
- Meal routes → MongoDB: persists meal logs
- Water routes → Water logging: delegates
- Water logging → MongoDB: reads/writes water
- Chat routes → Chat guidance: routes general chat
- Chat routes → Recommendations: routes followups
- Chat routes → Meal estimates: routes meal estimates
- Chat guidance → Food lookup: retrieves food facts
- Chat guidance → Profile extraction: extracts profile details
- Chat guidance → Chat memory: reads/writes history
- Chat guidance → Groq API: requests completions
- Recommendations → Chat guidance: generates candidates
- Recommendations → Food lookup: checks exact foods
- Recommendations → Chat memory: stores recommendations
- Meal estimates → Food lookup: looks up ingredients
- Meal estimates → Chat memory: reads/writes context
- Knowledge graph routes → Neo4j: reads food nodes