The development of this application has been inspired by a personal need that I have had for a while. I enjoy staying fit and feel that having a great diet is just as important as having a good workout routine. This app enables anyone interested in tracking exactly what food/drink goes into their bodies throughout the entire day to log in food information that includes things like amount of carbohydratess, protein, fat, etc. The dynamic information logging process then integrates this entry into the daily goal/limit.
This helps users achieve peace of mind when worrying about if eating another cupcake in the evening might take their daily calorie intake over the limit. Additional features include:
- Select specific dietary goals to work towards(cutting, bulking, etc).
- Let the app calculate BMI values to give you a better idea of your current fitness.
- Log food information for specific times of the day to track, plan, and meal prep more precisely.
- As a user, I want to be able to add a food item to the list of food items consumed daily.
- As a user, I want to be able to add any amount of water drank throughout the day.
- As a user, I want to be able to see how many calories I need to consume in the day, to hit my target.
- As a user, I want to be able to see a well formatted list of all the food items I have consumed throughout the day, printed in front of me by the program.
- As a user, I want to be able to calculate my BMI, and then have the program recommend a diet plan to take on.
- As a user, I want to be able to store my daily food and water consumption information to file.
- As a user, I want to be able to login as a returning user with pre-existing information, or as a new user with no pre-existing data records
- As a user, I want to reset all my information daily so that I can keep track of only information for one day at a time.
- I have designed a robust class DietPlan, that throws ImpossibleBodyDimensionsException The DietPlan constructor, and calculateBMI throw the exception. bmiAssessment and dietPlanRecommendation do not throw it, but they have included it in their method signatures.
- I would refactor the gui package to not be so dependent on the User class.
- I would implement a Map interface to store different Users so that the program can allow anyone to load in their saved data even if someone else has used the program after them.
- I would try to reduce coupling between gui classes.