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
Help
to enable help command.- This feature allows the user to learn the syntax for all commands available.
- Implemented
Add records for exercise, sleep, diet, and bodyweight
feature.- 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 records
feature.- 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 records
feature.- 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 bodyweight
feature.- 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 goals
feature.- This feature allows the user to check the current progress of goals set by the user.
- Implemented
Cancel existing goals
feature.- This feature allows the user to cancel a goal set by the user.
- Implemented
Time Controller
to 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
Features
and 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 app
Exit the app
Input Exercise Data
View Exercise Data
Delete Exercise Data
Set a daily or weekly goal for exercise
Set a daily or weekly goal for sleep
Set a daily or weekly goal for diet
Set a daily or weekly goal for body weight
Set a daily or weekly goal for sleep
Check the progress of goals
Cancel a goal
- Rewrote features including:
- Updated all features in
Features
to 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
,Glossary
andFuture Works
. (Pull Requests: #142) - Added the
Design
section, as well asArchitecture
which is underDesign
. (Pull Requests: #142) - Added the content in section
Appendix: Requirements
, includingProduct Scope
,User Stories
, andNon-Functional Requirements
. (Pull Requests: #142) - Added the
Components
section, 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
Record
classes, andGoal
classes. (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)