User Guide
FixMyAbs is a desktop app for logging your exercises, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Using FixMyAbs, you will be able to add your own custom exercises along with the calories burnt per rep. These exercises will be listed in the Exercise List. You will then be able to log your exercises, along with the number of reps you have done. FixMyAbs will automatically track the number of calories burnt, and provide you with a log of the exercises you have done. Tracking your progress has never been easier!
If you are unmotivated for a workout, FixMyAbs will be your partner in helping you to change your life. 😎
Quick start
-
Ensure you have Java
11or above installed in your Computer. -
Download the latest
fma.jar. -
Copy the file to the folder you want to use as the home folder for your FixMyAbs.
-
Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

-
Type the command in the command box and press Enter to execute it. e.g. typing
helpand pressing Enter will open the help window.
Some example commands you can try:-
list: List the exercises -
add e/Sit ups r/10 c/this is a comment: Adds a “Sit ups” exercise log of 10 reps, with a comment of “this is a comment”, to the FitMyAbs record. -
edit4 c/no abs were hurt: Edits the log at index 4, with a comment of “no abs were hurt”. -
delete 3: Deletes the 3rd workout. -
exit: Exits the app.
-
-
Refer to the Features below for details of each command.
Features
Notes about the command format:
-
Words in
<>are the parameters to be supplied by the user.
e.g. inadd e/<exercise name>,exerciseis a parameter which can be used asadd e/Sit ups. -
Items in square brackets are optional.
e.ge/<exercise name> c/[comment]can be used ase/Sit ups c/my abs hurtor ase/Sit ups c/. -
Parameters can be in any order.
e.g. if the command specifiese/<exercise name> r/<rep>,r/<rep> e/<exercise name>is also acceptable. -
Exercise names are case-insensitive and whitespace-insensitive.
e.g.Sit ups,SITUPS, andS i T u P sare all recognised as the same exercise. -
If there are multiple parameters for a single tag e.g.
c/sadandc/happyinadd e/Sit ups r/10 c/sad c/happy, the last one will take precedent, i.e.c/happy
Viewing help : help
Shows a message explaining how to access the help page.
Format: help

Adding a log: add
Adds a log.
- Exercise must already be present in the Exercise list. Exercise names are case-insensitive and whitespace-insensitive.
- The comment may be left blank. (
c/is compulsory)
Format: add e/<exercise name> r/<reps> c/[comment]
Constraints:
- reps must be within range 1-1000 inclusive
Examples:
-
add e/Sit ups r/1 c/Adds a log with an existing exerciseSit ups, 1 rep and no comment. -
add e/Sit ups r/1 c/my abs hurt :(Adds a log with an existing exerciseSit ups, 1 rep and a comment ofno abs were hurt. -
add e/sit ups r/20 c/my abs hurt :(Adds a log an existing exercisesit ups, 20 reps and a comment ofno abs were hurt.

Success:

Listing all logs : list
Shows a list of all logs logged by the user in the application.
Format: list
Example: list
Notes about long comments or exercise name:
- To view information of comments or exercise names that are too long such as
1. Sits up, push up ..., you can hover over theexercise nameoflogorexerciseto view more information. - The text of log / exercise will appear after 2 seconds.
Example:


Editing a log : edit
Edits an existing log in the application.
Format: edit <index> [r/reps] [c/comment]
Constraints:
-
reps must be within range 1-1000 inclusive
- Edits the existing log at the specified
<index>. The index refers to the index number shown in the displayed log 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.
Examples:
-
edit 1 r/20Edits the log at index 1, with 20 reps. -
edit 2 c/no abs were hurtEdits the log at index 2, with a comment ofno abs were hurt. -
edit 1 r/20 c/no abs were hurtEdits the log at index 1, with reps of20and a comment ofno abs were hurt.

Success:

Deleting a log : delete
Deletes the specified log.
Format: delete <index>
- Deletes the log at the specified
<index>. - The index refers to the index number shown in the current list of logs.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
delete 2Deletes the 2nd log.

Success:

Finding a log : find
Finds all logs that contain ALL keywords (case-insensitive) anywhere in the log.
Format: find <keywords in logs>
Examples:
-
find absFind log(s) which contain(s) the wordabs. -
find OctFind log(s) which contain(s) the wordOct.

Success:

Adding an exercise: addex
Adds an exercise.
Format: addex e/<exercise name> c/calories per rep
- The exercise must not already exist. Exercise names are case-insensitive and whitespace-insensitive.
- Calories per rep would be used to calculate the calories burnt for each log.
Constraints:
- calories must be within range 1-1000 inclusive
Examples:
-
addex e/Sit ups c/20Adds an exercise with nameSit upsand 20 calories per rep. -
addex e/Jumping jacks c/50Adds an exercise with nameJumping jacksand 50 calories per rep.

Success:

Editing an exercise: editex
Edits an existing exercise in the application, either with a new name, or new calories per rep.
Format: editex <index> [e/exercise] [c/calories per rep]
- Edits the existing 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.
- The new exercise must not already exist. Exercise names are case-insensitive and whitespace-insensitive.
- Existing values will be updated to the input values.
Constraints:
- Calories must be within range 1-1000 inclusive
Additional information
- Details of logs that use the edited exercise will be edited as well to match the new exercise
- This ensures that there is consistency within FixMyAbs
Examples:
-
editex 2 e/Sit upsEdits an exercise at index2with nameSit ups. -
editex 3 c/50Edits an exercise at index3with 50 calories per rep. -
editex 3 e/Sit ups c/50Edits an exercise at index3with nameSit upsand 50 calories per rep.

Success:

Deleting an exercise : deleteex
Deletes the specified exercise.
Format: deleteex <index>
- Deletes the log at the specified
<index>. - The index refers to the index number shown in the list of exercises.
- The index must be a positive integer 1, 2, 3, …
Additional information
- Logs that use the deleted exercise will be deleted as well
- This ensures that there is consistency within FixMyAbs
Examples:
-
deleteex 7deletes the 7th exercise in the exercise list.

Success:

Exiting the program : exit
Exits the program.
Format: exit

Clearing FixMyAbs : clear
Clears all the data including all logs and all exercises stored in FixMyAbs.
Format: clear

Success:

Saving the data
Exercise log data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
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 FixMyAbs home folder.
Command summary
| Action | Format | Examples |
|---|---|---|
| Add Log | add e/<exercise name> r/<reps> c/[comment] |
e.g. add e/Sit ups r/30 c/Send help, add e/Sit ups r/30 c/
|
| Delete Log | delete <index> |
e.g. delete 3
|
| Edit Log | edit <index> [r/reps] [c/comment] |
e.g.edit 1 r/20 c/no abs were hurt, edit 1 r/20, edit 1 c/no abs were hurt
|
| List Logs | list |
e.g. list
|
| Add exercise | addex e/<exercise name> c/<calories per rep> |
e.g. addex e/Lunges c/5
|
| Edit exercise | editex <index> [e/exercise name] [c/calories per rep] |
e.g. editex 1 e/One-legged Lunges c/6, editex 1 e/One-legged Lunges, editex 1 c/6
|
| Delete exercise | deleteex <index> |
e.g. deleteex 1
|
| Clear | clear |
e.g. clear
|
| Find | find <keywords in logs> |
e.g. find pushups
|
| Help | help |
e.g. help
|
| Exit | exit |
e.g. exit
|