By: Team ExerHealth
Since: Sep 2019
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Important terms
- 4. Features
- 4.1. Viewing help :
help
- 4.2. Adding exercise/regime information:
add
- 4.3. Listing information :
list
- 4.4. Selecting an item:
select
- 4.5. Edit exercise information:
edit
- 4.6. Delete health information :
delete
- 4.7. Clearing all entries :
clear
- 4.8. Display statistics :
stats
- 4.9. Undo previous command:
undo
- 4.10. Redo undone command:
redo
- 4.11. Scheduling exercises:
schedule
- 4.12. Resolving scheduling conflicts:
resolve
- 4.13. Suggesting ideas:
suggest
- 4.14. Custom properties
custom
/viewcustom
- 4.15. Exiting the program :
exit
- 4.16. Saving the data
- 4.17. Suggest intensity
[Coming in v2.0]
- 4.18. Remind to do exercises
[coming in v2.0]
- 4.19. Autocomplete of commands
[coming in v2.0]
- 4.20. Importing data
[coming in v2.0]
- 4.21. Encrypting data files
[coming in v2.0]
- 4.1. Viewing help :
- 5. FAQ
- 6. Command Summary
1. Introduction
Wish to get the summer body that the contestants in your school’s beauty pageant has? Want to shed some weight that you have gained from stress-eating?
Well wait no more! ExerHealth is a one-stop platform for students who wish to embark on a journey of health and fitness. This application is optimised for students who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast and wish to maintain a healthy lifestyle, ExerHealth is that one app for you!
Interested? Jump to Section 2, “Quick Start” to get started! Enjoy!
2. Quick Start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
exerhealth.jar
here. -
Copy the file to the folder you want to use as the home folder for ExerHealth.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
Figure 1. The UI of ExerHealth -
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
list t/exercise
: gets all the exercises ExerHealth is tracking. -
add t/exercise n/Push ups d/01/10/2019 c/123 q/100 u/reps
: adds an exercise namedPush ups
to ExerHealth. -
exit
: exits the app
-
-
Refer to Section 4, “Features” for details of each command.
3. Important terms
If this is your first time using our app, fear not! Below are some of the terms that you may commonly encounter when reading our guide.
-
Prefix: The term that comes before each parameter. E.g.: the prefix in
t/exercise
ist/
. -
Prefix name: The word in a Prefix. E.g.: the prefix name of
t/
ist
and the prefix name ofed/
ised
. -
List Type: In ExerHealth, there are 4 different types of lists
-
Exercise which will be denoted as
exercise
-
Regime which will be denoted as
regime
-
Schedule which will be denoted as
schedule
-
Suggestion which will be denoted as
suggestion
-
4. Features
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. instats t/CAT_NAME
,CAT_NAME
is a parameter which can be used asstats t/exercise
. -
Words in
lower_case
are the compulsory keywords that inform ExerHealth about the category of information being added. e.g.add t/exercise n/EXERCISE_NAME
,t/exercise
is a keyword that informs ExerHealth about adding to the exercise tracker. -
Items in square brackets are optional e.g
d/date [m/MUSCLE]
can be used asd/1/10/2019 m/Legs
or asd/1/10/2019
. -
Items with
…
after them can be used multiple times including zero times e.g.[m/MUSCLE]…
can be used asm/glutes
,m/glutes m/chest
etc. -
Parameters can be in any order e.g. if the command specifies
n/NAME d/DATE c/CALORIES
,d/DATE c/CALORIES n/NAME
is also acceptable.
4.1. Viewing help : help
Views the help dialog box which will bring you to this UserGuide. You can expect to see a window as shown below.
Format: help
Clicking on the Copy URL
button will copy the link to your clipboard and you can open any browser of your choice to access the UserGuide for ExerHealth
.
4.2. Adding exercise/regime information: add
4.2.1. Adding exercise information
Adds the relevant exercise information into ExerHealth. You can enter the following additional information for each exercise:
-
Calories burnt in kcal
-
Quantity of exercises completed
-
Units of measure
-
Muscle group(s) that are being worked out
-
Custom properties that have been added
Format: add t/exercise n/EXERCISE_NAME d/DATE c/CALORIES q/QUANTITY u/UNITS [m/MUSCLE]…[CUSTOM_PROPERTY_PREFIX_NAME/VALUE]…
Examples:
-
add t/exercise n/Run d/19/09/2019 c/500 q/2.4 u/km
Expected result:
Run
is added-
add t/exercise n/Sprinting d/11/11/2019 c/500 q/400 u/metres m/Thighs
Sprinting
is added4.2.2. Adding exercises to scheduling regime
Adds exercises from the exercises you have added into a new exercise regime. If a regime of the same name already exists, exercises will be added to the same scheduling regime.
Format: add t/regime n/REGIME_NAME [i/INDEX]…
Example:
-
add t/regime n/power sets i/1 i/2 i/3
Adds the 1st, 2nd and 3rd exercise in the list to the regime named power sets
.
Expected result:
power sets
regime is created-
add t/regime n/cardio i/4
Adds the 4th exercise in the list to the regime named cardio
.
Figure below shows regime list with regime named cardio
:
cardio
Expected result after add t/regime n/cardio i/4
command executed:
cardio
4.3. Listing information : list
Retrieves a list of information - Exercise, Regime, Scheduled Regime or Suggestion - from ExerHealth.
Format: list t/LIST_TYPE
Example:
-
list t/exercise
Expected result:
-
list t/regime
Expected result:
-
list t/schedule
Expected result:
4.4. Selecting an item: select
Selects the item at the given index of the chosen list type.
Format: select t/LIST_TYPE i/INDEX
Example: select t/exercise i/3
4.5. Edit exercise information: edit
Edits the relevant exercise information in ExerHealth. You can edit all the possible information for exercises including custom properties.
Format: edit i/INDEX [n/EXERCISE_NAME] [d/DATE] [c/CALORIES] [q/QUANTITY] [u/UNITS] [m/MUSCLE]…[CUSTOM_PROPERTY_PREFIX_NAME/VALUE]…
Example:
-
edit i/2 n/Running d/20/09/2019
Edits the name and the date of the 2nd exercise to Running
and 20/09/2019
respectively.
Before
After
Exercise now appears at the bottom as the list is sorted by date.
-
edit i/3 n/Bench press d/04/11/2019 c/240 q/10 u/sets m/Chest
Edits the name, date, calories burnt, quantity, units and muscle group trained of the 3rd exercise to Bench press
,
22/09/2019
, 240
, 10
, sets
and Chest
respectively.
Before
After
4.6. Delete health information : delete
4.6.1. Deleting exercise information
Deleting a certain exercise information from ExerHealth.
Deleting an exercise from ExerHealth will not cause it to be deleted from your list of regimes and schedules. If you wish to delete an exercise from a regime, refer to Section 4.6.2, “Deleting exercise from scheduling regime”. If you wish to complete a scheduled regime, refer to Section 4.11.2, “Completes a schedule regime” |
Format: delete t/exercise i/INDEX
Examples:
-
delete t/exercise i/2
Expected result:
4.6.2. Deleting exercise from scheduling regime
Deletes exercises from a certain scheduling regime.
Format: delete t/regime n/REGIME_NAME [i/INDEX]…
Examples:
-
delete t/regime n/cardio i/2
Deletes the exercise indexed 2 in the cardio regime
Figure below shows regime list with regime named cardio
with 4 exercises:
cardio
regime with 4 exercisesExpected result after delete t/regime n/cardio i/2
command executed:
cardio
regime is removed-
delete t/regime n/legs
Deletes the entire regime named legs
Figure below shows regime list with regime named legs
:
legs
regime before it is deletedExpected result after delete t/regime n/legs
command executed:
legs
regime is completely removed4.7. Clearing all entries : clear
Clears all entries from the exercise tracker.
Exercise tracker must not be empty when the clear command is executed. |
Format: clear
Example:
Initially, the exercise tracker is populated with exercises.
After calling the clear
command, all exercises are removed from the
exercise tracker list.
4.8. Display statistics : stats
Display the statistics of exercises in completed exercise list.
Format: stats t/CAT_NAME h/CHART_TYPE [s/START_DATE] [e/END_DATE]
Due to space constraint, some labels may not appear. Tooltips can be seen when mouse cursor hovers over the chart. |
Example:
-
stats t/exercise h/piechart
-
stats t/calories h/linechart
-
stats t/calories h/barchart s/31/10/2019 e/06/11/2019
4.9. Undo previous command: undo
Undo the previous successful command entered.
If there is no previous command, undo will do nothing. |
Format: undo
Example:
-
Undoing a
delete t/regime [i/INDEX]…
command that deletes exercise from an existing regime.
Initial:
Step 1: delete t/regime n/Level 3 i/5
Deletes the fifth exercise Hiking
from the regime Level 3
Hiking
from our selected regimeStep 2: undo
Adds the exercise Hiking
back to the regime Level 3
undo
reverses the deletion!-
Undoing a Schedule Complete command and a Schedule Regime command
Initial: Schedule list only contains two scheduled regimes
Step 1: schedule n/Level 3 d/10/11/2019
Schedules the regime Level 3
on 10/11/2019
Level 3
scheduled on 10/11/2019Step 2: schedule i/1
Marks the scheduled regime at index 1, regime Level 3
, as completed.
Exercise list showing the newly completed exercises from the regime "Level 3"
Schedule list showing the updated schedule without regime "Level 3"
Step 3: undo
Undoes the completion of regime. The regime Level 3
appears in the schedule list again.
undo
reverses the removal!Step 4: undo
Undoes the scheduling of regime. The regime Level 3
is no longer visible in the schedule list.
undo
also reverses the scheduling!4.10. Redo undone command: redo
Redo the previous command that was undone by the user. It can only be executed after successful executions of the undo command. For a list of Undoable commands, refer to the Undo Command.
If the Undo command has not been executed after the execution of the last Undoable command, there will be
no command to redo.
|
Format: redo
Example:
-
Redoing a
add t/exercise
command that has just been undone.
Initial:
Step 1: add t/exercise n/Squats d/08/11/2019 c/200 q/150 u/reps
Adds a new exercise called Squats
.
Squats
is added to the exercise listStep 2: undo
Undoing the command removes the Squats
exercise from the list.
undo
removes the exercise Squats
Step 3: redo
Redoing the command returns the Squats
exercise to the list again.
redo
adds Squats
back!-
Redoing a resolve command that has just been undone.
Initial:
Attempts to schedule Level 2
regime on the date of Level 1
regime.
Step 1: schedule n/Level 2 d/10/11/2019
Resolve conflict window appears due to the conflict in date.
The conflict can be resolved by specifying the index of exercises
to be taken from each regime.
Step 2: resolve n/Level 1 and 2 i/2 r/2 r/3
Resolves conflict by creating a new regime Level 1 and 2
.
The new regime Level 1 and 2
replaces the initial Level 1
regime
in the schedule.
Step 3: undo
Undoing the command reverts the scheduled regime from Level 1 and 2
to the initial
Level 1
regime.
undo
reverses the conflict resolutionStep 4: redo
Redoing the command updates the scheduled regime from Level 1
to the resolved
Level 1 and 2
regime.
redo
returns the new regime that was created after the conflict resolution!4.11. Scheduling exercises: schedule
4.11.1. Schedules a regime
Schedules an exercise regime for a certain date. If the regime clashes with another scheduled regime, you will be prompted to resolve the conflict via a popup window. Refer to Section 4.12, “Resolving scheduling conflicts: resolve
” for details on resolving scheduling conflicts.
Format: schedule n/REGIME_NAME d/DATE
Example 1:
-
schedule n/cardio d/12/12/2019
Schedules the regime called cardio
on the date 12/12/2019
. If there are no other regimes scheduled on 12/12/2019
then the command is successful. Otherwise, you will be prompted to resolve the scheduling conflict.
Expected Result:
cardio
regime is scheduled on 12/12/2019Expected Result (if other schedule exist on 12/12/2019
):
If the resolve window pops up for you, please refer to Section 4.12, “Resolving scheduling conflicts: resolve
” for details on resolving a scheduling conflict.
4.11.2. Completes a schedule regime
Once a scheduled regime is completed, you can add that completed schedule to the exercise tracker. The schedule is then deleted from the scheduling list.
Format: schedule i/INDEX_OF_SCHEDULE
The INDEX_OF_SCHEDULE provided must be a valid index from your schedule list. Please use list t/schedule to view the index of the schedule you wish to complete.
|
Example:
-
schedule i/2
Completes all the exercises that are in the schedule at index 2
. All the exercises scheduled will be added to the exercise list and the schedule at index 2
is deleted.
Expected Result:
Before execution of schedule i/2
In your exercise tracker
In your schedule tracker after completing execution of schedule i/2
4.12. Resolving scheduling conflicts: resolve
Described in the following two sections are two possible ways to resolve a scheduling conflict in the resolve window that pops up.
4.12.1. Taking one of the regimes completely
Takes the scheduled regime or the conflicting regime completely and discarding the other. Neither regimes will be deleted from the user’s collection.
Format: resolve n/SCHEDULED_OR_CONFLICTING
You can only enter n/scheduled or n/conflicting to tell ExerHealth which schedule you wish to take. The scheduled or conflicting regimes are stated at the top of the list of exercises as shown below.
|
Example:
-
resolve n/scheduled
Takes the already scheduled regime and schedule it at conflicting date.
Expected Result:
The resolve window and inputting the example command
Once resolve window closes, the scheduled regime should be taken and scheduled at the correct date.
4.12.2. Taking some exercises from both regimes
Takes some exercises from the scheduled regime and some from the conflicting regime to make a brand new regime. The new regime will be scheduled at the date of conflict. This new regime will also be added to your collection of regimes.
Format: resolve n/NEW_REGIME_NAME [i/INDEX_OF_EXERCISE_IN_SCHEDULED] [r/INDEX_OF_EXERCISE_IN_CONFLICTING]
Example:
-
resolve n/new cardio i/1 r/4 r/2
Expected Result:
Takes exercise 1
from scheduled regime
and exercises 2
and 4
from conflicting regime
and adds them to a new regime called new cardio
The new cardio
regime is now scheduled at the conflicting date with the new exercises that have been resolved.
The new cardio
regime is now added to your collection of regimes
4.13. Suggesting ideas: suggest
4.13.1. Suggests basic exercises
Recommends exercises from ExerHealth’s inbuilt database for beginners.
Format: suggest s/basic
4.13.2. Suggests possible exercises
Suggests exercises matching specified tags.
Based on matching muscle tags
Format: suggest s/possible o/OPERATION_TYPE [m/MUSCLE]… CUSTOM_PROPERTY_PREFIX_NAME/VALUE]…
Based on matching custom properties
Similar to matching muscles tags, you can search for suggestions with matching custom property tags.
After creating custom properties and tracking exercises, you can search for suggestions with those custom properties.
Example: Suppose you have created a new custom property and have been tracking a few exercises with said custom property:
-
custom s/r f/Rating p/Number
-
add t/exercise n/Run d/03/11/2019 c/200 q/10 u/km m/Legs r/8
-
add t/exercise n/Bench Press d/05/11/2019 c/150 q/40 u/kg m/Chest r/8
Then, the following input will display a list of exercises which are tagged with Chest
and have a rating of 8
.
suggest s/possible o/and m/Chest r/8
Thus the command will display only the exercise named "Bench Press".
Expected Result:
Chest
tag and a rating of 8
are shown.The input, suggest s/possible o/or m/Chest r/8
, however, will display a list of exercises tagged with Chest
or have a rating of 8
.
Expected Result:
Chest
tag and exercises with a rating of 8
are shown.As shown above, the two previously added exercises, "Bench Press and "Run", are displayed because they each have a rating of 8
.
In addition to the tracked exercises, ExerHealth also displays suggestions in its database. Hence it will display the exercise named "Push Ups" as it has a Chest
tag.
Duplicates
Sometimes, you may want to track exercises of the same name. Instead of displaying all suggestions of the same name, suggest
displays the information of the most recently tracked exercise of that name.
As can be seen below, there are two exercises named "Bench Press".
Expected Result:
Bench Press
exercise is displayedAs seen from the image above, the information from the "Bench Press" on "06/11/2019" is displayed instead of the one on "05/11/2019" (observe that the calories are different).
4.14. Custom properties custom
/ viewcustom
4.14.1. Adding custom properties: custom
Adds in a custom property which you can define for the exercises.
Once a new custom property is created, you can simply use the prefix name which you defined for the
property in the add
and edit
command to include information for the new property.
Format: custom s/PREFIX_NAME f/FULL_NAME p/PARAMETER_TYPE
The following names and prefix names have been used for existing add / edit command parameters and properties and so, cannot be used. |
Names used |
Prefix names used |
Name |
n |
Date |
d |
Calories |
c |
Quantity |
q |
Unit |
u |
Muscle |
m |
- |
t |
- |
i |
Example:
-
custom s/r f/Rating p/Number
Creates a Rating
property for each of your exercises.
Expected Result:
You can now add a new exercise with Rating
!
-
add t/exercise n/Dancing d/07/11/2019 c/400 q/2 u/hours r/5
Expected Result:
4.14.2. Removing custom properties: custom
Removes a custom property which you have previously defined either from a single exercise or from ExerHealth.
In the second case, you will still be able to add back the deleted custom property if you wish to.
Format: custom rm/FULL_NAME [i/INDEX]
Example:
-
custom rm/Rating
Before the execution, the Rating
property will be present in exercises that have it.
After the execution, the Rating
property will be removed from all of the exercises and the app
as illustrated in the next few figures.
-
custom rm/Rating i/6
Before the execution, both exercises 6 and 7 have a rating attached to them.
After the execution, only exercise 6 has its rating property removed.
4.14.3. Viewing custom properties: viewcustom
Opens up a window for you to view the custom properties you have defined. The name, prefix and parameter type of all existing custom properties will be shown.
Note that the window shows the custom properties that are present in the app at the time
that it was opened. Any new addition/deletion will not be reflected unless the viewcustom
command
is used again.
Format: viewcustom
Example:
-
viewcustom
Expected Result:
4.15. Exiting the program : exit
Exits the program.
Format: exit
4.16. Saving the data
ExerHealth data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
4.17. Suggest intensity [Coming in v2.0]
Suggesting the amount of repetitions to complete for exercises.
4.18. Remind to do exercises [coming in v2.0]
Reminds you to do exercises.
4.19. Autocomplete of commands [coming in v2.0]
Autocompletes the commands while typing.
4.20. Importing data [coming in v2.0]
Imports data to update inbuilt database of exercises.
4.21. Encrypting data files [coming in v2.0]
Allows you to encrypt your data files for more security.
5. FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous ExerHealth folder.
Q: There are times where a null
message appears in the result display. What should I do?
A: Fear not! Simply restart the app and the null
message will go away.
Q: Exercises with long names are cut off in the info panel. Are there any way for me to view the names of
these exercises?
A: Hover your mouse over the exercise’s name and a friendly tooltip will appear to display its full name.
The same thing can also be done for custom properties!
6. Command Summary
-
Add exercises :
add t/exercise n/EXERCISE_NAME d/DATE c/CALORIES q/QUANTITY u/UNITS [m/MUSCLE]… [CUSTOM_PROPERTY_PREFIX_NAME/VALUE]…
e.g.add t/exercise n/Bench press d/19/09/2019 c/500 q/50 u/reps m/Chest
-
Add regimes :
add t/regime n/REGIME_NAME [i/INDEX_OF_EXERCISE]…
e.g.add t/regime n/Cardio i/1 i/2 i/3
-
List :
list t/LIST_TYPE
e.g.list t/exercise
-
Select :
select t/LIST_TYPE i/INDEX
e.g.select t/exercise i/1
-
Edit exercise :
edit i/INDEX [n/EXERCISE_NAME] [d/DATE] [c/CALORIES] [q/QUANTITY] [u/UNITS] [m/MUSCLE]… [CUSTOM_PROPERTY_PREFIX_NAME/VALUE]…
e.g.edit i/3 n/Bench press d/22/09/2019 c/240 q/10 u/sets m/Chest
-
Delete exercise :
delete t/exercise i/INDEX
e.g.delete t/exercise i/2
-
Delete regimes :
delete t/regime n/REGIME_NAME
e.g.delete t/regime n/Cardio
-
Delete exercise from regime :
delete t/regime n/REGIME_NAME [i/INDEX_OF_EXERCISE]…
e.g.delete t/regime n/Cardio i/1 i/2
-
Clear :
clear
-
Help :
help
-
Stats :
stats t/CAT_NAME h/CHART_TYPE [s/START_DATE] [d/END_DATE]
e.g.stats t/exercise h/barchart s/20/09/2019 e/27/09/2019
-
Undo :
undo
-
Redo :
redo
-
Schedule :
schedule n/REGIME_NAME d/DATE
e.g.schedule n/cardio d/12/12/2019
-
Complete Schedule :
schedule i/INDEX_OF_SCHEDULE
e.g.schedule i/2
-
Resolve(Take one regime) :
resolve n/SCHEDULED_OR_CONFLICTING
e.g.resolve n/scheduled
,resolve n/conflicting
-
Resolve(Take some exercise from both regime) :
resolve n/NEW_REGIME_NAME [i/INDEX_OF_SCHEDULED_EXERCISE] [r/INDEX_OF_CONFLICTING_EXERCISE]
e.g.resolve n/new cardio i/1 i/3 r/2
-
Suggest basic :
suggest s/basic
-
Suggest possible :
suggest s/possible [o/OPERATION_TYPE] [m/MUSCLE]… [CUSTOM_PROPERTY_PREFIX_NAME/VALUE]…
e.g.suggest s/possible m/Legs
,suggest s/possible o/and m/Chest m/Leg
-
Add custom property :
custom s/PREFIX_NAME f/FULL_NAME p/PARAMETER_TYPE
e.g.custom s/ed f/End Date p/Date
-
Remove custom property :
custom rm/FULL_NAME [i/INDEX]
e.g.custom s/End Date i/1
-
View custom property :
viewcustom
-
Exit :
exit