By: Team AY1920S1-CS2103T-W11-3 Since: September 2019 Licence: MIT

1. Introduction

EatMe is a food diary app for people who love good food. It helps you manage places you have been to, keep track of your experience and expenditure, and even keep you up-to-date with the latest food trends and events!

EatMe comes with two different modes: Main and Todo modes. In the Main mode, you will be able to manipulate eateries that you have visited before. In the Todo mode, however, you will be able to manipulate eateries that you have yet to visit but are planning to visit in the future.

EatMe is optimized for those who like the speed of a Command Line Interface (CLI) while still maintaining the user-friendliness of a Graphical User Interface (GUI). Interested to keep track of your favorite food places with maximum efficiency? Try EatMe today! Jump to the Section 3, “Quick Start” to get started.

2. About

This user guide shows you how to use the features in EatMe. The commands that can be executed are explained in detail, and sample commands are provided for ease of understanding.

The following are some terms used in this document:

Command Line Interface (CLI)

A means of interacting with a computer program where the user issues commands to the program in the form of successive lines of text.

Graphical User Interface (GUI)

A means of interacting with a computer program through graphical icons and visual indicators.

add

Text in this font (called monospaced font) indicates that this is a command that can be typed into the command line and executed by the application.

3. Quick Start

  1. Ensure you have Java 11 or above installed on your computer. If not, you can download it here.

  2. Download the latest release of EatMe here.

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

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

Ui
  1. Type a command in the command box and press Enter to execute it. e.g. typing help and pressing Enter will open the help window.

  2. Some example commands you can try:

    • add \n Two Chefs Eating Place \a 116 Commonwealth Cres, #01-129 \c Chinese : Adds an eatery named Two Chefs Eating Place with the specified address and category.

    • review 1 \d Nice Condensed Milk Pork Ribs \p 15 \r 4 \w 23/10/2019 : Adds a review to the first eatery in the eatery list with the specified description, price, rating and date.

    • exit : Exits the app.

These are just a few of the commands you can execute on EatMe. Refer to Section 4, “Features” for the full list of available commands and their details.

4. Features

Command Format

  • Items in square brackets are the parameters to be supplied by the user. For example, in add \n [name of eatery], [name of eatery] is a parameter which can be used as add \n Two Chefs Eating Place.

  • Items in curly brackets are optional parameters. For example, in add \n [name of eatery] \a [address] \c [category] {\t [tags]…​}, {\t [tags] …​} is an optional parameter that the user can choose to supply if he/she wishes to add certain tags to the eatery.

  • Items with …​ after them can be used multiple times including zero times e.g.   (i.e. 0 times), \t non-aircon, \t good-for-groups \t non-aircon, etc.

  • Parameters can be in any order. For example, if the command specifies \n [name of eatery] \a [address] \c [category], \a [address] \n [name of eatery] \c [category] is also acceptable.

  • For parameters requiring index, index refers to the index number shown in the displayed eatery list or review list. The index must be a positive integer (e.g. 1, 2, 3, …​) .

4.1. General

4.1.2. Listing all eateries: list

Shows a list of all eateries in the app.

Format: list

4.1.3. Clearing all entries: clear

Clears all eateries in the app.

Format: clear

4.1.4. Load eateries from another user profile: load

Loads eateries from another user profile.

EatMe allows you to share eatery data with your friends by simply transferring your user profile. Your user profile is a file that ends with .json and can be found in the same place where you saved the EatMe app.

Did a friend pass you their user profile? Simply place their file where you saved the EatMe app, and execute this command with their username to view their data.

Format: load \u [username]

  • Loads eatery data from the specified user profile.

  • The user can supply the user profile with or without ".json" extension, however, the file must still be a valid user profile generated by the EatMe app.

Examples:

  • load \u john

  • load \u john.json

4.1.5. Toggling between main and todo modes: mode

Toggles between main and todo modes.

Format: mode

4.2. Main Mode

In Main mode, users will be able to view and manipulate the eateries that they have already visited. Specifically, users will be able to add, edit, and delete eateries. Furthermore, users will also be able to add, edit, and delete reviews from eateries. Users can also generate statistics from the eateries and reviews they have added into the app.

4.2.1. Working with Eateries

Adding an eatery: add

Adds an eatery to the app.

