Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a small streamlit application #391

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions BMI_and_BMR_Calculator/1_Home.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import streamlit as st
import pandas as pd
from pathlib import Path
import pickle


layout ='centered'
page_title = 'BMI and BMR Calculator'

st.set_page_config(page_title=page_title, layout=layout)
st.header(page_title)

st.subheader('Body Mass Index (BMI)')

st.write('''BMI is a measurement of a person's leanness
or corpulence based on their height and weight, and
is intended to quantify tissue mass.
It is widely used as a general indicator of whether a person has a healthy body weight for their height. Specifically, the value obtained from the calculation of BMI is used to categorize whether a person is underweight, normal weight, overweight, or obese depending on what range the value falls between. These ranges of BMI vary based on factors such as region and age, and are sometimes further divided into subcategories such as severely underweight or very severely obese. Being overweight or underweight can have significant health effects, so while BMI is an imperfect measure of healthy body weight, it is a useful indicator of
whether any additional testing or action is required''')


st.subheader('BMI Formula')
st.write('''
BMI in the International System of Units (SI)\n\n
\t\t\t BMI = Mass(Kg)/(Height(m)^2)
''')




st.subheader('Basal Metabolic Rate (BMR)')

st.write('''
The basal metabolic rate (BMR) is the amount of energy needed while resting in
a temperate environment when the digestive system is inactive. It is the
equivalent of figuring out how much gas an idle car consumes while parked.
In such a state, energy will be used only to maintain vital organs, which
include the heart, brain, kidneys, nervous system, intestines, liver, lungs,
sex organs, muscles, and skin.
''')

st.write('''
\n Mifflin-St Jeor Equation:\n
\nFor men: BMR = 10W + 6.25H - 5A + 5\n
For women: BMR = 10W + 6.25H - 5A - 161
''')



st.write("\n\nTo measure your BMI and BMR go to the calculate page\n")


32 changes: 32 additions & 0 deletions BMI_and_BMR_Calculator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

# BMI and BMR Calculator

This Streamlit application calculates BMI and BMR for adults. Users input their height, weight, age, and gender to get their BMI, BMR, and a short analysis of their weight category, including insights on whether they are underweight, normal weight, overweight, or obese.


## Run the application

Download the repo

```bash
git clone https://github.com/gitarshmah/Awesome-Python-Scripts.git
```

Go to the project directory

```bash
cd BMI_and_BMR_Calculator/
```

Install Streamlit

```bash
pip install streamlit
```

Run the app

```bash
streamlit run 1_Home.py
```

66 changes: 66 additions & 0 deletions BMI_and_BMR_Calculator/pages/2_Calculate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import streamlit as st

st.subheader('Calculate BMI(Body Mass Index) \n\n')
st.write("Have a look at the chart displaying the different BMI ranges according to their respective weight categories.\n\n")
st.image('ranges.png')

height = st.number_input("Enter your height in(cms): ", min_value=100)
weight = st.number_input("Enter your weight in kgs: ", min_value=1)
def bmi(height, weight):
value = weight/((height/100)**2)
return value*(1.0)
def category(person_bmi):
if person_bmi<16:
return ("Severe Thinness")
elif person_bmi>=16 and person_bmi<17:
return ("Moderate Thinness")
elif person_bmi>=17 and person_bmi<18.5:
return ("Mild Thinness")

elif person_bmi>=18.5 and person_bmi<25:
return ("Normal")


elif person_bmi>=25 and person_bmi<30:
return ("Overweight")


elif person_bmi>=30 and person_bmi<35:
return ("Obese Class I")

elif person_bmi>=35 and person_bmi<40:
return ("Obese Class II")

else:
return ("Obese Class III")


person_bmi = bmi(height, weight)
st.write("Your BMI is "+str(person_bmi)+' kg/m2')
st.write("You lies under the category of " + category(person_bmi))


st.subheader('\n\nCalculate BMR(Basal Metabolic Rate)\n\n')
age = st.number_input("Enter your age: ")
gender = st.text_input("Enter your gender Either('M' or 'F'): ")
if gender == 'M':
bmr = (10 * weight) + (6.25 * height) - (5 * age) + 5
else:
bmr = (10 * weight) + (6.25 * height) - (5 * age) - 161

lifestyle = st.selectbox('Choose the lifestyle', options=['sedentary (little or no exercise)', 'lightly active (light exercise or sports 1-3 days/week)', 'moderately active (moderate exercise 3-5 days/week)', 'very active (hard exercise 6-7 days/week)','super active (very hard exercise and a physical job)'])

if lifestyle == 'sedentary (little or no exercise)':
bmr = bmr*1.2
elif lifestyle == 'lightly active (light exercise or sports 1-3 days/week)':
bmr = bmr*1.375
elif lifestyle == 'moderately active (moderate exercise 3-5 days/week)':
bmr = bmr*1.55
elif lifestyle == 'very active (hard exercise 6-7 days/week)':
bmr = bmr*1.725
else:
bmr =bmr*1.9

st.text(f'Your daily calories consumption is {bmr} kcal per day')


Binary file added BMI_and_BMR_Calculator/ranges.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.