Spaces:
Build error
Build error
| import streamlit as st | |
| # Function to calculate daily calorie needs based on the Mifflin-St Jeor Equation | |
| def calculate_bmr(gender, age, weight, height): | |
| if gender == "Male": | |
| bmr = 10 * weight + 6.25 * height - 5 * age + 5 | |
| else: | |
| bmr = 10 * weight + 6.25 * height - 5 * age - 161 | |
| return bmr | |
| # Function to calculate daily calorie intake based on activity level | |
| def calculate_calories(bmr, activity_level): | |
| if activity_level == "Sedentary (little to no exercise)": | |
| return bmr * 1.2 | |
| elif activity_level == "Lightly Active (light exercise or sports 1-3 days a week)": | |
| return bmr * 1.375 | |
| elif activity_level == "Moderately Active (moderate exercise or sports 3-5 days a week)": | |
| return bmr * 1.55 | |
| elif activity_level == "Very Active (hard exercise or sports 6-7 days a week)": | |
| return bmr * 1.725 | |
| else: | |
| return bmr * 1.9 # Extremely Active | |
| # Streamlit UI setup | |
| st.set_page_config(page_title="Personalized Diet Plan", layout="wide") | |
| # Title and description | |
| st.title("Personalized Diet Plan Generator") | |
| st.markdown("### Generate your daily diet plan based on your information.") | |
| # Create columns for layout | |
| col1, col2, col3 = st.columns(3) | |
| # Column 1: Gender selection | |
| with col1: | |
| gender = st.selectbox("Select your Gender:", ["Male", "Female"]) | |
| # Column 2: Age, Weight, and Height input | |
| with col2: | |
| age = st.slider("Enter your age:", 18, 100, 25) | |
| weight = st.number_input("Enter your weight (kg):", value=60, min_value=30, max_value=200) | |
| height = st.number_input("Enter your height (cm):", value=170, min_value=100, max_value=250) | |
| # Column 3: Activity level selection | |
| with col3: | |
| activity_level = st.selectbox( | |
| "Select your activity level:", | |
| [ | |
| "Sedentary (little to no exercise)", | |
| "Lightly Active (light exercise or sports 1-3 days a week)", | |
| "Moderately Active (moderate exercise or sports 3-5 days a week)", | |
| "Very Active (hard exercise or sports 6-7 days a week)", | |
| "Extremely Active (very hard exercise or a physically demanding job)" | |
| ] | |
| ) | |
| # Button to calculate diet plan | |
| if st.button("Generate Diet Plan"): | |
| if age and weight and height and gender and activity_level: | |
| # Calculate BMR (Basal Metabolic Rate) | |
| bmr = calculate_bmr(gender, age, weight, height) | |
| # Calculate daily calorie needs based on activity level | |
| calories_needed = calculate_calories(bmr, activity_level) | |
| # Provide a suggested diet breakdown (50% carbs, 20% protein, 30% fats) | |
| carbs = calories_needed * 0.50 / 4 # 4 calories per gram of carbs | |
| protein = calories_needed * 0.20 / 4 # 4 calories per gram of protein | |
| fats = calories_needed * 0.30 / 9 # 9 calories per gram of fats | |
| st.markdown("### Your Daily Calorie Requirement: {:.2f} Calories".format(calories_needed)) | |
| st.markdown("### Suggested Macros Breakdown:") | |
| st.write(f"**Carbohydrates**: {carbs:.2f} g") | |
| st.write(f"**Proteins**: {protein:.2f} g") | |
| st.write(f"**Fats**: {fats:.2f} g") | |
| # Generate a sample diet plan (for simplicity, it's just an example) | |
| st.markdown("### Example Diet Plan:") | |
| st.write(""" | |
| **Breakfast**: | |
| - Oatmeal with fruits and nuts (300 calories) | |
| - 1 Boiled Egg (70 calories) | |
| **Lunch**: | |
| - Grilled Chicken Salad with Avocado (400 calories) | |
| - Brown Rice (200 calories) | |
| **Snack**: | |
| - Greek Yogurt with Berries (200 calories) | |
| **Dinner**: | |
| - Grilled Salmon with Steamed Vegetables (400 calories) | |
| - Sweet Potato (200 calories) | |
| **Total Calories**: ~2000 calories (customize according to your needs) | |
| """) | |
| else: | |
| st.error("Please fill in all the required fields.") | |
| # Footer | |
| st.markdown("---") | |
| st.markdown("Created by [Your Name].") | |