# Customized Calorie Tracker - Filipino Food Edition ## Web Application for Weight Loss & Muscle Gain --- ## Your Specific Requirements ✅ **Interface**: Web Application (Flask-based) ✅ **Goals**: Weight Loss + Muscle Gain (Body Recomposition) ✅ **Tracking**: Calories, Macros (Protein/Carbs/Fat), Water Intake ✅ **Precision**: Approximate tracking (user-friendly) ✅ **Weight Tracking**: Daily weigh-ins with trend analysis ✅ **Diet**: No restrictions, Filipino food focus ✅ **Planning**: Meal planning ahead feature (not just logging) --- ## Enhanced Database Schema ### Additional Tables for Your Needs ```sql -- Water intake tracking CREATE TABLE water_logs ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, date DATE NOT NULL, amount_ml INTEGER NOT NULL, time TIME, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); -- Weight tracking CREATE TABLE weight_logs ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, date DATE NOT NULL UNIQUE, weight_kg REAL NOT NULL, body_fat_percentage REAL, notes TEXT, time TIME DEFAULT CURRENT_TIME, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); -- Meal plans (future meals) CREATE TABLE meal_plans ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, date DATE NOT NULL, meal_type TEXT, is_completed BOOLEAN DEFAULT 0, notes TEXT, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); -- Planned foods (linked to meal_plans) CREATE TABLE planned_foods ( id INTEGER PRIMARY KEY AUTOINCREMENT, meal_plan_id INTEGER NOT NULL, food_id INTEGER NOT NULL, quantity REAL NOT NULL, FOREIGN KEY (meal_plan_id) REFERENCES meal_plans(id) ON DELETE CASCADE, FOREIGN KEY (food_id) REFERENCES food_items(id) ON DELETE CASCADE ); -- Filipino food database (pre-populated) CREATE TABLE filipino_foods ( id INTEGER PRIMARY KEY AUTOINCREMENT, name_english TEXT, name_tagalog TEXT, category TEXT, -- 'ulam', 'kanin', 'meryenda', 'sabaw', etc. is_common BOOLEAN DEFAULT 1, calories REAL, protein_g REAL, carbs_g REAL, fat_g REAL, serving_description TEXT ); -- User preferences and goals CREATE TABLE user_goals ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER UNIQUE, goal_type TEXT, -- 'weight_loss', 'muscle_gain', 'recomp' target_weight_kg REAL, weekly_goal_kg REAL, target_protein_g INTEGER, target_carbs_g INTEGER, target_fat_g INTEGER, target_water_ml INTEGER DEFAULT 2000, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); ``` --- ## Body Recomposition Strategy ### Macro Targets for Weight Loss + Muscle Gain **Protein Priority (Muscle Preservation/Growth)** - Target: 2.0-2.4g per kg body weight - Example: 70kg person = 140-168g protein/day **Moderate Carbs (Energy for Workouts)** - Target: 2-3g per kg body weight - Example: 70kg person = 140-210g carbs/day **Healthy Fats (Hormones & Satiety)** - Target: 0.8-1.0g per kg body weight - Example: 70kg person = 56-70g fat/day **Calorie Cycling Option** - Training days: Maintenance or slight surplus (+100-200 cal) - Rest days: Deficit (-300-500 cal) --- ## Filipino Food Database ### Pre-populated Common Filipino Foods **Kanin (Rice)** - White rice (1 cup) - 206 cal, 45g carbs, 4g protein - Fried rice - 280 cal, 40g carbs, 5g protein, 10g fat - Sinangag - 250 cal, 42g carbs, 4g protein, 8g fat **Ulam (Main Dishes)** - Adobo (chicken, 1 serving) - 350 cal, 35g protein, 5g carbs, 20g fat - Sinigang (pork, 1 bowl) - 280 cal, 25g protein, 10g carbs, 15g fat - Tinola (chicken soup) - 200 cal, 28g protein, 8g carbs, 6g fat - Bicol Express - 400 cal, 20g protein, 10g carbs, 30g fat - Sisig (pork) - 450 cal, 25g protein, 8g carbs, 35g fat - Menudo - 320 cal, 22g protein, 12g carbs, 20g fat - Kare-kare - 380 cal, 24g protein, 18g carbs, 25g fat - Lechon kawali - 500 cal, 30g protein, 2g carbs, 42g fat **Gulay (Vegetables)** - Pinakbet - 150 cal, 5g protein, 20g carbs, 6g fat - Laing - 180 cal, 6g protein, 15g carbs, 12g fat - Ginisang monggo - 200 cal, 12g protein, 30g carbs, 4g fat **Meryenda (Snacks)** - Pandesal (1 piece) - 120 cal, 3g protein, 22g carbs, 2g fat - Turon - 180 cal, 2g protein, 35g carbs, 5g fat - Bibingka - 220 cal, 5g protein, 38g carbs, 6g fat - Puto - 90 cal, 2g protein, 18g carbs, 1g fat - Lumpia (2 pieces) - 200 cal, 8g protein, 20g carbs, 10g fat **Sabaw (Soups)** - Bulalo - 350 cal, 32g protein, 8g carbs, 20g fat - Nilaga - 280 cal, 28g protein, 12g carbs, 14g fat **Breakfast** - Tapsilog - 650 cal, 45g protein, 60g carbs, 25g fat - Longsilog - 700 cal, 38g protein, 65g carbs, 32g fat - Tocilog - 680 cal, 42g protein, 62g carbs, 28g fat --- ## Web Application Features ### Pages Structure **1. Dashboard (Home)** - Today's summary card - Calories consumed vs target (progress bar) - Macros breakdown (protein/carbs/fat) with color-coded bars - Water intake tracker (glasses icon) - Weight today vs yesterday - Quick add meal button - Quick add water button - Weekly trend chart (calories & weight) **2. Meal Planner** - Calendar view (7-day week view) - Click date to plan meals - Drag-and-drop Filipino foods - Copy previous day's meals - Templates for common Filipino meal combos - Calculate totals before committing - Mark meals as completed **3. Food Database** - Search bar (English or Tagalog) - Filter by category (Ulam, Kanin, Meryenda, etc.) - Filipino food section (pre-populated) - API search for international foods - Add custom foods - Favorite foods list - Recent foods **4. Tracking Log** - Today's meals (editable) - Add meal form - Food search autocomplete - Quick portions (1/2 serving, 1 serving, 2 servings) - Edit/delete entries **5. Progress** - Weight chart (line graph) - Body composition trends - Weekly averages - Monthly summaries - Photo progress (optional upload) - Measurements (waist, chest, arms) **6. Goals & Settings** - Set target weight - Calculate TDEE - Set macro targets - Choose goal (weight loss, muscle gain, recomp) - Water intake goal - Activity level - Profile info --- ## Tech Stack ### Backend ``` Flask==3.0.0 Flask-SQLAlchemy==3.1.1 Flask-Login==0.6.3 python-dotenv==1.0.0 requests==2.31.0 ``` ### Frontend ``` HTML5 CSS3 / Tailwind CSS JavaScript (Vanilla) Chart.js (for graphs) FullCalendar.js (for meal planner) ``` ### Database ``` SQLite3 (development) PostgreSQL (production optional) ``` --- ## UI Design Mockup ### Color Scheme (Filipino-inspired) - Primary: #D62828 (Red - like Filipino flag) - Secondary: #003F87 (Blue) - Success: #06D6A0 (Green - for hitting goals) - Warning: #FFB703 (Yellow/Gold) - Background: #F8F9FA (Light gray) ### Dashboard Layout ``` ┌─────────────────────────────────────────────────────┐ │ 🏠 Dashboard 📅 Meal Planner 🍽️ Foods 📊 Progress │ ├─────────────────────────────────────────────────────┤ │ │ │ Today: January 30, 2026 ⚙️ Settings 👤 User │ │ │ │ ┌──────────────────────┐ ┌────────────────────┐ │ │ │ Calories │ │ Macros │ │ │ │ ████████░░ 1,645 │ │ Protein: 120g ✓ │ │ │ │ Target: 2,000 │ │ Carbs: 180g │ │ │ │ Remaining: 355 │ │ Fat: 55g │ │ │ └──────────────────────┘ └────────────────────┘ │ │ │ │ ┌──────────────────────┐ ┌────────────────────┐ │ │ │ Water Intake │ │ Weight │ │ │ │ 💧💧💧💧💧⚪⚪⚪ │ │ Today: 72.5 kg │ │ │ │ 1,250 / 2,000 ml │ │ Change: -0.3 kg ⬇│ │ │ └──────────────────────┘ └────────────────────┘ │ │ │ │ Today's Meals [+ Add Meal]│ │ ┌─────────────────────────────────────────────────┤ │ │ 🌅 Breakfast (7:30 AM) 520 cal│ │ │ • Tapsilog │ │ │ • Coffee with milk │ │ ├─────────────────────────────────────────────────┤ │ │ 🌞 Lunch (12:30 PM) 680 cal│ │ │ • Chicken Adobo │ │ │ • White rice (1.5 cups) │ │ │ • Pinakbet │ │ ├─────────────────────────────────────────────────┤ │ │ 🍪 Snack (3:00 PM) 180 cal│ │ │ • Turon (1 piece) │ │ ├─────────────────────────────────────────────────┤ │ │ 🌙 Dinner (Planned) [Edit] │ │ │ • Sinigang na baboy │ │ │ • White rice (1 cup) │ │ └─────────────────────────────────────────────────┘ │ │ │ Weekly Trend │ │ ┌─────────────────────────────────────────────────┤ │ │ [Chart: Calories & Weight] │ │ └─────────────────────────────────────────────────┘ │ │ └─────────────────────────────────────────────────────┘ ``` --- ## Meal Planning Workflow ### Planning Mode 1. Navigate to Meal Planner 2. Select future date 3. Add meals for each time slot 4. Search Filipino foods or API 5. Adjust quantities 6. See macro totals update in real-time 7. Save meal plan ### Execution Mode 1. Dashboard shows today's planned meals 2. Check off meals as you eat them 3. Edit portions if needed (ate more/less) 4. Actual consumption updates automatically 5. Quick add water after meals ### Smart Features - **Suggest meals based on remaining macros** - Low on protein? Suggests Tinola, Grilled fish - Need carbs? Suggests Rice, Pandesal - Need fats? Suggests Sisig, Bicol Express - **Common Filipino meal combos** - Silog meals (Tapsilog, Longsilog, etc.) - Typical lunch: Ulam + Rice + Gulay - Merienda ideas - **Copy from history** - Yesterday's meals - Last week's Tuesday - Favorite meal combinations --- ## API Integration Strategy ### Primary: API Ninjas - Use for international/branded foods - Cache results in local database - Fallback to Open Food Facts if not found ### Secondary: Open Food Facts - Barcode scanning capability - Community database - Free, no rate limits ### Local Database Priority 1. Check Filipino foods table first (fastest) 2. Check cached API results 3. Query API Ninjas 4. Query Open Food Facts 5. Allow manual entry if not found --- ## Water Intake Tracking ### Quick Add Buttons - Small glass (250ml) - Medium glass (350ml) - Large glass (500ml) - Bottle (750ml) - Custom amount ### Visual Progress - Glass icons fill up (8 glasses = 2L goal) - Progress bar - Notifications/reminders (optional) ### Tracking Table ``` Time | Amount | Type ---------|--------|------- 07:30 AM | 250ml | Glass 12:45 PM | 500ml | Bottle 03:00 PM | 350ml | Glass ``` --- ## Implementation Phases ### Phase 1: Core Backend (Week 1) - [ ] Database setup with all tables - [ ] User authentication (Flask-Login) - [ ] API integration with caching - [ ] Filipino food database population - [ ] CRUD operations for meals, foods, water, weight ### Phase 2: Dashboard & Logging (Week 2) - [ ] Dashboard page with cards - [ ] Today's summary calculations - [ ] Add meal form - [ ] Food search with autocomplete - [ ] Water logging - [ ] Weight logging ### Phase 3: Meal Planner (Week 3) - [ ] Calendar interface - [ ] Plan future meals - [ ] Copy meals functionality - [ ] Meal templates - [ ] Mark meals as completed - [ ] Smart suggestions based on macros ### Phase 4: Progress & Polish (Week 4) - [ ] Progress page with charts - [ ] Weight trend analysis - [ ] Weekly/monthly reports - [ ] Goals page - [ ] Settings page - [ ] Mobile responsive design - [ ] Testing and bug fixes --- ## Deployment ### Recommended: Heroku (Free/Hobby Tier) ```bash # Free tier includes: # - 550 dyno hours/month # - PostgreSQL database # - HTTPS by default ``` ### Alternative: PythonAnywhere ```bash # Free tier includes: # - One web app # - 512MB storage # - Good for personal projects ``` ### Alternative: DigitalOcean App Platform ```bash # $5/month # - More reliable # - Better performance # - PostgreSQL included ``` --- ## Special Features for Filipino Users ### Language Support - Search in English or Tagalog - "Kanin" or "Rice" both work - "Adobong manok" or "Chicken adobo" ### Common Portions - Tagayan (ladle) - Tasa (cup) - Kutsara (tablespoon) - Standard plate serving ### Meal Categories - Almusal (Breakfast) - Tanghalian (Lunch) - Merienda (Snack) - Hapunan (Dinner) ### Cultural Considerations - Family-style eating (estimate portions) - Typical Filipino meal structure - Common food pairings - Celebration foods (adjust for occasions) --- ## Starter Prompt for AI Code Generation ``` Create a Flask web application for calorie and macro tracking with these specifications: 1. Database (SQLite with Flask-SQLAlchemy): - Users, food_items, meals, meal_foods, water_logs, weight_logs - meal_plans, planned_foods (for meal planning) - filipino_foods (pre-populated) - user_goals (macro targets) 2. Filipino Food Support: - Pre-populate database with 50+ common Filipino foods - Categories: Ulam, Kanin, Meryenda, Sabaw, Gulay - English and Tagalog names searchable 3. Pages: - Dashboard (today's summary, macros, water, weight) - Meal Planner (calendar view for planning future meals) - Food Database (search Filipino + API foods) - Tracking Log (add/edit today's meals) - Progress (weight chart, trends) - Goals/Settings 4. Features: - Macro tracking (protein, carbs, fat) - Water intake logging - Daily weight tracking - Meal planning (plan ahead, not just log) - Copy previous meals - Smart macro suggestions - API Ninjas integration with caching 5. Frontend: - Tailwind CSS for styling - Chart.js for graphs - Red/Blue color scheme (Filipino flag inspired) - Mobile responsive 6. User Flow: - Plan meals in advance - Mark meals as completed when eaten - Quick add water/weight - See progress charts Include: - User authentication (Flask-Login) - Form validation - Error handling - Responsive design - Sample data - Setup instructions Generate complete code with folder structure. ``` --- ## Next Steps 1. **Review this plan** - Make sure it matches your vision 2. **Start with backend** - Database and API integration 3. **Build dashboard** - Core tracking interface 4. **Add meal planner** - Planning ahead feature 5. **Test and iterate** - Use it yourself, refine Ready to start building? Let's create the actual application! 🚀