How elgavigrieze/foodieapp works
FoodieApp is a Spring Boot meal-planning and nutrition tracker. Users manage products and meals, plan a week, then use the plan’s ingredients to build shopping lists; food logging tracks actual intake separately. AI photo analysis, recipe import, voice parsing, and barcode lookup offer alternate ways to capture food data. Fitness, household sharing, budget tracking, and brain-test scoring are distinct supporting capabilities. The graph follows README-described feature relationships and source-index references; most controllers and several services were not excerpted, so unsampled internal links are omitted or marked unverified.
Main entry points: MealPlan.java Application data · MealPlanService.java Weekly plans · MealService.java Meal management · ProductService.java Product library
Components 20
Food capture
- Food log
src/main/java/com/foodie/controller/FoodLogController.java - Photo analysis
src/main/java/com/foodie/service/PhotoNutritionService.java - Voice logging
src/main/java/com/foodie/service/VoiceLogService.java - Barcode lookup
src/main/java/com/foodie/service/BarcodeService.java - Recipe import
src/main/java/com/foodie/service/RecipeScraperService.java - Ingredient matching
src/main/java/com/foodie/service/RecipeIngredientMatcherService.java
Meals and planning
- Meal management
src/main/java/com/foodie/service/MealService.java - Product library
src/main/java/com/foodie/service/ProductService.java - Weekly plans
src/main/java/com/foodie/service/MealPlanService.java - Shopping lists
src/main/java/com/foodie/service/ShoppingListService.java - Budget tracking
src/main/java/com/foodie/service/BudgetService.java
Personal tracking
- Fitness tracking
src/main/java/com/foodie/service/FitnessService.java - Brain scoreboard
src/main/java/com/foodie/service/BrainService.java - Browser recorder
src/main/resources/static/js/brain-recorder.user.js
Identity and data
- Households
src/main/java/com/foodie/service/HouseholdService.java - User identity
src/main/java/com/foodie/service/CurrentUserService.java - Application data
src/main/java/com/foodie/model/db/MealPlan.java
Other components
- User
- Cloudflare AI
- Open Food Facts
Connections 29
- User → Food log: logs intake
- User → Photo analysis: submits meal photo
- Photo analysis → Cloudflare AI: estimates nutrition
- User → Voice logging: speaks food entry
- User → Barcode lookup: scans barcode
- Barcode lookup → Open Food Facts: fetches product
- User → Recipe import: imports recipe
- Recipe import → Cloudflare AI: extracts recipe
- Recipe import → Ingredient matching: matches ingredients
src/main/java/com/foodie/controller/RecipeImportController.java - Ingredient matching → Product library: resolves products
src/main/java/com/foodie/service/RecipeIngredientMatcherService.java - User → Meal management: manages meals
- User → Product library: manages products
- Meal management → Product library: uses ingredients
src/main/java/com/foodie/service/MealService.java - User → Weekly plans: plans meals
- Weekly plans → Meal management: schedules meals
src/main/java/com/foodie/service/MealPlanService.java - User → Shopping lists: views list
- Weekly plans → Shopping lists: generates list
- User → Budget tracking: tracks spending
- User → Fitness tracking: logs workouts
- User → Brain scoreboard: views scores
- Browser recorder → Brain scoreboard: posts results
- User → Households: shares household
- User identity → Application data: loads user
- Food log → Application data: stores entries
- Meal management → Application data: stores meals
- Product library → Application data: stores products
- Weekly plans → Application data: stores plans
src/main/java/com/foodie/service/MealPlanService.java - Brain scoreboard → Application data: stores scores
- Households → Application data: stores households