By: Team ExerHealth Since: Sep 2019 Licence: MIT

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

  1. Ensure you have Java 11 or above installed in your Computer.

  2. Download the latest exerhealth.jar here.

  3. Copy the file to the folder you want to use as the home folder for ExerHealth.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
    Figure 1. The UI of ExerHealth
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. 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 named Push ups to ExerHealth.

    • exit : exits the app

  7. 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.

  1. Prefix: The term that comes before each parameter. E.g.: the prefix in t/exercise is t/.

  2. Prefix name: The word in a Prefix. E.g.: the prefix name of t/ is t and the prefix name of ed/ is ed.

  3. 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. in stats t/CAT_NAME, CAT_NAME is a parameter which can be used as stats 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 as d/1/10/2019 m/Legs or as d/1/10/2019.

  • Items with ​ after them can be used multiple times including zero times e.g. [m/MUSCLE]…​ can be used as   (i.e. 0 times), m/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

HelpWindow
Figure 2. Here’s how the help dialog box look like

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]…​

  • Calories entered have to be less than or equal to 50000.

  • Dates that are entered have to be of the form dd/MM/yyyy.

  • The day of each date must be between 01 and 31 inclusive.

  • The month of each date must be between 01 and 12 inclusive.

  • If the day of the month entered is within the above range but exceeds the number of days present in that particular month, the date will be treated as the last day of that particular month e.g. if 31/02/2019 is entered, it will be treated as 28/02/2019.

Examples:

  • add t/exercise n/Run d/19/09/2019 c/500 q/2.4 u/km

Expected result:

AddRunResult
Figure 3. The exercise Run is added
  • add t/exercise n/Sprinting d/11/11/2019 c/500 q/400 u/metres m/Thighs

AddExerciseWithMuscle
Figure 4. The exercise Sprinting is added

4.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:

AddNewRegime
Figure 5. The 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:

RegimeCardioBefore
Figure 6. Before adding the 4th exercise into cardio

Expected result after add t/regime n/cardio i/4 command executed:

RegimeCardioAfter
Figure 7. After adding the 4th exercise into cardio

4.3. Listing information : list

Retrieves a list of information - Exercise, Regime, Scheduled Regime or Suggestion - from ExerHealth.

Format: list t/LIST_TYPE

  • The suggestion list will only be displayed if you have used the suggestion feature before.

Example:

  • list t/exercise

Expected result:

ListExerciseResult
Figure 8. The exercise list is displayed
  • list t/regime

Expected result:

ListRegimeResult
Figure 9. The regime list is displayed
  • list t/schedule

Expected result:

ListScheduleResult
Figure 10. The schedule list is displayed

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

SelectResult
Figure 11. Exercise number 3 is selected

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.

  • The date entered for this command must follow the same requirements as that of add command.

  • Edits the exercise at the specified INDEX. The index refers to the index number shown in the displayed exercise list. The index must be a positive integer: 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

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

EditExerciseBefore
Figure 12. Before editing the 2nd exercise

After
Exercise now appears at the bottom as the list is sorted by date.

EditExerciseAfter
Figure 13. After editing the 2nd exercise
  • 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

EditExerciseBefore2
Figure 14. Before editing the 3rd exercise

After

EditExerciseAfter2
Figure 15. After editing the 3rd exercise

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

  • Deletes the exercise at the specified INDEX.

  • The index refers to the index number shown in the displayed exercise list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • delete t/exercise i/2

deleteExerciseBefore
Figure 16. Before deleting the 2nd exercise

Expected result:

deleteExerciseAfter
Figure 17. After deleting the 2nd exercise

4.6.2. Deleting exercise from scheduling regime

Deletes exercises from a certain scheduling regime.

Format: delete t/regime n/REGIME_NAME [i/INDEX]…​

  • Deletes the exercise at the specified INDEX.

  • If index is not provided, the command deletes the entire scheduling regime

  • The index refers to the index number shown in the displayed regime list.

  • The index, if provided, must be a positive integer 1, 2, 3, …​

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:

RegimeCardioAfter
Figure 18. The cardio regime with 4 exercises

Expected result after delete t/regime n/cardio i/2 command executed:

DeleteExerciseFromRegime
Figure 19. The 2nd exercise in cardio regime is removed
  • delete t/regime n/legs
    Deletes the entire regime named legs

Figure below shows regime list with regime named legs:

DeleteEntireRegimeBefore
Figure 20. The legs regime before it is deleted

Expected result after delete t/regime n/legs command executed:

DeleteEntireRegimeAfter
Figure 21. The legs regime is completely removed

4.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.

ClearBefore
Figure 22. The populated exercise tracker

After calling the clear command, all exercises are removed from the exercise tracker list.

