By: Team ExerHealth
Since: Sep 2019
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Viewing help :
help
- 3.2. Adding exercise/regime information:
add
- 3.3. Listing information :
list
- 3.4. Selecting an item:
select
- 3.5. Edit exercise information:
edit
- 3.6. Delete health information :
delete
- 3.7. Clearing all entries :
clear
- 3.8. Display statistics :
stats
- 3.9. Undo previous command:
undo
- 3.10. Redo undone command:
redo
- 3.11. Scheduling exercises:
schedule
- 3.12. Resolving scheduling conflicts:
resolve
- 3.13. Suggesting ideas:
suggest
- 3.14. Custom properties
- 3.15. Exiting the program :
exit
- 3.16. Saving the data
- 3.17. Suggest intensity
[Coming in v2.0]
- 3.18. Remind to do exercises
[coming in v2.0]
- 3.19. Autocomplete of commands
[coming in v2.0]
- 3.20. Importing data
[coming in v2.0]
- 3.21. Encrypting data files
[coming in v2.0]
- 3.1. Viewing help :
- 4. FAQ
- 5. 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.
-
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/1/10/2019 c/123 q/100 u/reps
: adds a exercise namedPush ups
to ExerHealth. -
exit
: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
3. 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.
3.1. Viewing help : help
Format: help
3.2. Adding exercise/regime information: add
3.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]…
Examples:
-
add t/exercise n/Run d/19/09/2019 c/500 q/2.4 u/km
Expected result:

3.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
.
-
add t/regime n/cardio i/4
Adds the 4th exercise in the list to the regime named cardio
.
3.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:

3.4. Selecting an item: select
Selects the item at the given index of the chosen category list.
Format: select t/LIST_TYPE i/INDEX
LIST_TYPE can only be one of the following: exercise , regime , schedule , suggest .
|
Example: select t/exercise i/1
3.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]…
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.
-
edit i/4 n/Swim d/21/09/2019 c/100
Edits the name, date and calories burnt of the 4th exercise to Swim
, 21/09/2019
and 100
respectively.
-
edit i/3 n/Bench press d/22/09/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.
3.6. Delete health information : delete
3.6.1. Deleting exercise information
Deleting a certain exercise information from ExerHealth.
Format: delete t/exercise i/INDEX
Examples:
-
delete t/exercise i/2
3.6.2. Deleting exercise from scheduling regime
Deletes exercises from a certain scheduling regime.
Format: delete t/exercise n/REGIME_NAME [i/INDEX]…
Examples:
-
delete t/regime n/cardio i/2
Deletes the exercise indexed 2 in the cardio regime -
delete t/regime n/legs
Deletes the entire regime named legs
3.7. Clearing all entries : clear
Clears all entries from the exercise tracker.
Format: clear
3.8. Display statistics : stats
Display the statistics of exercises.
Format: stats t/CAT_NAME h/CHART_TYPE [s/START_DATE] [e/END_DATE]
Figure below shows an example of pie chart.

