This project is a comprehensive health application that currently has BMI calculator functionality. The app will be designed to go beyond BMI calculation, expanding its features to include personal bio information, blood pressure tracking, and readings for blood oxygen levels and heart rate. Built using Node.js, Express, MongoDB, and Docker, this app will provide a holistic solution for users to monitor various health metrics in one centralized platform.
-
BMI Calculation: Users can input their name, height in feet and inches, and weight in pounds to calculate their BMI.
-
BMI Classification: The calculated BMI is then classified into categories such as Underweight, Normal weight, Overweight, or Obese.
-
MongoDB Integration: BMI data, including name, height, weight, BMI, and classification, is stored in a MongoDB database.
-
History Page: Users can view a history page that displays all the BMI entries stored in the database.
-
Dockerized Environment: The project includes Docker configuration for easy deployment in a containerized environment.
- Personl Biodata page.
- Blood Pressure monitoring.
- Oxygen Saturation (SpO2) monitoring.
- Heart rate monitoring.
-
Clone the repository:
git clone https://github.com/yourusername/health-app.git cd cd health-app
-
Install the dependencies
npm install
-
Set up MongoDB:
- Ensure MongoDB is running.
- You can directly install the DB or run a container using a MongoDB image pulled from Docker hub.
- If you use a container, you can optionaly use Mongo Express for testing or viewing DB entries.
- Update the MongoDB connection URI in app.js and docker-compose.yml if necessary.
- Ensure MongoDB is running.
-
Run the application:
npm start
OR
node app.js
-
Build the Docker image:
docker-compose build
-
Run the Docker containers:
docker-compose up
-
The app will be accessible at
http://localhost:3000
- Access the current BMI calculator function at
http://localhost:3000
in your browser. - Input your details and calculate BMI.
- View BMI history at
http://localhost:3000/history
Contributions are welcome! Feel free to open issues or submit pull requests.