https://github.com/moligarch/optimal-diet-plan
Generating Optimal Diet Plan using Linear Programming and dataset of recipes scraped from bbcgoodfood.com
https://github.com/moligarch/optimal-diet-plan
Last synced: 2 months ago
JSON representation
Generating Optimal Diet Plan using Linear Programming and dataset of recipes scraped from bbcgoodfood.com
- Host: GitHub
- URL: https://github.com/moligarch/optimal-diet-plan
- Owner: moligarch
- License: gpl-3.0
- Created: 2023-06-28T17:45:27.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-01T11:43:13.000Z (almost 2 years ago)
- Last Synced: 2025-02-10T13:43:32.031Z (4 months ago)
- Language: Jupyter Notebook
- Size: 34.1 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Diet Planning Optimization with Linear Programming
## Introduction
Designing an optimal diet plan is important for maintaining health and nutrition. This project aims to generate personalized diet plans using linear programming optimization. Generated plans are basically for **busy people** that need **minimum time to prepare and cook the foods**.
## What is a diet plan?
A diet plan specifies the types and amounts of food to eat over a set period of time. A good diet plan provides the right balance of calories, macronutrients (carbs, protein, and fat), vitamins and minerals needed for overall health and wellbeing.
### Why it's important?
* Maintain a healthy weight - A balanced diet can help achieve and maintain a healthy body weight.
* Meet nutrient needs - A well-planned diet ensures the intake of all essential nutrients required by the body.
* Improve health - Certain diets can help manage diseases like diabetes, high blood pressure, and high cholesterol.
* Increase energy levels - Nutritious foods fuel the body and improve physical and mental performance.## Project Phases
This project aims to optimize diet plans with the following 4 phases:
- [x] **โ Data Gathering/Mining** - Recipes and nutrition data will be scraped from the BBC Good Food website, focusing on quick and easy recipes that require minimal preparation time.
- [x] Define what we are looking for
- [x] Define data scrapping functions
- [x] Store gathered data into dataset- [x] **๐งน Data Cleaning/Selecting** - Missing and erroneous data will be identified and removed. Incomplete recipes will be discarded.
- [x] Classify foods with category and sub-category
- [x] Append recipes and their classification into dataset/data frame
- [x] Remove missing values
- [x] Convert mismatched data
- [x] Select data by condition (Preparation time + Cocking time < 30 min)
- [x] Save modified dataset into file (.csv)- [x] **โ Data Processing** - An LP model will be formulated to generate optimized diet plans that maximize nutrition while minimizing preparation time.
- [x] Make a structure for user prefrences input
- [x] `Define variables`, `constreints` and `objective function`
- [x] Find optimized mix of recipes according to `Cleaned Dataset`- [x] **๐ GUI** - Build a Graphic User Interface(GUI) will by Tkinter library.
- [x] Design general wireframe
- [x] Implement input box to get user prefrences
- [x] Read data and group food by category.
- [x] Add popup for more information about food (ingredients, steps, name and etc.
- [x] Add popup to show shopping list
- [x] **โ COMPLETED** : This project got successfully COMPLETED! Hooray! ๐๐