User Guide for bobaBot
bobaBot is a cheap & easy-to-use desktop application for managing bubble tea shop customers’ membership details.
bobaBot offers simple adding, enquiring, and maintaining of customer information.
It features a membership rewards system, fuzzy search, and undo / redo function.
It is optimised for staffs who prefer to type fast.
If you are a cashier working at a bubble tea shop, bobaBot can help you easily find and manage your customers’ membership information as compared to other GUI applications.
Table of Contents
1. Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
bobaBot.jar
from here. -
Decide where do you want your home folder and copy the downloaded file to it.
-
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 information.
-
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.
Some example commands you can try:-
list
: Lists all customers. -
add n/John Doe p/98765432 e/johnd@example.com m/1 r/0
: Adds a customer namedJohn Doe
to bobaBot. -
delete p/98765432
: Deletes the customer with the corresponding phone number (aka John Doe). -
clear
: Deletes all customers. -
exit
: Exits the app.
-
-
Scroll down on the Customer list and Promotion list to see all the customers and on-going promotions.
-
Refer to the Command summary below for a quick overview of commands.
-
Refer to the Features below for details of each command.
-
Before starting a trial run, clear the sample information using
clear
command and add your actual customer information.
2. Features
Notes about the command format:
-
Command words are CASE_SENSITIVE and should all be in
lower-case
.
e.g.add
instead ofADD
,Add
,aDd
,…, usingnon lower-case
command words will result in command being not recognised. -
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/John Doe
. -
Items in square brackets are optional.
e.gn/NAME [t/TAG]
can be used asn/John Doe t/member
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times.
e.g.[t/TAG]…
can be used ast/member
,t/member t/gold
etc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. -
If a parameter is expected only once in the command but you specified it multiple times, only the last occurrence of the parameter will be taken.
e.g. if you specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
help
,list
,exit
andclear
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
.
2.1 Adding a Customer: add
Adds a Customer to bobaBot.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL m/BIRTHDAY_MONTH r/REWARD [t/TAG]…
Examples:
-
add n/John Doe p/98765432 e/johnd@example.com m/1 r/0
Walk-through with Images
Before executing the AddCommand:
After executing the AddCommand:
-
add n/Charlie Puth p/81234567 e/charlie@puth.com r/3000 t/silver m/12
Walk-through with Images
Before executing the AddCommand:
After executing the AddCommand:
2.2 Editing a Customer’s details: edit
Edits an existing Customer in bobaBot.
Format: edit p/PHONE_NUMBER OR edit e/EMAIL
[n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [r/REWARD] [t/TAG]…
Examples:
-
edit p/81234567 p/88888888
Walk-through with Images
Before executing the EditCommand viaPHONE_NUMBER
:
After executing the EditCommand viaPHONE_NUMBER
:
-
edit e/charlie@puth.com e/taylor@swift.com
Walk-through with Images
Before executing the EditCommand viaEMAIL
:
After executing the EditCommand viaEMAIL
:
2.3 Increasing a Customer’s Reward points: incr
Increases the Reward points of existing Customer in bobaBot.
Format: incr INCREMENT_VALUE p/PHONE_NUMBER OR incr INCREMENT_VALUE e/EMAIL
Examples:
-
incr 100 p/88888888
Walk-through with Images
Before executing the IncreaseCommand viaPHONE_NUMBER
:
After executing the IncreaseCommand viaPHONE_NUMBER
:
-
incr 1000 e/alexyeoh@example.com
Walk-through with Images
Before executing the IncreaseCommand viaEMAIL
:
After executing the IncreaseCommand viaEMAIL
:
2.4 Decreasing a Customer’s Reward points: decr
Decreases the Reward points of existing Customer in bobaBot.
Format: decr DECREMENT_VALUE p/PHONE_NUMBER OR decr DECREMENT_VALUE e/EMAIL
Examples:
-
decr 200 p/87438807
Walk-through with Images
Before executing the IncreaseCommand viaPHONE_NUMBER
:
After executing the IncreaseCommand viaPHONE_NUMBER
:
-
decr 500 e/taylor@swift.com
Walk-through with Images
Before executing the IncreaseCommand viaEMAIL
:
After executing the IncreaseCommand viaEMAIL
:
2.5 Listing all customers : list
Shows a list of all Customers in bobaBot.
Format: list
Walk-through with Images
Before executing the ListCommand:After executing the ListCommand:
2.6 Locating customers by name / email / phone number: find
Finds Customers whose information (including name, phone, email, address) contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive. e.g
hans
will matchHans
- The order of the keywords does not matter. e.g.
Hans Bo
will matchBo Hans
- Customers matching at least one keyword will be returned (i.e.
OR
search) e.g.Hans Bo
will returnHans Gruber
,Bo Yang
- When searching for names, fuzzy search based on Soundex will be used
e.g.
Aschcroft
will matchAschcraft
, similarlyBob
will matchBop
- No need to type in the whole word. e.g
9927
will match27859927
- For precise searching, specify the corresponding attribute (phone number or email)
e.g.
find p/88888888
will only match the customer with phone number88888888
Examples:
-
find John
returnsjohn
andJohn Doe
Walk-through with Images
Before executing the FindCommand:
After executing the FindCommand:
-
find alex david
returnsAlex Yeoh
,David Li
Walk-through with Images
Before executing the FindCommand (with at least one keyword):
After executing the FindCommand (with at least one keyword):
-
find Bob
returnsBob
andBop
Walk-through with Images
Before executing the FindCommand (with FuzzySearch):
After executing the FindCommand (with FuzzySearch):
-
find 8000
returns bothRoy Balakrishnan
andBob
Walk-through with Images
Before executing the FindCommand (with matching keywords8000
):
After executing the FindCommand (with matching keywords8000
):
- Both `Roy` and `Bob` have `8000` reward points hence they show up in the search.
-
find p/87438807
returns onlyAlex Yeoh
Walk-through with Images
Before executing the FindCommand viaPHONE_NUMBER
:
After executing the FindCommand viaPHONE_NUMBER
:
-
find e/charlotte@example.com
returns onlyCharlotte Oliveiro
Walk-through with Images
Before executing the FindCommand viaEMAIL
:
After executing the FindCommand viaEMAIL
:
2.7 Deleting a Customer : delete
Removes a Customer from bobaBot.
Format:
delete p/PHONE_NUMBER
or
delete e/EMAIL
- Deletes the Customer with the following
PHONE_NUMBER
whenp/
specified. - Deletes the Customer with the following
EMAIL
whene/
specified.
Examples:
-
delete p/88888888
removes the Customer with the phone number88888888
.Walk-through with Images
Before executing the DeleteCommand viaPHONE_NUMBER
:
After executing the DeleteCommand viaPHONE_NUMBER
:
-
delete e/royb@example.com
removes the Customer with the emailroyb@example.com
.Walk-through with Images
Before executing the DeleteCommand viaEMAIL
:
After executing the DeleteCommand viaEMAIL
:
2.8 Undo a Command : undo
Reverts a command that has been executed. Returns bobaBot to the previous state before executing the command.
Format: undo
Walk-through with Images
Before executing the UndoCommand (after a DeleteCommand):After executing the UndoCommand (Deleted Customer
Alex Yeoh
is back into bobaBot):
Notes about the UndoCommand:
- bobaBot only preserves the 20 most recent state changes (Commands such as
list
,find
,help
,calc
andexit
will not result in a state change).
2.9 Redo an UndoCommand : redo
Reverts the UndoCommand. Returns bobaBot to the state before executing the UndoCommand.
Format: redo
Walk-through with Images
Before executing the RedoCommand:- This continues from the above example in UndoCommand (where we perform an UndoCommand on a DeleteCommand)
After executing the RedoCommand (The Customer
Alex Yeoh
is removed from bobaBot again):
Notes about the RedoCommand:
- bobaBot only preserves the 20 most recent state changes (Commands such as
list
,find
,help
,calc
andexit
will not result in a state change).
2.10 Clearing all entries : clear
Clears all Customers from the bobaBot.
Format: clear
Walk-through with Images
Before executing the ClearCommand:After executing the ClearCommand:
2.11 Calculate: calc
Do basic arithmetic calculation including +, -, *, /. Allow multiple operators and precedence
Format: calc {arithmetic expression}
Example: calc 5+2*(4-2)
Walk-through with Images
Before executing the CalculateCommand:After executing the CalculateCommand:
Notes about the CalculateCommand:
- It supports spaces between numbers, operators and parentheses, e.g.
calc 5 + 2 * (4 - 2)
works too.
2.12 GUI Calculator: calc-gui
Launch a GUI calculator. A calculator window will pop-up
Format: calc-gui
Walk-through with Images
Before executing the CalculatorGuiCommand:After executing the CalculatorGuiCommand:
2.13 Viewing help : help
Shows a message explaining how to access the help page.
Format: help
2.14 Exiting the program : exit
Exits the program.
Format: exit
Walk-through with Images
Before executing the ExitCommand:After executing the ExitCommand:
- bobaBot Application Closed
Saving the data
bobaBot data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
bobaBot data are saved as a JSON file [JAR file location]/data/bobaBot.json
. Advanced users are welcome to update data directly by editing that data file.
Archiving data files [coming in v2.0]
Details coming soon …
3. 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 bobaBot home folder.
4. Command summary
Action | Format, Examples |
---|---|
Add |
add n/NAME p/PHONE_NUMBER e/EMAIL m/BIRTHDAY_MONTH r/REWARD [t/TAG]… e.g., add n/Betsy Crowe p/1234567 e/betsycrowe@example.com m/1 r/5000 t/gold
|
Edit |
edit p/PHONE_NUMBER [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [m/BIRTHDAY] [r/REWARD] [t/TAG]… or edit e/EMAIL [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [m/BIRTHDAY] [r/REWARD] [t/TAG]… e.g., edit p/98765432 n/Miles Morales , edit e/alexyeoh@example.com r/1000 p/11111111
|
Increase |
incr 100 p/PHONE_NUMBER or incr 100 e/EMAIL e.g., incr 100 p/87438807 , incr 100 e/alexyeoh@example.com
|
Decrease |
decr 100 p/PHONE_NUMBER or decr 100 e/EMAIL e.g., decr 100 p/87438807 , decr 100 e/alexyeoh@example.com
|
Delete |
delete p/PHONE_NUMBER or delete e/EMAIL e.g., delete p/87438807 , delete e/alexyeoh@example.com
|
Find |
find KEYWORD [MORE_KEYWORDS] e.g., find alex david
|
Undo | undo |
Redo | redo |
Calculate |
calc {arithmetic expression} e.g. calc 5 + 2 * (4 - 2)
|
Calculator | calc-gui |
Clear | clear |
List | list |
Help | help |
Exit | exit |
5. List of terminologies
Term | Meaning |
---|---|
CLI | Abbreviation for Command-Line Interface. A command-line interface receives commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and providing information to them as to what actions they are to perform. |
GUI | Abbreviation for Graphical User Interface. A graphical user interface allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation. |
Command | A command is a directive to a computer program to perform a specific task. |
Parameter | A value for a specified field. |
Command box | Place where the user types in the command. |
Tag | A remark that can be added to customers. |