By: AY1920S2-CS2103T-W13-1 Since: Feb 2020

1. Introduction

This user guide provides in-depth documentation on the EYLAH desktop application. It comprises of 7 main portions, the introduction, getting started, features, FAQ, command summary, glossary and appendix.

Hello there! Welcome to EYLAH’s User Guide.

Are you someone who lives in Temasek Hall in the National University of Singapore (NUS) and has supper frequently with your hall mates? Do experience splitting headaches when splitting large bills amongst a large group of friends? Have you ever wished for a quick and easy way to manage your calorie intake? Or wished for a Command Line Interface (CLI) application that can solve the above mentioned issues?

If you answered "YES!" to any of the above questions, Ease Your Life At Halls (EYLAH) is a revolutionary new super-application that developed just for you that will make your lives at halls much easier!

EYLAH is an Expense Splitter and Diet Tracker rolled into one, for Temasek Hall residents who prefer to use a desktop app to solve issues. More importantly, EYLAH is optimized for residents who prefer to work with a Command Line Interface (CLI).

EYLAH can solve your problems in halls by tracking your diet after those unhealthy suppers and splitting the cost after each outing or late-night party session with a few keystrokes of your keyboard. Interested? Jump to Section 2, “Getting Started” to get started. Let’s go!

Hope you have a pleasant experience using EYLAH!

Ui
Figure 1. Launch screen of EYLAH

1.1. Purpose

  • This documentation serves as an introduction to the features and proper usage of EYLAH, and is made to aid you in using the application to improve your lives in Temasek Hall.

1.2. Tips on reading the User Guide

We encourage you to read EYLAH’s User Guide from top to bottom.

While reading the User Guide you may encounter some symbols. These symbols are used to highlight crucial information or tips and in this portion we will be explaining the symbols and what they stand for.

These symbols include:

This block of text with a blue exclamation mark indicates additional notes and information that you should consider to prevent unexpected behaviour you are using EYLAH.

This block of text with a yellow light bulb indicates additional tips that will help you when using EYLAH.

This block of text with a warning sign indicates warnings, information you should take extreme note of.

Enter - This symbol indicates the enter button on the keyboard.

markup - A grey highlight (known as a mark-up) indicates a command that can be inputted into EYLAH.

[-c Calories] - For some commands there are optional fields. Keywords placed in square brackets are optional fields.
(e.g: edit INDEX [-n NAME] [-c CALORIES] )

Lastly, blue underline words like this will lead you to other portions of the User Guide or to an external website.

2. Getting Started

Need help setting up EYLAH? Simply follow the steps below to get started in no time!

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

  2. Download the latest EYLAH.jar here.

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

  4. Navigate to the folder in terminal and to run the jar file type java -jar EYLAH.jar.

  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will show you the commands you can type.

  6. Some example commands you can try:

    • 1 or diet : enters the Diet Tracker component of EYLAH.

    • 2 or split : enters the Expense Splitter component of EYLAH.

    • help : shows the list of commands you can execute at each page.

    • exit : exits the app

  7. Refer to Section 3, “Features” for details of each command.

3. Features

In this section, you can find all the commands of EYLAH and some tips and trick you can use to improve your user experience while using EYLAH.

Diet Tracker

Expense Splitter

mode

additem

height

deleteitem

weight

listreceipt

metrics

listamount

bmi

donereceipt

add

paid

list

clearreceipt

delete

help

edit

back

help

back

Command Format

  • Words in UPPER_CASE are the parameters supplied by the user, e.g: in additem -i ITEMNAME -p ITEMPRICE -n NAME, ITEMNAME, ITEMPRICE and NAME are parameters which can decided by the user, e.g: additem -i pizza -p 19.90 -n charlotte.

  • Items in square brackets are optional, e.g: paid INDEX [AMOUNT] can be used as paid 1 or as paid 1 3.90.

  • Parameters with ​ after them can be used multiple times including zero times, e.g: [-n NAME]…​ can be used as   (i.e. 0 times), -n Charlotte, -n Alice -n Bob etc.

3.1. Display the available commands : help

In this section, you will learn more about help command, how to use it and the expected outcome after using the help command.

Summary of Help Command:
help You can use the help command, if you are uncertain, to see the list of available commands. This command can be used everywhere in the application.

How to use the Help Command:

Format:
help

Valid Example:
help

Expected outcome:

Main Menu:

main help
Figure 2. Main Menu Help

Diet Tracker Mode:

diethelp
Figure 3. Diet Tracker Help

Expense Splitter Mode:

splithelp
Figure 4. Expense Splitter Help