Format: add \n [name of eatery] \a [address] \c [category] {\t [tags]…​}

  • The name, address, and category fields are compulsory and must be provided.

  • The tag field is optional, and you can specify 0 to as many tags as you want.

Examples:

  • add \n Two Chefs Eating Place \a 116 Commonwealth Cres, #01-129 \c Chinese

  • add \n Two Chefs Eating Place \a 116 Commonwealth Cres, #01-129 \c Chinese \t good-for-groups \t non-aircon

Editing an eatery: edit

Edits an existing eatery in the application.

Format: edit [index] {\n [name of eatery]} {\a [address]} {\c [category]} {\t [tags]…​}

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

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the eatery will be removed i.e adding of tags is not cumulative. To have a cumulative effect, use addtag and removetag.

  • You can remove all the eatery’s tags by typing \t without specifying any tags after it.

Examples:

  • edit 1 \t good-for-groups

  • edit 1 \a NUS Biz School

Tagging an eatery: addtag

Adds tags to an eatery.

Format: addtag [index] \t [tag] {\t [tags]…​}

  • At least one tag must be specified.

Examples:

  • addtag 2 \t hawker \t good-for-sharing

Removing tags from an eatery: removetag

Removes tags from an eatery.

Format: removetag [index] \t [tags]…​

  • If the tags to be removed are not associated to the eatery in the first place, no changes will be made.

Examples:

  • removetag 2 \t hawker

Finding an eatery: find

Finds an eatery based on a set of user-supplied conditions.

Format: find {\n [name of eatery]} {\a [address]} {\c [category]} {\t [tags]…​}

  • At least one condition must be supplied, but there is no upper limit.

  • Eateries that match any of the conditions will be shown.

    • find \n Noodle \t cheap will show eateries that either have "Noodle" in their name, or the tag "cheap", or both.

  • Conditions are case-insensitive.

  • For name and address, eateries that match the conditions partially will be shown.

    • find \n rice will show both "Tian Tian Chicken Rice" and "The Ricebowl".

Examples:

  • find \n Noodle \t cheap

  • find \a Jurong

Viewing an eatery: show

Shows an eatery with all its details - address, category, tags, reviews, and a map of its location.

Format: show [index]

  • In order to view the eatery’s map, you must be connected to the Internet.

Examples:

  • show 2

Reviewing an eatery: review

Leaves a review for the specified eatery.

Format: review [index] \d [description] \p [price per person] \r [rating] \w [date in DD/MM/YYYY format]

  • Leaves a review for the eatery at the specified index.

  • Date must be in DD/MM/YYYY format.

Examples:

  • review 2 \d Nice Condensed Milk Pork Ribs \p 15 \r 4 \w 23/10/2019

Editing a review: editreview

Edits an eatery’s review. Use the editreview command only when you can see an eatery’s reviews.

Format: editreview [index] {\d [description]} {\p [price per person]} {\r [rating]} {\w [date in DD/MM/YYYY format]}

  • Edits the review at the specified index.

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

  • Existing values will be updated to the input values.

  • Date must be in DD/MM/YYYY format.

Examples:

  • editreview 1 \p 3.6 \r 1

EditReviewCommand
Deleting a review: deletereview

Deletes an eatery’s review. Use the deletereview command only when you can see an eatery’s reviews.

Format: deletereview [index]

Examples:

  • deletereview 2

DeleteReviewCommand
Marking an eatery as closed: close

Closes an eatery if the eatery no longer exists. The eatery will still be listed, but will be highlighted in red to inform you that the eatery no longer exists. In the case that you accidentally closed the wrong eatery or the eatery reopens, the reopen command does the opposite of close.

Format: close [index]

Examples:

  • close 2

Reopening a closed eatery: reopen

Reopens a previously closed eatery. Format: reopen [index]

Examples:

  • reopen 2

Deleting an eatery: delete

Deletes an eatery in the application.

Format: delete [index]

Example:

  • delete 1

4.2.2. Visualisation

Showing overall statistics: stats

Presents a visual overview of the user’s eateries and reviews. Eatery and review data used to generate the statistics are collated from the start of the application. The command will generate six types of statistics: most visited eateries, least visited eateries, eateries you spent the most at (on average), eateries you spent the least at (on average), price per category, number of visits per category.

Format: stats

  • There must be at least one review and eatery to generate the statistics.

  • After updating a review or eatery, the user must run the stats command again to update the statistics as it does not auto-update.