Due to space constraint, some labels may not appear. Labels can be seen when mouse cursor hovers over the pie chart. |
Example:
-
stats t/exercise h/piechart
-
stats t/calories h/linechart
-
stats t/exercise h/barchart s/20/09/2019 e/27/09/2019
3.9. Undo previous command: undo
Undo the previous successful command entered.
If there is no previous command, undo will do nothing. |
Format: undo
3.10. Redo undone command: redo
Redo the previous command that was undone by user.
If there is no command has been undone after the latest undoable command, redo command will do nothing. |
Format: redo
3.11. Scheduling exercises: schedule
3.11.1. Schedules a regime
Schedules an exercise regime for a certain date. If regime clashes with another scheduled regime, users will be prompted to resolve the conflict via a popup window. Refer to Section 3.12, “Resolving scheduling conflicts: resolve
” for details on resolving scheduling conflicts.
Format: schedule n/REGIME_NAME d/DATE
Example:
-
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.
3.11.2. Completes a schedule regime
Once a scheduled regime is completed, users can add that regime to the exercise tracker. The schedule is then deleted from the scheduling list.
Format: schedule i/INDEX_OF_REGIME_IN_SCHEDULE
Example:
-
schedule i/2
Completes all the exercises that are in the schedule at index 2
. All the exercises will be added to the exercise list and the schedule at index 2
is deleted.
3.12. Resolving scheduling conflicts: resolve
3.12.1. Taking one of the conflicting regimes completely
Takes the scheduled regime or the conflicting regime completely and discarding the other. Neither regimes will be completely deleted from the user’s collection.
Format: resolve n/SCHEDULED_OR_CONFLICTING
Example:
-
resolve n/scheduled
Takes the already scheduled regime and schedule it at conflicting date.
-
resolve n/conflicting
Takes the conflicting regime and schedule it at conflicting date.
3.12.2. Taking some exercises from some regime
Takes some exercises from the scheduled regime and some from the conflicting regime to make a brand new regime. The new regime that is a result of the combination will be added to the user’s collection and scheduled at the date of conflict. This new regime will also be added to the user’s collection of regimes
Format: resolve n/REGIME_NAME [i/INDEX_OF_EXERCISE_IN_SCHEDULED]… [r/INDEX_OF_EXERCISE_IN_CONFLICTING]…
Example:
-
resolve n/cardios i/1 i/2 i/3 r/4 r/2
Takes exercise 1, 2, 3 from scheduled regime and exercise 2, 4 from conflicting regime and adds them to a new regime called cardios
3.13. Suggesting ideas: suggest
3.13.1. Suggest basic exercises
Recommends exercises from ExerHealth’s inbuilt database for beginners.
Format: suggest s/basic
3.13.2. Suggest 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/01/11/2019 c/100 q/30 u/km m/Leg r/8
add t/exercise n/Bench Press d/01/11/2019 c/100 q/30 u/counts 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".
3.14. Custom properties
3.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 to 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/a f/Rating p/Number
Creates a Rating
property for each exercise.
Information for this property can be updated for each exercise by using a/NUMBER
in the relevant command where NUMBER
refers to
a number.
-
custom s/b f/rEmaRk p/Text
Creates a Remark
property for each exercise.
Information for this property can be updated for each exercise by using b/TEXT
in the relevant command where
TEXT
refers to a text sentence.
-
custom s/ed f/End Date p/Date
Creates a End Date
property for each exercise.
Information for this property can be updated for each exercise by using ed/DATE
in the relevant command where
DATE
refers to a date.
Using Rating
as an example, you can now perform the following actions after adding it:
-
add t/exercise n/Run d/01/10/2019 a/5
Adds an exercise with the name Run
, date 01/10/2019
and rating 5
into the app.
-
edit t/exercise i/4 a/3
Edits the rating of the 4th exercise in the list to 3
.
3.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
Removes the custom property Rating
from all of the exercises and from ExerHealth.
-
custom rm/Rating i/1
Removes the custom property Rating
from the 1st exercise in the list.
3.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.
Format: viewcustom
Example:
-
viewcustom
Opens up a window containing information of all existing custom properties.
3.15. Exiting the program : exit
Exits the program.
Format: exit
3.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.
3.18. Remind to do exercises [coming in v2.0]
Reminds you to do exercises.
3.19. Autocomplete of commands [coming in v2.0]
Autocompletes the commands while typing.
3.20. Importing data [coming in v2.0]
Imports data to update inbuilt database of exercises.
3.21. Encrypting data files [coming in v2.0]
{explain how the user can enable/disable data encryption}
4. 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.
5. Command Summary
-
Add exercises :
add t/exercise n/EXERCISE_NAME d/DATE c/CALORIES q/QUANTITY u/UNITS [m/MUSCLE]…
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]… ` 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/19/09/2019
-
Resolve(Take one regime) :
resolve n/REGIME_TO_TAKE
e.g.resolve n/cardio
-
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/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