Additional notes and tips

Help in main menu and different mode will give different help information.


3.2. Diet Tracker : diet

Using a Dieting App has never been easier! You can easily achieve the functionalities of a standard Dieting App with Diet Tracker.

Diet Tracker will help you achieve your ideal weight and body mass!

You can store all your food intake everyday and calculate useful information.


3.2.1. Dieting Mode mode

In this section, you will learn more about the mode command, how to use it and the expected outcome after using the mode command.

Summary of Mode Command:
mode You can set your desired dieting goal with the different modes that set a limit on your daily calorie intake. The calorie limits are calculated based on that of an average human. Your daily calories intake status can be monitored with the list command.

Switch the dieting mode, based on the following modes:

  • Lose Weight (-l) (2000 calorie limit)

  • Gain Weight (-g) (3000 calorie limit)

  • Maintain (-m) (2500 calorie limit)

How to use the Mode Command:

Format:
mode [-l] [-g] [-m]

Valid Example:
mode -l

You must only input EXACTLY ONE mode per mode command.

Expected outcome:

dietTrackerModeCommandSuccessPhoto
Figure 5. Diet Tracker Mode Command

Additional notes and tips

The default mode is MAINTAIN if you have not set your mode.

  • Switch your Dieting Mode to help yourself reach your diet targets better!

  • Check your currently chosen Dieting Mode with metrics.


3.2.2. Storing Height height

In this section, you will learn more about the height command, how to use it and the expected outcome after using the height command.

Summary of Height Command:
height You can use this command to save your Height to the Diet Tracker.

How to use the Height Command:

Format:
height HEIGHT

Valid Example:
height 170.2

Expected outcome:

dietTrackerHeightCommandSuccessPhoto
Figure 6. Diet Tracker Height Command

Additional notes and tips

Height in centimetres (cm). Decimal places are accepted. I.e. height 172.305 is accepted.

Check your stored height with metrics.


3.2.3. Storing Weight weight

In this section, you will learn more about the weight command, how to use it and the expected outcome after using the weight command.

Summary of Weight Command:
weight You can use this command to save your Weight to the Diet Tracker.

How to use the Weight Command:

Format:
weight WEIGHT

Valid Example:
weight 65.7

Expected outcome:

dietTrackerWeightCommandSuccessPhoto
Figure 7. Diet Tracker Weight Command

Additional notes and tips

Weight in kilograms (kg). Decimal places are accepted. I.e. weight 65.77 is accepted.

Check your stored weight with metrics.


3.2.4. Showing your Metrics metrics

In this section, you will learn more about the metrics command, how to use it and the expected outcome after using the metrics command.

Summary of Metrics Command:
metrics You can print out your individual metrics (Height, Weight and Mode) to check them.

It will display the following data:

  • Your height

  • Your weight

  • Your chosen Dieting Mode

How to use the Metrics Command:

Format:
metrics

Valid Example:
metrics

Expected outcome:

dietTrackerMetricsCommandSuccessPhoto
Figure 8. Diet Tracker Metrics Command

Additional notes and tips

Diet Tracker will prompt you if you did not have any previously stored Height, Weight.

Use this to check whether you have previously stored a Height, a Weight, or have chosen your Dieting Mode already.


3.2.5. Calculating Body Mass Index (BMI) bmi

In this section, you will learn more about the bmi command, how to use it and the expected outcome after using the bmi command.

Summary of Bmi Command:
bmi You can calculate your BMI either through an input height and weight or your previously stored Height and Weight.

It will display the following data:

  • BMI value

How to use the Bmi Command:

  • There are 3 ways to use bmi.

  • The first is if there is no input height and weight. This will use the height and weight that is stored in the Self object.

  • The second is if there is either no input height or input weight. This will use the stored Height (in the case of missing input height) or stored Weight (in the case of missing input weight) to do the calculation instead.

  • The third is to calculate bmi with an input height and weight.

Format:
bmi [-h HEIGHT] [-w WEIGHT]

Valid Examples:

  • height 172
    weight 65
    bmi
    Change your height and your weight to your current measurements before calculating your BMI. BMI is calculated based off the stored height and weight in this instance.

  • height 173.5
    bmi -w 59.9
    Change your height to your current measurements before calculating you BMI. BMI is calculated based off the stored height and input weight in this instance.

  • bmi -h 172 -w 65.5
    Calculate BMI based on the input height and weight values.

Expected outcome:

dietTrackerBmiCommandSuccessPhoto
Figure 9. Diet Tracker Bmi Command

Additional tips

If you are unsure whether you have already input your height and weight, you may metrics to check.


