CIS4930 Group Project: EasyFit
The goal of EasyFit is to help the user achieve their fitness goals by providing them with a tailored workout and diet plan based off of their physical attributes. This is done using a PyQt5 window that prompts the user for several inputs including their age, gender, height, etc. Once these inputs are received, they are used to construct and initialize a person object. Each person object is entered into a database. Workout and diet plans can be created specifically for any person object because of the variables stored in that specific person. Diets use the gender, height, weight, and age of the user in order to calculate that user's suggested daily caloric intake. This number is then manipulated and divided between the three main macronutrients (carbs, fats, and proteins) in a way depending on the user's fitness goals. Workouts take into consideration both the gender and fitness goal of the user to provide them with a weekly workout plan that will best help them achieve said goal. In order to run the program, we must first run setup.py to set up our database before we populate it with potential users. After this has been done, a user can run form.py which will display a PyQt5 window for them to enter their attributes. We also prompt the user to name the output text file that is created, populated with both plans, and opened in a new window once the user is done with their input. By implementing the database feature in our program, we are able to appropriately welcome new users or welcome back returning users and inform them of their progress by telling them how many pounds they've gained/lost since their last login. We are also able to clear the database if need be by running a simple "delete database.db" command. The libraries and modules used in this project are sqlite3, QtWidgets, subprocess, os, platform, and sys. Everyone contributed and collaborated on the majority of EasyFit's features. However, the specific focuses of each individual group member is as follows: Michael on the database implementation, Matias on the person and diet classes, Abigail on the female portion of the workout class and the README, Ryan on the male portion of the workout class, user interface, and output formatting to the text file, and Tristian on the PyQt5 user interface and main driver file.