ClearAfter
Figure 23. Poof! All of the exercises are removed

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]

  • Supported chart types: Pie Chart, Line Chart, Bar Chart

  • Supported category: exercise, calories

  • If no START_DATE and END_DATE are provided, the recent 7 days of history will be used.

  • If any date is provided, both START_DATE and END_DATE dates must be there.

  • The maximum range between START_DATE and END_DATE is 31 days.

  • Only exercise with same name and unit will be counted as same exercise.

  • Exercise will appear as NAME (UNIT) in the charts. E.g Running (km). If it is too long (more than 18 characters), it will be formatted to first 10 characters plus last 8 characters.

    • For example, exercise Strength Training (counts) is more than 18 characters, it will be formatted to Strength T…​(counts).

  • Total and average CATEGORY per day of exercises in the date range is shown below the chart.

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

PieChart
Figure 24. Image of the pie chart generated
  • stats t/calories h/linechart

LineChart
Figure 25. Image of the line chart generated
  • stats t/calories h/barchart s/31/10/2019 e/06/11/2019

BarChart
Figure 26. Image of the bar chart generated

4.9. Undo previous command: undo

Undo the previous successful command entered.

Supported Undoable Commands: add, delete, edit, clear, schedule, resolve

  • add t/exercise n/Push ups d/1/10/2019 c/123 q/100 u/reps

  • add t/regime n/Cardio i/1 i/3 i/5

  • delete t/exercise i/7

  • edit t/exercise i/3 n/Push Ups c/140 m/Chest

  • clear

  • schedule n/Regime Five d/20/11/2019

  • schedule i/1

  • resolve n/New Regime i/1 r/2

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:

DeleteExerciseFromRegimeBeforeUndo
Figure 27. Selecting the 3rd regime

Step 1: delete t/regime n/Level 3 i/5
Deletes the fifth exercise Hiking from the regime Level 3

DeleteExerciseFromRegimeUndo
Figure 28. Deleting Hiking from our selected regime

Step 2: undo
Adds the exercise Hiking back to the regime Level 3

DeleteExerciseFromRegimeUndoOutcome
Figure 29. undo reverses the deletion!

Initial: Schedule list only contains two scheduled regimes

ScheduleRegimeBefore
Figure 30. The initial appearance of the schedule list

Step 1: schedule n/Level 3 d/10/11/2019
Schedules the regime Level 3 on 10/11/2019

ScheduleRegimeAfter
Figure 31. Level 3 scheduled on 10/11/2019

Step 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"
ScheduleCompleteAfterExerciseView
Figure 32. The exercises of the completed regime are added into the tracker.
Schedule list showing the updated schedule without regime "Level 3"
ScheduleCompleteAfterScheduleView
Figure 33. The completed regime is removed from the schedule list

Step 3: undo
Undoes the completion of regime. The regime Level 3 appears in the schedule list again.

ScheduleCompleteUndo
Figure 34. undo reverses the removal!

Step 4: undo
Undoes the scheduling of regime. The regime Level 3 is no longer visible in the schedule list.

ScheduleRegimeUndo
Figure 35. 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:

AddExerciseBeforeAdding
Figure 36. Initial appearance of the exercise list

Step 1: add t/exercise n/Squats d/08/11/2019 c/200 q/150 u/reps
Adds a new exercise called Squats.

AddExerciseBeforeUndo
Figure 37. Squats is added to the exercise list

Step 2: undo
Undoing the command removes the Squats exercise from the list.

AddExerciseBeforeRedo
Figure 38. undo removes the exercise Squats

Step 3: redo
Redoing the command returns the Squats exercise to the list again.

AddExerciseAfterRedo
Figure 39. 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.

ScheduleRegimeBeforeConflict
Figure 40. Initial appearance of the schedule list

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.

ScheduleRegimeBeforeResolve
Figure 41. The conflict window opens due to conflicting schedule

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.

ScheduleRegimeBeforeResolveUndo
Figure 42. The new regime is added to the schedule list

Step 3: undo
Undoing the command reverts the scheduled regime from Level 1 and 2 to the initial Level 1 regime.

ScheduleRegimeBeforeResolveRedo
Figure 43. undo reverses the conflict resolution

Step 4: redo
Redoing the command updates the scheduled regime from Level 1 to the resolved Level 1 and 2 regime.

ScheduleRegimeAfterResolveRedo
Figure 44. 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

  • To schedule a regime, REGIME_NAME must exist in your regime list. You can use list t/regime command to view the regimes that you currently have.

  • The format of DATE must be of the form dd/MM/YYYY. For example, 12/12/2019 or 01/01/2020. Even if the number has only one digit, please ensure you include a 0 at the front to ensure that it adheres to the format required.

  • You will not be allowed to schedule a regime on a date that falls before the date displayed on your system clock

  • You are allowed to schedule a regime of the same name on the same date. The resolve window will pop up for you as per normal.

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:

ScheduleRegimeCardio
Figure 45. The cardio regime is scheduled on 12/12/2019

Expected Result (if other schedule exist on 12/12/2019):

ScheduleRegimeCardioConflict
Figure 46. The result when a scheduling conflict is detected

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

ScheduleCompleteBefore
Figure 47. Before the execution of the command

In your exercise tracker