4.3. Todo Mode

In Todo mode, users will be able to manipulate eateries which they have yet to visit, but are planning on visiting. Similarly, users will be able to add, edit, and delete eateries. Futhermore, users are able to save a particular eatery from the todo list into the main list if the user has finally visited that eatery.

4.3.1. Working with Eateries

Adding an eatery: add

Adds an eatery to the todo list.

Format: add \n [name of eatery] \a [address] {\t [tags]…​}

Examples:

  • add \n Two Chefs Eating Place \a 116 Commonwealth Cres, #01-129

  • add \n Two Chefs Eating Place \a 116 Commonwealth Cres, #01-129 \t good-for-groups \t non-aircon

Tagging an eatery: addtag

Adds tags to an eatery.

Format: addtag [index] \t [tag] {\t [tags]…​}

  • At least one tag must be specified.

Examples:

  • addtag 2 \t hawker \t good-for-sharing

Removing tags from an eatery: removetag

Removes tags from an eatery.

Format: removetag [index] \t [tags]…​

  • If the tags to be removed are not associated to the eatery in the first place, no changes will be made.

Examples:

  • removetag 2 \t hawker

Viewing an eatery: show

Shows an eatery with all its details - address, tags, reviews, and a map of its location.

Format: show [index]

  • In order to view the eatery’s map, you must be connected to the Internet.

Examples:

  • show 2

Finding an eatery: find

Finds an eatery based on a set of user-supplied conditions.

Format: find {\n [name of eatery]} {\a [address]} {\t [tags]…​}

  • At least one condition must be supplied, but there is no upper limit.

  • Eateries that match any of the conditions will be shown.

    • find \n Noodle \t cheap will show eateries that either have "Noodle" in their name, or the tag "cheap", or both.

  • Conditions are case-insensitive.

  • For name and address, eateries that match the conditions partially will be shown.

    • find \n rice will show both "Tian Tian Chicken Rice" and "The Ricebowl".

Examples:

  • find \n Noodle \t cheap

  • find \a Jurong

Deleting an eatery: delete

Delete an eatery in the application.

Format: delete [index]

Examples:

  • delete 1

Saving a todo eatery to the main eatery list : save

Remove a todo eatery from the todo list and provides a quick way to add it to the main list of eateries.

Format: save [index]

  • Save the eatery at the specified index.

  • The eatery will be removed from the todo list after save is executed.

  • Application will toggle to Main mode.

  • Subsequently, the add command will be constructed and the user will be required to input the missing field before the eatery is saved in the main list.

Examples:

  • save 2

4.4. News Feed

EatMe allows you to stay up-to-date with the latest food trends from right within the app! Add your favorite food blogs into the app and EatMe will show you a list of the latest articles from those blogs on the right panel. To view any of the articles, simply click on the title of the post.

Terminology:

  • feed - A food blog

  • feed post - A single post from a food blog

4.4.1. Adding a feed : addfeed

Adds a new feed to the app.

Format: addfeed \n [name of feed] \a [Web address of the feed]

  • Adds a new feed with the given name and Web address.

  • Fetches the 5 latest posts from the feed and displays them in the right panel.

  • The Web address must point to a valid RSS XML feed.

  • In order to add feeds, you must be connected to the Internet.

Example:

4.4.2. Deleting a feed : deletefeed

Deletes a feed from the app.

Format: deletefeed \n [name of feed]

  • Deletes the feed with the specified name and all its associated feed posts.

  • The name must match the feed’s name exactly.

Examples:

  • deletefeed \n Eatbook

5. Quick Reference

Type this…​ For this…​

help

Viewing help

exit

Exiting the app

add

Adding an eatery

delete

Deleting an eatery

find

Finding an eatery

edit

Editing an eatery

close

Marking an eatery as closed

reopen

Reopening a closed eatery

review

Reviewing an eatery

editreview

Editing a review

deletereview

Deleting a review

addtag

Tagging an eatery

removetag

Removing tags from an eatery

list

Listing all eateries

show

Viewing an eatery

load

Load eateries from other file

stats

Showing overall statistics

mode

Toggling between main and todo modes

save

Saving a todo eatery to the main eatery list

addfeed

Adding a feed

deletefeed

Deleting a feed

6. 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 EatMe folder.