Ruiqi's Project Portfolio Page
Project: NutriGoals
NutriGoals is a desktop app that tracks a user’s diet and calorie consumption. It is targeted at NUS students who wish to be more mindful about their calorie intake and adopt a healthier lifestyle.
Given below are my contributions to the project.
- New feature: Added the ability to show a summary of the calorie intake progress (Pull request #56).
- What it does: Allows the user to view the total calories consumed, the calorie target and the calorie deficit/surplus for the current day.
- Justification: This feature provides a convenient way for users to view all the details about their calorie intake progress for the day. Users do not have to manually calculate their total calorie intake and can track their progress more easily.
- Highlights: The implementation of this feature involved summing up the calorie content of each food item recorded on the current day, retrieving the calorie target set and calculating the difference between the two values.
- New feature: Added the ability to find the calorie content of a food item (Pull request #73). [Done partially with Xavier]
- What it does: Allows the user to find the calorie content of a food item by specifying its name.
- Justification: This feature allows users to check the calorie content of a food item so that they can gain more knowledge about their calorie consumption and make better food choices.
- Highlights: This feature relies on a hashmap to store and retrieve the calorie content of a food item. Currently, there is a limited number of food items included. In future releases, calorie content data could be read from a larger food database to enhance the effectiveness of this feature.
- New feature: Added a progress bar display (Pull request #91).
- What it does: Shows the user’s calorie intake progress for the current day by taking the total calorie intake for the day as a percentage of the target calorie intake set.
- Justification: This GUI feature provides a quick way for users to estimate their calorie intake progress for the day without having to run any commands.
- Highlights: The implementation involved binding the JavaFX
ProgressBarto an observable double value representing the calorie intake progress. The progress bar is updated whenever the total calorie intake or target calorie intake changes.
- Code contributed:
- Project management:
- Managed releases
v1.2,v1.2.1andv1.4.1on GitHub. - Created and assigned issues, created and closed milestones.
- Managed releases
- Enhancements to existing feature: Modified the
listfeature to filter the food list by date and sort it by meal type (Pull request #41).- What it does: Allows the user to view the food items recorded on any day by specifying the desired date.
- Justification: This enhancement allows users to track their meals and calorie consumption for each day separately so that they can better work towards their target calorie intake for each day.
- Highlights: The implementation involved creating a
DateTimefield for each food item when it is added or edited. The filtering of the food list relies on a customIsFoodAddedOnThisDatePredicateclass, while the sorting is done using a customFoodComparatorclass.
- Enhancements to existing feature: Modified the GUI layout and color scheme, except for the list display (Pull request #91). [With Nicole’s help]
- Rearranged the result display to be horizontally aligned with the food list.
- Changed dark theme to light theme.
- Documentation:
- User Guide:
- Added documentation for the
list,reviewandfindfeatures. - Updated documentation for the
Quick startandFAQsections. - Added the
About the user guideandScreen layoutsections.
- Added documentation for the
- Developer Guide:
- Updated the descriptions and class diagrams for the
UI ComponentandModel Componentsections. - Added implementation details of
list,reviewandfindfeatures with sequence, activity and object diagrams. - Added user stories and use cases.
- Updated the descriptions and class diagrams for the
- User Guide:
- Community:
- PRs reviewed (with non-trivial review comments): #60, #87, #107, #146.
- Reported bugs and suggestions for CS2103T-W08-3 during the PE-D.