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].")