From 8b0e2625f5df2daaf649b3bd4c416ba4335120f2 Mon Sep 17 00:00:00 2001 From: infinicaretech Date: Thu, 2 Apr 2026 13:06:39 +0000 Subject: [PATCH] feat: major update - medical profiles, global diet, gym/home/none workouts, exercise GIFs - Expanded profile with 70+ fields: disability, chronic diseases, medications, blood type/pressure/sugar, heart/diabetes/thyroid/asthma/arthritis conditions - Workout location modes: gym (full equipment), home (bodyweight+equipment), none (light activity plan for non-exercisers) - Exercise database with GIF URLs for visual guidance - Global diet programs replacing regional foods: Mediterranean, High-Protein, Low-Carb, Anti-Inflammatory, Heart-Healthy, Diabetic-Friendly - Medical condition-aware nutrition (diabetes, heart, blood pressure adjustments) - 7-step profile wizard with disability and medical history sections - Fixed DROP TABLE bug in database.js - Shopping list supports new ingredient format Co-Authored-By: Claude Opus 4.6 (1M context) --- src/database.js | 73 +- src/public/index.html | 2286 +++++++++++++++++++--- src/routes/profile.js | 270 ++- src/routes/program.js | 21 +- src/services/dietitian.js | 3905 ++++++++++++++++++++++++++++++------- src/services/shopping.js | 182 +- src/services/trainer.js | 1601 ++++++++++++--- 7 files changed, 6954 insertions(+), 1384 deletions(-) diff --git a/src/database.js b/src/database.js index 9512531..3eb1bf2 100644 --- a/src/database.js +++ b/src/database.js @@ -29,16 +29,85 @@ function initTables() { CREATE TABLE IF NOT EXISTS profiles ( user_id INTEGER PRIMARY KEY, + -- Basic metrics age INTEGER, gender TEXT, height REAL, weight REAL, + target_weight REAL, + -- Body composition + body_fat_percentage REAL, + waist_circumference REAL, + hip_circumference REAL, + neck_circumference REAL, + wrist_circumference REAL, + chest_circumference REAL, + arm_circumference REAL, + thigh_circumference REAL, + calf_circumference REAL, + body_type TEXT, + -- Lifestyle activity_level TEXT DEFAULT 'moderate', - country TEXT DEFAULT 'Turkey', - city TEXT DEFAULT '', goal TEXT DEFAULT 'maintain', + job_type TEXT, + sleep_hours REAL, + sleep_quality TEXT DEFAULT 'moderate', + water_intake REAL, + stress_level TEXT DEFAULT 'medium', + daily_steps INTEGER, + -- Workout preferences + workout_experience TEXT DEFAULT 'beginner', + workout_days_per_week INTEGER DEFAULT 3, + workout_location TEXT DEFAULT 'gym', + workout_duration_minutes INTEGER DEFAULT 60, + has_equipment INTEGER DEFAULT 0, + available_equipment TEXT DEFAULT '', + fitness_goal TEXT DEFAULT 'general_fitness', + cardio_preference TEXT DEFAULT 'moderate', + -- Injury & disability + has_injury INTEGER DEFAULT 0, + injury_area TEXT DEFAULT 'none', + injury_severity TEXT, + injury_notes TEXT, + has_disability INTEGER DEFAULT 0, + disability_type TEXT DEFAULT 'none', + disability_details TEXT, + mobility_level TEXT DEFAULT 'full', + uses_wheelchair INTEGER DEFAULT 0, + has_prosthetic INTEGER DEFAULT 0, + prosthetic_area TEXT, + -- Medical conditions + health_conditions TEXT DEFAULT '', + chronic_diseases TEXT DEFAULT '', + medications TEXT DEFAULT '', + surgeries TEXT DEFAULT '', + blood_type TEXT, + blood_pressure TEXT DEFAULT 'normal', + blood_sugar TEXT DEFAULT 'normal', + cholesterol_level TEXT DEFAULT 'normal', + heart_condition INTEGER DEFAULT 0, + heart_condition_details TEXT, + has_diabetes INTEGER DEFAULT 0, + diabetes_type TEXT, + has_thyroid INTEGER DEFAULT 0, + thyroid_type TEXT, + has_asthma INTEGER DEFAULT 0, + has_epilepsy INTEGER DEFAULT 0, + has_arthritis INTEGER DEFAULT 0, + arthritis_type TEXT, + has_osteoporosis INTEGER DEFAULT 0, + has_fibromyalgia INTEGER DEFAULT 0, + mental_health TEXT DEFAULT 'none', + -- Nutrition + meals_per_day INTEGER DEFAULT 4, allergies TEXT DEFAULT '', dietary_restrictions TEXT DEFAULT '', + food_intolerances TEXT DEFAULT '', + supplement_use TEXT DEFAULT '', + caffeine_intake TEXT DEFAULT 'moderate', + smoking TEXT DEFAULT 'no', + alcohol TEXT DEFAULT 'none', + -- Timestamps updated_at TEXT DEFAULT (datetime('now')), FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); diff --git a/src/public/index.html b/src/public/index.html index 8696e9d..578fd6a 100644 --- a/src/public/index.html +++ b/src/public/index.html @@ -3,7 +3,7 @@ - FitLife - Sağlık & Fitness + FitLife - Saglik & Fitness