3.2.6. Adding food add

In this section, you will learn more about the add command, how to use it and the expected outcome after using the add command.

Summary of Add Command:
add You can use this command to add a food to the list.

How to use the Add Command:

Format:
add -n NAME -c CALORIES [-t TAG]…​

Valid Example:
add -n Fishball Noodles -c 383 -t favourite -t noodles

Expected outcome:

dietTrackerAddCommandSuccessPhoto
Figure 10. Diet Tracker Add Command

Additional notes

  • Name and Calories are compulsory.

  • Tags are optional.

  • Any food that you add will be added based on the time that you keyed in the food data. As of Diet Tracker’s current functionalities, you cannot add in foods that you have consumed the day before while also setting that food to appear for the previous day’s data.


3.2.7. Listing items list

In this section, you will learn more about the list command, how to use it and the expected outcome after using the list command.

Summary of List Command:
list You can use this function to list out the different foods that you have consumed and their total calories. Different listing modes allow you to watch your overall diet during the period, or how much you can/should eat based on your daily intake.

Displays different data based on the below flags:

  • Food consumed for the day (NO FLAG)

  • All food ever consumed (-a)

  • Food consumed for the past number of days (-d)

  • All food with the given tag (-t)

How to use the List Command:

Format:
list [-a] [-d NUMDAYS] [-t TAGNAME]

Valid Examples:
list
list -a
list -d 3
list -t healthy

Expected outcome:

dietTrackerListCommandSuccessPhoto
Figure 11. Diet Tracker List Command

Additional notes

  • Default value of list is food consumed for the day.

  • For the -d tag, the amount of days specified must be a positive Integer value.

  • Calorie intake based on mode is only shown when listing food for the day.


3.2.8. Deleting a Food Item delete

In this section, you will learn more about the delete command, how to use it and the expected outcome after using the delete command.

Summary of Delete Command:
delete You can delete a food item based on the previous list of Foods that you have listed.

How to use the Delete Command:

Format:
delete INDEX

  • Deletes the food item at the specified INDEX of the list.

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

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

Valid Example:
list
delete 2
Deletes the 2nd row of food data from today’s list of food.

You MUST use list to check the list of items to identify a target to edit. This would ensure that you get the correct index of the item.

Expected outcome:

dietTrackerDeleteCommandSuccessPhoto
Figure 12. Diet Tracker Delete Command

Additional notes and tips

You can list based on time period or tags to find the item that you want to delete.


3.2.9. Editing a Food Item edit

In this section, you will learn more about the edit command, how to use it and the expected outcome after using the edit command.

Summary of Edit Command:
edit You can edit either the Food name, or the calories of the food at the specified index.

How to use the Edit Command:

Format:
edit -i INDEX [-n NAME] [-c CALORIES]

  • Edits the Food Item at the specified INDEX. The index refers to the index number shown in the displayed Food 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.

Valid Example:
edit -i 2 -n Chicken Rice -c 585
Edits the name of the food item at index 2 to be 'Chicken Rice' and the calories to be '585'.

You MUST use list to check the list of items to identify a target to edit. This would ensure that you get the correct index of the item.

Expected outcome:

dietTrackerEditCommandSuccessPhoto
Figure 13. Diet Tracker Edit Command

Additional notes and tips

You can list based on time period or tags to find the item that you want to edit.


3.2.10. Exiting Diet Tracker to go back to main menu back

In this section, you will learn more about the back command, how to use it and the expected outcome after using the back command.

Summary of Back Command:
back allows you to exits Diet Tracker mode to go back to main menu of the application.

How to use the Back Command:

Format:
back

Valid Example:
back

Expected outcome:

dietTrackerBackCommandSuccessPhoto
Figure 14. Diet Tracker Back Command

3.3. Expense Splitter : split

Getting a headache from splitting that ever-so-complicated bill?

With EYLAH, splitting a large receipt with friends has never been easier! All you have to do is add the item, it’s price and the names involved in splitting that item and EYLAH will calculate the rest for you!

We have drawn some diagrams to help you visualize how Expense Splitter works, click here to find out more!

Here are some of the prefixes used:

Prefix

Representation

-i

Item Name

-p

Item Price

-n

Name of Person


3.3.1. Adding an item: additem

In this section, you will learn more about the additem command, how to use it and the expected outcome after using the additem command.

Summary of Add Item Command:
additem allows you to add an item, it’s price and the persons involved in sharing the cost of that item.

How to use the Add Item Command:

Format:
additem -i ITEMNAME -p PRICE -n NAME
additem -i ITEMNAME -p PRICE -n NAME [-n NAME]…​

