16 KiB
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
-- 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
- Navigate to Meal Planner
- Select future date
- Add meals for each time slot
- Search Filipino foods or API
- Adjust quantities
- See macro totals update in real-time
- Save meal plan
Execution Mode
- Dashboard shows today's planned meals
- Check off meals as you eat them
- Edit portions if needed (ate more/less)
- Actual consumption updates automatically
- 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
- Check Filipino foods table first (fastest)
- Check cached API results
- Query API Ninjas
- Query Open Food Facts
- 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)
# Free tier includes:
# - 550 dyno hours/month
# - PostgreSQL database
# - HTTPS by default
Alternative: PythonAnywhere
# Free tier includes:
# - One web app
# - 512MB storage
# - Good for personal projects
Alternative: DigitalOcean App Platform
# $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
- Review this plan - Make sure it matches your vision
- Start with backend - Database and API integration
- Build dashboard - Core tracking interface
- Add meal planner - Planning ahead feature
- Test and iterate - Use it yourself, refine
Ready to start building? Let's create the actual application! 🚀