By: Team W10-2
Since: Aug 2018
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features (Does Not Require Login)
- 3.1. Viewing help :
help
- 3.2. Listing all restaurants :
list
- 3.3. Locating restaurants by name:
find
- 3.4. Listing entered commands :
history
- 3.5. Selecting a restaurant :
selectRestaurant
- 3.6. Selecting a restaurant :
selectOther
- 3.7. Signing Up for a Makan Book Account:
signup
- 3.8. Exiting the program :
exit
- 3.1. Viewing help :
- 4. Features (Requires Login)
- 4.1. Log In into an existing Makan Book Account:
login
- 4.2. Log Out of an existing Session:
logout
- 4.3. Write Review For Restaurant:
writeReview
- 4.4. Display User Profile:
displayProfile
- 4.5. Adding friends:
addFriend
- 4.6. Accept friend request:
acceptFriend
- 4.7. Delete friend request:
deleteFriendRequest
- 4.8. Delete friend:
deleteFriend
- 4.9. List friend requests:
listFriendRequests
- 4.10. List friends:
listFriends
- 4.11. Adding groups:
addGroup
- 4.12. Adding members:
addMembers
- 4.13. Accepting group requests:
acceptGroup
- 4.14. Deleting group requests:
deleteGroupRequest
- 4.15. Deleting groups:
deleteGroup
- 4.16. List group requests:
listGroupRequests
- 4.17. List groups:
listGroups
- 4.18. Finding people to eat with:
createJio
- 4.19. Joining an existing jio:
joinJio
- 4.20. Deleting old jios:
deleteJio
- 4.21. List jios:
listJio
- 4.22. Sent add debt request:
addDebt
- 4.23. Sent add debt request to a group
addGroupDebt
- 4.24. Sent clear debt request:
clearDebt
- 4.25. Accept debt request:
acceptDebtRequest
- 4.26. Delete debt request:
deleteDebtRequest
- 4.27. List all login user’s creditor
listCreditor
- 4.28. List all login user’s debtor
listDebtor
- 4.29. List all login user’s debt request received
listDebtRequestReceived
- 4.30. List all login user’s debt request sent
listDebtRequestSent
- 4.31. List all login user’s debt history
listDebtor
- 4.32. Block unavailable timeslot manually:
blockDate
- 4.33. Free timeslot manually:
freeDate
- 4.34. See free Time:
listScheduleForWeek
- 4.35. Find common group meeting times:
findDates
- 4.1. Log In into an existing Makan Book Account:
- 5. Administrator Level Features
- 5.1. Adding a restaurant:
add
[DEPRECIATED, DO NOT USE, ONLY FOR ADMINISTRATORS] - 5.2. Deleting a restaurant :
delete
[DEPRECIATED, DO NOT USE, ONLY FOR ADMINISTRATORS] - 5.3. Editing a restaurant :
edit
[DEPRECIATED, DO NOT USE, ONLY FOR ADMINISTRATORS] - 5.4. Clearing all entries :
clear
[DEPRECIATED, DO NOT USE, ONLY FOR ADMINISTRATORS] - 5.5. Undoing previous command :
undo
[DEPRECIATED, DO NOT USE, ONLY FOR ADMINISTRATORS] - 5.6. Redoing the previously undone command :
redo
[DEPRECIATED, DO NOT USE, ONLY FOR ADMINISTRATORS]
- 5.1. Adding a restaurant:
- 6. Changes coming in v2.0
- 7. FAQ
- 8. Command Summary
Makan Book is for those who prefer to use a desktop app to search for restaurants within NUS to eat at alone or with friends. More importantly, MakanBook is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). MakanBook also allows users to add and manage friends and groups, start private and public jios and so much more! Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!
-
Ensure you have Java version
9
or later installed in your Computer. -
Download the latest
makanbook.jar
here. -
Copy the file to the folder you want to use as the home folder for your Makan Book.
-
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
: lists all restaurants -
signup
u/johnnydoe pwd/pAssw0rd n/John Doe p/98765432 e/johnd@example.com
: Sign Up for an account in the Makan Book. Allows you to use Makan Book’s many features -
exit
: exits the app
-
-
Refer to Section 3, “Features (Does Not Require Login)” for details of each command.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/Waa Cow
. -
Items in square brackets are optional e.g
n/NAME [u/USERNAME]
can be used asn/Waa Cow u/navekom
or asn/Waa Cow
. -
Items with
…
after them can be used multiple times including zero times e.g.[u/USERNAME]…
can representu/navekom
,u/katespade u/themyth
etc. -
Parameters can be in any order e.g. if the command specifies
u/USERNAME pwd/PASSWORD
,pwd/PASSWORD u/USERNAME
is also acceptable.
ℹ️
|
Makan Book data is saved in the hard disk automatically after any command that changes the data. |
Finds restaurants whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
-
The search is case insensitive. e.g
Waa Cow
will matchwaa cow
-
The order of the keywords does not matter. e.g.
Cow Waa
will matchWaa Cow
-
Only the name is searched.
-
Only full words will be matched e.g.
Cow
will not matchCo
-
Restaurants matching at least one keyword will be returned (i.e.
OR
search). e.g.Waa Lao
will returnWaa Cow
,Lao Ban
Examples:
-
find Waa Lao
ReturnsWaa Cow
andLao Ban
-
find Din Tai Fung
Returns any restaurant having namesDin
,Tai
, orFung
Lists all the commands that you have entered in reverse chronological order.
Format: history
ℹ️
|
Pressing the ↑ and ↓ arrows will display the previous and next input respectively in the command box. |
Selects the restaurant identified by the index number used in the displayed restaurant list. It will display the webpage of the restaurant
which contains it’s details, overall rating and reviews written by users
Format: selectRestaurant INDEX
-
Selects the restaurant and loads the restaurant page at the specified
INDEX
. -
The index refers to the index number shown in the displayed restaurant list.
-
The index must be a positive integer
1, 2, 3, …
Examples:
-
list
selectRestaurant 2
Selects the 2nd restaurant in the address book. -
find Hwangs
selectRestaurant 1
Selects the 1st restaurant in the results of thefind
command.
Selects the item (Friend, Group, Debt, Request, Jio) identified by the index number used in the displayed item list (the second list panel). It will display details of the item
which varies based on the item selected (eg. Jio contains name, date, address, people)
Format: selectOther INDEX
-
Selects the item and loads the item page at the specified
INDEX
. -
The index refers to the index number shown in the displayed item list.
-
The index must be a positive integer
1, 2, 3, …
Examples:
-
listJio
selectOther 2
Selects the 2nd jio in the address book. -
listGroups
selectOther 1
Selects the 1st group in the address book.
Allows a User to create an account for use in the Makan Book. Automatic log in upon sign up.
Format: signup u/USERNAME pwd/PASSWORD n/NAME p/PHONE_NUMBER e/EMAIL
Example:
-
signup u/davemyth pwd/pwd123123 n/Dave Batik p/92225822 e/davebaumb@gmail.com
Allows a User to log into an existing account in the Makan Book.
Format: login u/USERNAME pwd/PASSWORD
Example:
-
login u/davemyth pwd/pwd123123
Allows a User to log out of an existing session.
Format: logout
Allows user to write a review for a specific restaurant.
Format: writeReview INDEX rate/RATING rvw/REVIEW
Examples:
-
writeReview 3 rate/3 rvw/The food is not the best, but definitely value for money!
Allows a user to view his own profile in the Makan Book. The browser panel will then contains the user’s details and
the reviews he’s written.
Format: displayProfile
A User will send a friend request to another User who will then have to accept the friend request.
Format: addFriend u/USERNAME
Examples:
-
addFriend u/meena567
A User can accept a friend request of another User so that the pair of them can become friends.
Format: acceptFriend u/USERNAME
Examples:
-
acceptFriend u/meena567
A User can delete friend request of another User whom they might not know.
Format: deleteFriendRequest u/USERNAME
Examples:
-
deleteFriendRequest u/meena567
A User can delete friend whom they may no longer want to be friends with.
Format: deleteFriend u/USERNAME
Examples:
-
deleteFriend u/meena567
A User can list friend requests that they have received. Only the party that did not initiate the friend request will receive the friend request
Format: listFriendRequests
A User will create a group by specifying the group name.
Format: addGroup g/GROUPNAME
-
Every group will automatically add the user creating the group into its list of accepted Users.
Examples:
-
addGroup g/CS2103
A User already in the group can add members to a particular group by specifying the group name and the usernames of the users they wish to add to that group.
Format: addMembers g/GROUPNAME [Users u/USERNAMES]…
Examples:
-
addMembers g/CS2103 u/chelchia u/evanmok2401 u/katenhy u/yewwoei
A User can accept the invitation to join a group.
Format: acceptGroup g/GROUPNAME
Examples:
-
acceptGroup g/CS2103
A User can choose to delete the group request should they not want to join the group.
Format: deleteGroupRequest g/GROUPNAME
Examples:
-
deleteGroupRequest g/CS2103
A User can leave a group and they will be removed from the group.
Format: deleteGroup g/GROUPNAME
Examples:
-
deleteGroup g/CS2103
A User can list group requests that they have received.
Format: listGroupRequests
Users can find other users to eat with through inviting users. “createJio” creates a jio that is added to the global list of jios.
Format: createJio n/NAME w/WEEK d/DAY h/TIME a/PLACE [g/GROUP NAME]
-
Jio — an invitation to hang out.
-
Name, date, time, place must be provided. The other parameters are optional.
-
All users will be able to view the list of jios.
-
If group name is present, all group members are automatically added to jio. Jio is still visible to all.
Examples:
-
createJio n/MALA w/1 d/mon h/1200 a/FineFood
-
createJio n/saporeFriends w/1 d/mon h/1800 a/Sapore g/2103
Examples:
Users can join an existing jio to find people to eat with, without having to create one of their own.
Format: joinJio n/NAME
-
User has to indicate the name of the jio.
Examples:
-
joinJio n/MALA
Users can specify a jio to delete. Only the creator of a jio can delete the jio.
Format: deleteJio n/NAME
Examples:
-
deleteJio n/MALA
Lists all jios created by all users, so that user can see which one to join.
Format: listJio
User(Creditor) send a debt request to another user with specific amount.
Record will be created between two users with a Pending
status.
Format: addDebt u/USERNAME amt/AMOUNT
Examples:
-
addDebt u/katespades amt/4.30
User(Creditor) send a debt request to all other users in the group with specific amount.
with amount will split equally to everyone in the group.
Record will be created between with a Pending
status.
Format: addGroupDebt g/GROUP amt/AMOUNT
Examples:
-
addGroupDebt g/CS2103 amt/4.30
User(Creditor) clear amount between users. If the amount is equal to the debt,
the status will change to Cleared
. Otherwise, the amount will be balanced off from the debt.
Format: clearDebt u/NAME amt/AMOUNT
Examples:
-
clearDebt u/katespades amt/4.30
Unique ID is generate for each debt, even though the input parameters are the same. This is to ensure that mutiple debts can be recorded and differentiated.
User(Debtor) accept request from another user(Creditor). The debt status will change
from Pending
to Accepted
. If there are any other accepted debt between this two
users, the debt will balanced off as one debt record.
Format: acceptDebtRequest u/NAME amt/AMOUNT id/ID
ID is unique and should copy from the Debt Card in UI when you test it
Examples:
-
acceptDebtRequest u/katespades amt/4.30 id/18103013460314(copy from UI)
User(Debtor) delete/reject request send by other user if it is a wrong request.
Format: deleteDebtRequest u/USERNAME amt/AMOUNT id/ID
ID is unique and should copy from the Debt Card in UI when you test it
Examples:
-
deleteDebtRequest u/Kate123 amt/4.30 id/18103013460314(copy from UI)
List all creditor of the login user in list panel.
Format: listCreditor
List all debtor of the login user in list panel.
Format: listDebtor
List all debt request received by login user from other user in list panel.
Format: listDebtRequestReceived
List all debt request sent by login user to other user in list panel.
Format: listDebtRequestSent
List all debt history(regardless of status) of the login user in list panel.
Format: listDebtor
Blocks out that timeslot in the user’s schedule to signify that he is busy and not available to eat.
Weeks only range from 1-6, recess, 7-13, reading, 15, 16
Format: blockDate w/WEEKNUMBER d/DAY h/HHHH
Examples:
-
blockDate w/5 d/tue h/1800
Frees up that timeslot in the user’s schedule to signify that he is free and available to eat.
Format: freeDate w/recess d/DAY h/HHHH
Examples:
-
freeDate w/5 d/wed h/1800
Views the list of free time to eat on a NUS week according to your calendar.
Format: listScheduleForWeek w/WEEK_NUMBER
Examples:
-
listScheduleForWeek w/5
Adds a restaurant to the address book
Format: add n/NAME p/PHONE_NUMBER a/ADDRESS [t/TAG]…
💡
|
A restaurant can have any number of tags (including 0) |
Examples:
-
add n/Macdonalds p/6231 8837 a/Engineering Block Eg 4
-
add n/Japanese Delights t/Halal a/Engineering Canteen EG5 #02-01 t/Japanese
Deletes the specified restaurant from the address book.
Format: delete INDEX
-
Deletes the restaurant at the specified
INDEX
. -
The index refers to the index number shown in the displayed restaurant list.
-
The index must be a positive integer 1, 2, 3, …
Examples:
-
list
delete 2
Deletes the 2nd restaurant in the address book. -
find Hwangs
delete 1
Deletes the 1st restaurant in the results of thefind
command.
Edits an existing restaurant in the address book.
Format: edit INDEX [n/NAME] [p/PHONE] [a/ADDRESS] [t/TAG]…
-
Edits the restaurant at the specified
INDEX
. The index refers to the index number shown in the displayed restaurant 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.
-
When editing tags, the existing tags of the restaurant will be removed i.e adding of tags is not cumulative.
-
You can remove all the restaurant’s tags by typing
t/
without specifying any tags after it.
Examples:
-
edit 1 p/91234567 e/macdonalds@example.com
Edits the phone number and email address of the 1st restaurant to be91234567
andmacdonalds@example.com
respectively. -
edit 2 n/Hwangs t/
Edits the name of the 2nd restaurant to beHwangs
and clears all existing tags.
Clears all entries from the address book.
Format: clear
Restores the address book to the state before the previous undoable command was executed.
Format: undo
ℹ️
|
Undoable commands: those commands that modify the address book’s content ( |
Examples:
-
delete 1
list
undo
(reverses thedelete 1
command) -
selectRestaurant 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
5.6. Redoing the previously undone command : redo
[DEPRECIATED, DO NOT USE, ONLY FOR ADMINISTRATORS]
Reverses the most recent undo
command.
Format: redo
Examples:
-
delete 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
delete 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theclear
command)
Currently, all users are can add, delete, edit and make changes to restaurants in the makan book even if the User Guide says otherwise. This can affect all other users.
To prevent this, administrator accounts will be created. Only administrators will have the ability to call commands that modify the restaurants in Makan book.
Lists the restaurants a user has visited.
Format: listVisitedRestaurants
Allows user to add a restaurant into his visited restaurant list with date, price, rating/score and meal consumed.
Format: addVisitedRestaurants INDEX t/DATE p/PRICE r/SCORE rvw/WRITTEN_REVIEW m/MEAL_CONSUMED
Examples:
-
addVisitedRestaurants 3 t/2011-11-11 p/3.70 r/4 rvw/Value for money indeed m/Lemon Chicken Rice
Allows User to add a restaurant into his account’s favourites.
Format: addFavourite INDEX
Examples:
-
addFavourite 3
Allows User to list the restaurants he has entered into his favourites.
Format: listFavourites
Views the list of free time to eat on those dates.
Format: findJio w/WEEKNUMBER
Examples:
-
findJio w/8
Block out schedules on the timetable using a NUSMODS link.
Format: addNUSMODS NUSMODSLINK
Examples:
-
addCalendar nusmods.com/g91j3g08sdgl13
Block out schedules on the timetable using a google account.
Format: addCalendar USERNAME PASSWORD
Examples:
-
addCalendar aiden@gmail.com aidenpassword
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 Makan Book folder.
-
Find :
find KEYWORD [MORE_KEYWORDS]
e.g.find Waa Lao
-
List :
list
-
List Jio :
listJio
e.g.listJio
-
Help :
help
-
selectRestaurant :
selectRestaurant INDEX
e.g.selectRestaurant 2
-
History :
history
-
Sign Up :
signup u/USERNAME pwd/PASSWORD n/NAME p/PHONE_NUMBER e/EMAIL
e.g.signup u/johnnydoe pwd/pAssw0rd n/John Doe p/98765432 e/johnd@example.com
-
Login :
login u/USERNAME pwd/PASSWORD
e.g.login u/navekom pwd/pwwd123
-
Logout :
logout
-
Write a Review :
writeReview INDEX rate/RATING rvw/WRITTEN_REVIEW
e.g.writeReview 2 rate/5 rvw/I tried the Salmon Mentaiko Chirashi and it was amazing.
-
Display User Profile:
displayProfile
-
selectOther :
selectOther INDEX
e.g.selectOther 2
-
Add Friend :
addFriend u/USERNAME
e.g.addFriend u/meena567
-
Accept Friend Request :
acceptFriend u/USERNAME
e.g.acceptFriend u/meena567
-
Delete Friend Request :
deleteFriendRequest u/USERNAME
e.g.deleteFriendRequest u/meena567
-
Delete Friend :
deleteFriend u/USERNAME
e.g.deleteFriend u/meena567
-
List Friend Requests :
listFriendRequests
-
List Friends :
listFriends
-
Add Group :
addGroup g/GROUP_NAME
e.g. addGroup g/CS2103 -
Add Members :
addMembers g/GROUP_NAME [u/USERNAME]…
e.g. addMembers g/CS2103 u/thejrlinguist u/meena567 -
Accept Group :
acceptGroup g/GROUP_NAME
e.g. acceptGroup g/CS2103 -
Delete Group Request :
deleteGroupRequest g/GROUP_NAME
e.g. deleteGroupRequest g/CS2103 -
Delete Group :
deleteGroup g/GROUP_NAME
e.g. deleteGroup g/CS2103 -
List Group Requests :
listGroupRequests
-
List Groups :
listGroups
-
Create Jio :
createJio
e.g.createJio n/MALA w/1 d/mon h/1200 a/FineFood
e.g.createJio n/saporeFriends w/1 d/mon h/1800 a/Sapore g/mygroup
-
Join Jio :
joinJio
e.g.joinJio n/MALA
-
Delete Jio :
deleteJio
e.g.deleteJio n/MALA
-
Add Debt :
addDebt u/USERNAME amt/AMOUNT
e.g.addDebt u/katespades amt/2.3
-
Add Group Debt :
addGroupDebt g/GROUP_NAME amt/AMOUNT
e.g.addGroupDebt g/2103 amt/27
-
Clear Debt :
clearDebt u/USERNAME amt/AMOUNT
e.g.clearDebt u/katespades amt/1.3
-
Accept Debt Request :
acceptDebtRequest u/USERNAME amt/AMOUNT id/DEBTID
e.g.acceptDebtRequest u/katespades amt/7.9 id/181030224951280
-
Delete Debt Request :
deleteDebtRequest u/USERNAME amt/AMOUNT id/DEBTID
e.g.deleteDebtRequest u/katespades amt/7.9 id/181030224951280
-
List Creditor :
listCreditor
-
List Debtor :
listDebtor
-
List Debt Request Received :
listDebtRequestReceived
-
List Debt Request Sent :
listDebtRequestSent
-
List Debt History :
listDebtHistory
-
Block Date :
blockDate w/WEEKNUMBER d/DAY h/HHHH
e.g.blockDate w/reading d/thu h/1800
-
Free Date :
freeDate w/WEEK_NUMBER d/DAY h/HHHH
e.g.freeDate w/11 d/tue h/0600
-
List User’s Free Timeslots for a Week :
listScheduleForWeek w/WEEK_NUMBER
e.g.listScheduleForWeek w/6
-
List free timeslots for your group for a week :
findDates g/GROUP_NAME w/WEEK_NUMBER
e.g.findDates g/2103 w/reading
-
Add
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
e.g.add n/Macdonalds p/6231 8837 a/Engineering Block Eg 4 t/FastFood t/Halal
-
Clear :
clear
-
Delete :
delete INDEX
e.g.delete 3
-
Edit :
edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…
e.g.edit 2 n/James Lee e/jameslee@example.com
-
Undo :
undo
-
Redo :
redo