Valid Example:
additem -i pizza -p 30 -n bob
additem -i pasta -p 19.90 -n alice -n bob -n charlie

Expected outcome:

expensesplitteradditemexpectedoutcome
Figure 15. Expense Splitter Add Item Command
  • Price can be up to 2 decimal places, i.e. 7.99. There is no need to add the dollar sign ($).

  • The maximum price of an item is 10,000.

  • All names inputted will automatically be converted to lowercase. (e.g: Bob → bob)


3.3.2. Deleting an item: deleteitem

In this section, you will learn more about the deleteitem command, how to use it and the expected outcome after using the deleteitem command.

Summary of Delete Item Command:
deleteitem allows you to delete an item from the receipt.

How to use the Delete Item Command:

Format:
deleteitem INDEX

Valid Example:
deleteitem 3

Expected outcome:

expensesplitterdeleteitemexpectedoutcome
Figure 16. Expense Splitter Delete Item Command
Use listreceipt to view your item indices before deletion. '''

3.3.3. Listing the current receipt: listreceipt

In this section, you will learn more about the listreceipt command, how to use it and the expected outcome after using the listreceipt command.

Summary of List Receipt Command:
listreceipt shows you all the entries in your current receipt.

How to use the List Receipt Command:

Format:
listreceipt

Valid Example:
listreceipt

Expected outcome:

listreceipt
Figure 17. Expense Splitter List Receipt Command

Additional notes and tips

Each entry in the receipt has the item’s name, price and person(s) who is splitting that item with you thus you do not have to remember who you split this item with!
Use listreceipt command to find the index of the item in the receipt. The index is useful for commands such as deleteitem where you have to pass in the index of item to be deleted.

3.3.4. Listing amounts owed by each person: listamount

In this section, you will learn more about the listamount command, how to use it and the expected outcome after using the listamount command.

Summary of List Amount Command: listamount shows you how much each Person owes you.

How to use the List Amount Command:

Format:
listamount

Valid example:
listamount

Expected outcome:

listamount
Figure 18. Expense Splitter List Amount Command

Additional notes and tips

  • The Person and amount owed will be automatically saved after each command.

  • A person is deleted after they have completely paid the amount they owe you.

Use listamount command to find the index of the person who paid you. The index is useful for commands such as paid.

3.3.5. Mark receipt as done donereceipt

In this section, you will learn more about the donereceipt command, how to use it and the expected outcome after using the donereceipt command.

Summary of Done Receipt Command: donereceipt *marks the receipt as done when you have completed entering all the items.

How to use the Done Receipt Command:

Format:
donereceipt

Example:
donereceipt

Expected outcome:

donereceipt
Figure 19. Expense Splitter Done Receipt Command
  • Use this command only after all Items have been correctly added to the Receipt.

  • After you use this command, you will be unable to add any new items using the additem command or delete any items using the deleteitem command.

  • However, you are now able to use the paid command.


In this section, you will learn more about the paid command, how to use it and the expected outcome after using the paid command.

Summary of Paid Command: paid subtracts the amount of money a Person owes you.

How to use the Paid Command:

Format:

paid INDEX [AMOUNT]

  • INDEX is a compulsory field that must be stated by you. Instead of typing a Person’s name, you can type his/her index thus saving you time and effort. To find out his/her index, use the command listamount.

  • AMOUNT is an optional field. It refers to the amount paid by that Person. Leaving this field empty is equivalent to the Person paying you the full amount he/she owes you.

  • AMOUNT can be up to 2 decimal places, i.e. 7.99. There is no need to add the dollar sign ($).

Valid examples:

paid 2 - This commmand means that the Person at index 2 has paid you the full amount they owe you.

paid 3 3.90 - This command means that the Perosn at index 3 has paid you $3.90.

Expected outcome:

paid
Figure 20. Expense Splitter Paid Command

Additional notes and tips

  • You will only be able to use this command after you have marked the receipt as done using the donereceipt command.

  • The person will automatically be removed from the list if the amount he owes you drops to $0.

Use listamount command to find the index of the person who paid you.

3.3.7. Clears the receipt clearreceipt

In this section, you will learn more about the clearreceipt command, how to use it and the expected outcome after using the clearreceipt command.

Summary of Clear Receipt Command:
clearreceipt allows you to remove all items from the receipt and start with a clean receipt.

How to use the Clear Receipt Command:

Format:
clearreceipt

Valid Example:
clearreceipt

Expected outcome:

expensesplitterclearreceiptexpectedoutcome
Figure 21. Expense Splitter Clear Receipt Command
  • If you use this command before marking the receipt as done via the donereceipt command, you will be removing all the previously inputting items, as well as the amount owed by each person.

  • However, if you use this command after marking the receipt as done via the donereceipt command, the amount owed by each person will still be present and will be accessible via the listamount command.

  • After you use this command, you will be able to add new items using the additem command and delete items using the deleteitem command.

  • However, you will be unable to use the paid command.


3.3.8. Exiting Expense Splitter to go back to main menu back

In this section, you will learn more about the back command, how to use it and the expected outcome after using the back command.

Summary of Back Command:
back allows you to exits Expense Splitter mode to go back to main menu of the application.

How to use the Back Command:

Format:
back

Valid Example:
back

Expected outcome:

expenseback
Figure 22. Expense Splitter Back Command

3.4. Exiting the Application : exit

In this section, you will learn more about exit command, how to use it and the expected outcome after using the exit command.

Summary of Exit Command:
exit You can use this command everywhere in the application to exit.

How to use the Exit Command:

Format:
exit

Valid Example:
exit

Expected outcome:

exit
Figure 23. Exit Command

3.5. Saving the data

In this section, you will learn more about the saving mechanism of EYLAH.

EYLAH will automatically help you store any information that you have inputted into the hard disk.
You do not need to save manually.

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

5. Command Summary

In this section, you can find out more about the commands supported by EYLAH, as well as their respective format and example.

If you would like to know more about a specific command, simply click on the provided links in the table below and you will be brought to the respective command.

5.1. For Diet Tracker

Table 1. Summary of Command for Diet Tracker
Command Format Example

Adding Food

add -n NAME -c CALORIES [-t TAGS]

add -n salad -c 235
add -n fries -c 195 -t fastfood

Deleting Food

delete INDEX

delete 1
delete 2

Editing Food

edit -i INDEX [-n NAME] [-c CALORIES]

edit -i 1 -n carbonara -c 543
edit -i 2 -n chips

Listing Food

list [-a] [-d NUMDAYS] [-t TAG]

list
or
list -a
or
list -d 6
or
list -t healthy

Setting Mode

mode MODE

mode -l
or
mode -g
or
mode -h

Storing Height

height HEIGHT

height 165
height 172.5

Storing Weight

weight WEIGHT

weight 69
weight 67.3

Showing Metrics

metrics

metrics

Calculating BMI

bmi [-h HEIGHT] [-w WEIGHT]

bmi
or
bmi -h 172 -w 65.5
or
bmi -h 172
or + bmi -w 65.7

Getting Help

help

help

Going Back

back

back

Exiting the Application

exit

exit

5.2. For Expense Splitter

Table 2. Summary of Command for Expense Splitter
Command Format Example

Adding Item

additem -i ITEMNAME -p ITEMPRICE -n NAME [-n NAME]…​

additem -i pasta -p 5 -n John
or
additem -i pasta -p 32 -n John -n Carl -n Jasmine

Deleting Item

deleteitem INDEX

deleteitem 1
or
deleteitem 2

Listing Receipt

listreceipt

listreceipt

Listing Amount

listamount

listamount

Marking Receipt as Done

donereceipt

donereceipt

Getting Paid by Someone

paid INDEX [AMOUNT]

paid 3
or
paid 3 10.00
or
paid 2 10.0

Clearing Receipt

clearreceipt

clearreceipt

Getting Help

help

help

Going Back

back

back

Exiting the Application

exit

exit

6. Glossary

Table 3. Glossary
Term Explanation Examples

Temasek Hall

This refers the one of the Halls of Residences in the National University of Singapore

Halls of Residences

This refers to student accommodation on campus

NUS

This is the short form of National University of Singapore.

SOC or SoC

This is the short form for School of Computing.

CLI

This is the short form for Command Line Interface. It processes commands to TA-Tracker in the form of lines of text

Index

This refers to the position of an item on a list.

Index of 1 refers to the first item in a list.

Activity Diagram

This refers to the workflow of a software.

Appendix

7. Appendix: Simple activity diagram to aid you with using Expense Splitter

This diagram will help you understand the flow of Expense Splitter thus improving your user experience.

The fully blackened circle at the top represents the start point while the circle at the bottom represents the end point.

ExpenseSplitterActivityDiagramV2
Figure 24. Expense Splitter Activity Diagram

Simplified Add Item Activity Diagram

This diagram below is used in conjunction with the diagram directly above this.

ExpenseSplitterActivityDiagram
Figure 25. Simplified Add Item Activity Diagram