Song Yu - Project Portfolio Page
Project Overview: Healthier
Healthier is a cross-platform desktop application developed using Java SE 11, which is used for health and fitness
data management.
It targets people who care about fitness, who exercise regularly (at least 3 times/week) and have diet plans. It is
designed for users of age group 18-30.
The app is used via Command Line Interface (CLI). If the user is proficient in using command-line tools & typing,
then it could be very efficient to use. This app also provides several shortcut commands for advanced users for further
efficient operations.
Summary of Contributions
Code contributed: Click here to view my code contribution on RepoSense.
Features implemented
- Implemented 
Helpto enable help command.- This feature allows the user to learn the syntax for all commands available.
 
 - Implemented 
Add records for exercise, sleep, diet, and bodyweightfeature.- This feature allows the user to:
        
- Add one exercise record with workout activity, duration and date (optional).
 - Add one diet record with food category, food weight and date (optional).
 - Add one sleep record with duration and date (optional).
 - Add one body weight record with current body weight and date (optional).
 
 
 - This feature allows the user to:
        
 - Implemented 
View recordsfeature.- This feature allows the user to view existing records of 
exercise,sleep,diet, andbodyweight. - The displayed result can be filtered by specifying optional parameters.
 
 - This feature allows the user to view existing records of 
 - Implemented 
Delete recordsfeature.- This feature allows the user to delete an existing record of 
exercise,sleep,diet, andbodyweight. 
 - This feature allows the user to delete an existing record of 
 - Implemented 
Set daily/weekly goals for exercise, sleep, diet, and bodyweightfeature.- This feature allows the user to:
        
- Set a daily/weekly exercise goal with a target energy (in calories) to burn.
 - Set a daily/weekly sleep goal with a target duration (in hours).
 - Set a daily/weekly diet goal with a target energy (in calories) to take in.
 - Set a daily/weekly body weight goal with a target weight (in kg).
 
 
 - This feature allows the user to:
        
 - Implemented 
Check daily/weekly goalsfeature.- This feature allows the user to check the current progress of goals set by the user.
 
 - Implemented 
Cancel existing goalsfeature.- This feature allows the user to cancel a goal set by the user.
 
 - Implemented 
Time Controllerto manage the system time which is essential for updating the progress of daily/weekly goals.- This functionality sets a local time for the app, which is used for loading the goal objects from the data files & updating the corresponding progress of each goal.
 - This functionality allows the automatic initialization & update of the daily/weekly progress for goals.
 
 
Enhancements to existing features
- Regularly optimized the overall code quality by refactoring, resolving potential errors, and improving the code design.
 - Added test code & assertions for some of the existing features for better test coverage and reduce the chances of
having bugs & errors.
(Pull Requests: #53, #50) 
Documentation
User Guide
- Added sections including 
Introduction,Table of Contents,Quick Start, andCommand Summary. (Commit: ad0e38b) - Added 
Featuresand wrote skeleton features for teammates to fill in, such asInput Exercise Data. (Commit: ad0e38b) - Added features including:
    
Get help from instructions on how to use this appExit the appInput Exercise DataView Exercise DataDelete Exercise DataSet a daily or weekly goal for exerciseSet a daily or weekly goal for sleepSet a daily or weekly goal for dietSet a daily or weekly goal for body weightSet a daily or weekly goal for sleepCheck the progress of goalsCancel a goal
 - Rewrote features including:
 - Updated all features in 
Featuresto reflect the latest changes in the code base. (Commits: b20b4f1, 4b3e0af, 843bd3d, 89ef692) - Performed regular bugfix, restructuring, reformatting and maintenance of the user guide. (Commits: 47546b0, 9d08d54, bf58055, efae3d5, 7d1df21, 55d4e4f)
 
Developer Guide
- Added sections including 
Table of Contents,Getting Started,GlossaryandFuture Works. (Pull Requests: #142) - Added the 
Designsection, as well asArchitecturewhich is underDesign. (Pull Requests: #142) - Added the content in section 
Appendix: Requirements, includingProduct Scope,User Stories, andNon-Functional Requirements. (Pull Requests: #142) - Added the 
Componentssection, as well as components includingUI component,Parser component,Command component, andCommon component. (Pull Requests: #142, #149) - Added implementation for 
Set Goal feature. (Pull Requests: #142, #149) - Performed regular bugfix, restructuring, reformatting and maintenance of the developer guide. (Commits: acdc31b ) (Pull Requests: #142, #149)
 
Project management
- Setup the GitHub team organization as well as the team repository.
 - Setup the GitHub Pages for hosting the documentations.
 - Managed and updated the milestones, tagging, issue tracker and version releases for team repository.
 - Implemented skeleton Java classes for the team project including 
Recordclasses, andGoalclasses. (Pull Requests: #22, #23, #56) 
Community
I actively helped my teammates to improve their code implementation by giving constructive suggestions as well as possible solutions, and reviewing code of the whole project to ensure the overall code quality. Here are some pull requests where I reviewed and helped rewriting the code: (Pull Requests: #29, #30, #31)