ScheduleCompleteExerciseTracker
Figure 48. Exercises from the schedule are added to your tracker

In your schedule tracker after completing execution of schedule i/2

ScheduleCompleteScheduleTracker
Figure 49. The completed regime is removed from your schedule

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.

  • Once the resolve window pops up, you are not allowed to interact with the main ExerHealth window anymore. You are required to resolve the scheduling conflict before continuing to use the application as normal.

  • Any valid commands that are not resolve will not get executed in the resolve window. Only the resolve command is allowed in the resolve window.

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.
ResolveScheduledOrConflicting
Figure 50. An example of the resolve conflict window

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

ResolveScheduled
Figure 51. Selecting all the exercises in the scheduled regime

Once resolve window closes, the scheduled regime should be taken and scheduled at the correct date.

ResolveScheduledResult
Figure 52. The scheduled regime should appear in your scheduling list

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]

  • Takes the exercise at the specified indexes of i/ and r/

  • NEW_REGIME_NAME must be a new name that does not exist in your collection of regimes

  • The index refers to the index number shown in the displayed resolve window

  • The index must be a positive integer 1, 2, 3, …​

  • i/ is for index of the scheduled regime

  • r/ is for index of the conflicting regime

  • At least one i/ or r/ must exist in your input for this command to succeed. Otherwise, ExerHealth will think you are trying to take one regime completely as stated in the previous section.

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

ResolveTakeOneOrOther
Figure 53. Selecting some exercises from each regime

The new cardio regime is now scheduled at the conflicting date with the new exercises that have been resolved.

ResolveTakeResolved
Figure 54. A newly created regime will appear in your scheduling list

The new cardio regime is now added to your collection of regimes

ResolveRegimeTracker
Figure 55. The newly created regime will also appear in your regime list!

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]…​

  • You must choose one of the following operation types: and / or i.e. commands such as suggest s/possible m/Chest m/Legs will fail whereas suggest s/possible o/or m/Chest m/Legs will succeed.

  • You have to enter at least one property (muscle/custom property) to search for suggestions i.e. commands such as suggest s/possible o/and and suggest s/possible o/or will both fail whereas suggest s/possible o/or m/Chest will succeed.

  • The operation type is optional if there is only one tag provided i.e. commands such as suggest s/possible o/and m/Chest, suggest s/possible o/or m/Chest and suggest s/possible m/Chest will all achieve the same outcome - display all the exercises tagged with Chest in the exercise tracker and ExerHealth’s database.

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:

  1. custom s/r f/Rating p/Number

  2. add t/exercise n/Run d/03/11/2019 c/200 q/10 u/km m/Legs r/8

  3. 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:

suggestPossibleAfter1
Figure 56. Exercises with a 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:

suggestPossibleAfter2
Figure 57. Exercises with a 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".

suggestPossibleBefore3
Figure 58. Before entering the new suggest command

Expected Result:

suggestPossibleAfter3
Figure 59. Only the latest Bench Press exercise is displayed

As 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.

  • The prefix name can only contain alphabets and should not contain spaces.

  • You must choose exactly one of the following as the parameter type for your custom property: Text, Number, Date.

  • Every word in the full name of each custom property will be changed to Start Case style, where the first letter of each word is capitalised with the other letters in lower case e.g. enD DaTe will be changed to End Date.

  • The date entered for custom properties with a DATE parameter must follow the same requirements as that of add command.

  • The text entered for custom properties with a TEXT parameter can contain only alphabets and spaces.

  • The number entered for custom properties with a NUMBER parameter must be a non-negative integer.

  • You need not include the custom properties when adding a new exercise to the app.

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:

CustomRating
Figure 60. Your rating property has been created

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:

AddCustomRating
Figure 61. A new exercise with the remark property is added

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.

  • FULL_NAME denotes the name of the previously defined custom property.

  • The index, if provided, must be a positive integer 1, 2, 3, …​

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.

AddCustomRating
Figure 62. A rating of 5 for exercise 6
EditAnotherCustomRating
Figure 63. A rating of 3 for exercise 7

After the execution, the Rating property will be removed from all of the exercises and the app as illustrated in the next few figures.

DancingRatingRemoved
Figure 64. Rating in exercise 6 is removed
RunningRatingRemoved
Figure 65. Rating in exercise 7 is also removed
  • custom rm/Rating i/6

Before the execution, both exercises 6 and 7 have a rating attached to them.

AddCustomRating
Figure 66. A rating of 5 for exercise 6
EditAnotherCustomRating
Figure 67. A rating of 3 for exercise 7

After the execution, only exercise 6 has its rating property removed.

RatingRemovedForSix
Figure 68. The rating for exercise 6 is removed
RatingRemainedForSeven
Figure 69. The rating for exercise 7 remains

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:

ViewCustom
Figure 70. A window showing the custom properties you have defined is opened

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?

NullMessage
Figure 71. A null message appeared

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!

LongNamesTooltip
Figure 72. The friendly tooltip displaying the name of an exercise

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