Thank you for choosing CaféConnect to streamline your café management experience. With so many details to track in a busy café environment, managing customers, staff, and inventory becomes a real challenge. CaféConnect is here to keep you organized and focused on what matters most—providing excellent service to your customers.
Use CaféConnect to bring efficiency to your café management!
What is CaféConnect?
CaféConnect is a streamlined desktop application that helps you manage customers, staff, and your drink menu all in one place.
Because countless other café owners and managers already do!
If you're a café owner who values efficiency, can type quickly, and wants to streamline your operations, CaféConnect is the perfect solution for you!
Managing café operations efficiently is crucial for success—that's why we created CaféConnect. Our application streamlines three core aspects into three beautiful tabs:
1. Staff Tab
Manage staff efficiently to build a strong team!Staff Tab: manage staff information
2. Customers Tab
Remember your customers with ease, and see them smile!Customer Tab: manage customer information
3. Drinks Tab
Browse your drink catalog for the perfect cup!
Drinks Tab: manage drink offerings
First time using CaféConnect? Don't worry! We've got you covered! This guide will help maximize your usage of CaféConnect.
Getting Around This Guide
Note boxes provide important information that you should take note of.
Note: This is a Note box.
Warning boxes highlight potential errors and serve as precautions against incorrect usage.
Warning: This is a warning box.
help
customeradd
or ca
quickcustomeradd
or qca
customerdelete
or cd
customeredit
or ce
customerfind
or cf
staffadd
or sa
quickstaffadd
or qsa
staffdelete
or sd
staffedit
or se
stafffind
or sf
drinkadd
or da
drinkdelete
or dd
purchase
or p
qp
shortcutThis section has two parts: complete Part 1 once, and repeat Part 2 each time you wish to use CaféConnect.
Ensure that you have Java 17
or above installed on your computer for the CaféConnect application to run. If not, download the latest version of Java from their website.
Download cafeconnect.jar
file from our GitHub.
Create a new folder and name it any name you want (e.g. CafeConnect).
Find the downloaded cafeconnect.jar
file and drag it into the folder you created in step 3.
For steps 5 and 6, refer to either Mac Users or Windows Users section that matches your computer system. Continue to Using the terminal after completing steps 5 and 6.
You will see a window like this.
cafeconnect.jar
file and select Get Info
.
On the new window that pops up, right click on Where
and copy the file path.
Open
.
You will see a window like this.
Type cd FILEPATH
(replacing FILEPATH with the actual file path copied in step 6) and press Enter
.
Type java -jar cafeconnect.jar
and press Enter
to run the CaféConnect application.
The CaféConnect welcome screen will appear in a few seconds, displaying the application title and navigation options.
CaféConnect Welcome Screen
Staff & Customer Management
Initial Staff Screen
Drinks Menu
Initial Drinks Menu
Note: The application comes with sample data to help you get started.
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:
help
: Opens the help window with the command guide.
customeradd cid/C001 n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 rp/150 vc/8 fi/Cappuccino ts/120
: Adds a customer named John Doe
to CaféConnect.
staffadd sid/S1001 n/Alice Tan p/81234567 e/alice@example.com a/123, Jurong West Ave 6, #08-111 role/Barista shift/9am-5pm hours/40 rating/4.5
: Adds a staff member named Alice Tan
to CaféConnect.
purchase 1 n/Espresso
: Records a purchase of Espresso for the 1st customer in the list.
customerdelete 3
: Deletes the 3rd customer shown in the current customer list.
qca C0102:Charlie:97285712
: Quickly adds a customer.
exit
: Exits the app.
Refer to the Features below for details of each command. Be sure to check the Understanding Command Syntax section to understand how to properly enter commands in CaféConnect.
Let's start with a simple example to understand how commands work in CaféConnect:
help
- This is a basic command that opens the help window.
Breaking this down:
help
, are simple and don't need any additional information.Let's look at a more complex example:
customeradd cid/C001 n/John Doe
In this example:
customeradd
is the command.cid/C001
and n/John Doe
are parameters.cid/
, n/
) that tells CaféConnect what kind of information follows.Commands are case-insensitive - HELP
, help
, and Help
all work the same way.
Parameters shown in UPPER_CASE
are placeholders that you need to replace with actual values:
cid/CUSTOMER_ID n/NAME
have placeholders CUSTOMER_ID
and NAME
.
customeradd cid/C0001 n/John Doe
- "C0001" replaces CUSTOMER_ID, "John Doe" replaces NAME
Required parameters (must be included) are shown without square brackets:
customeradd cid/CUSTOMER_ID n/NAME p/PHONE
means ID, name, and phone are required.Optional parameters are shown in square brackets []
:
[t/TAG]
means you can add a tag or leave it out.
customeradd cid/C0001 n/John Doe t/regular
- Here, "regular" is an optional tag that was added
Some parameters can be repeated (shown with …
):
[t/TAG]…
means you can add multiple tags or none at all.
customeradd cid/C0001 n/John Doe t/regular t/vip
- Here, both "regular" and "vip" are optional tags that were added
Important note about tags: When adding tags during creation (e.g., customeradd
), you can add multiple tags as shown above. However, when editing tags (e.g., customeredit
), all existing tags are replaced with the new ones you specify. Adding tags is not cumulative during editing.
Duplicate prefixes: If you add more than one of each required prefix (e.g., two n/
prefixes), the command will be treated as invalid.
For most commands, you can enter parameters in any order:
n/John Doe p/98765432
works the same as p/98765432 n/John Doe
Quick commands (like quickcustomeradd
) need parameters in a specific order:
quickcustomeradd C001:John Doe:98765432
must be in ID:Name:Phone order
quickcustomeradd C001:John Doe:98765432
- Here, "C001" is the CUSTOMER_ID, "John Doe" is the NAME, and "98765432" is the PHONE
To make typing easier, CaféConnect provides alias for common commands:
Customer Management:
ca
instead of customeradd
cd
instead of customerdelete
cf
instead of customerfind
Staff Management:
sa
instead of staffadd
sd
instead of staffdelete
sf
instead of stafffind
Drink Management:
da
instead of drinkadd
dd
instead of drinkdelete
Purchase Operations:
p
instead of purchase
qp
instead of quickpurchase
If you're using a PDF version of this guide, be careful when copying commands that span multiple lines. Some spaces might be lost when copying to the application.
Before using any commands, make sure you understand the Understanding Command Syntax rules that apply to all commands in CaféConnect.
staffadd
, staffdelete
, etc.), the interface will automatically switch to the Staff tab.customeradd
, customerdelete
, etc.), the interface will automatically switch to the Customers tab.drinkadd
, drinkdelete
, etc.), the interface will automatically switch to the Drinks tab.stafffind all/true
- Switch to Staff tab and view all staffcustomerfind all/true
- Switch to Customers tab and view all customersdrinkfind all/true
- Switch to Drinks tab and view all drinkshelp
Shows a message explaining how to access the help page.
Format: help
customeradd
or ca
Adds a customer to the customer list with required details such as customer ID, name, phone, email, address, reward points, visit count, favourite item, and total spent.
Format: customeradd cid/CUSTOMER_ID n/NAME p/PHONE e/EMAIL a/ADDRESS rp/REWARD_POINTS vc/VISIT_COUNT fi/FAVOURITE_ITEM ts/TOTAL_SPENT [t/TAG] [r/REMARK]…
CUSTOMER_ID
should start with a 'C' (case-insensitive) followed by digits, e.g., C1001, c1001, and must not be longer than 10 characters. Duplicate customer IDs are not allowedSTAFF_ID
input. e.g. S00045 will be treated as S45NAME
should only contain alphanumeric characters and spaces, and it should not be blank and must not be longer than 50 charactersPHONE
should only contain digits, and it should be between 3 and 20 digits longEMAIL
must be a valid email address.ADDRESS
can take any value, and it should not be blank and must not be longer than 100 charactersREWARD_POINTS
should only contain digitsVISIT_COUNT
should only contain digitsFAVOURITE_ITEM
can take any value, and it should not be blank and must not be longer than 30 charactersTOTAL_SPENT
should be a non-negative number with at most one decimal point and either one or two decimal places, representing the amount in dollarsREMARK
can take any value up to 50 characters, optional fieldTAG
can take any alphanumeric value, but should not contain spaces, optional fieldExamples:
customeradd cid/C004 n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 rp/150 vc/8 fi/Cappuccino ts/120 t/regular t/vip r/Handsome
ca cid/C002 n/Betsy Crowe p/1234567 e/betsycrowe@example.com a/Newgate Prison rp/300 vc/15 fi/Mocha ts/250 t/vip t/regular
These are the before and after images of the first example
Before adding the customer
After adding the customer
quickcustomeradd
or qca
A quick way to add customer members with minimal required information.
Format: quickcustomeradd <CUSTOMER_ID>:<NAME>:<PHONE>
CUSTOMER_ID
should start with a 'C' (case-insensitive) followed by digits, e.g., C1001, c1001, and must not be longer than 10 characters. Duplicate customer IDs are not allowedNAME
should only contain alphanumeric characters and spaces, and it should not be blank and must not be longer than 50 charactersPHONE
should only contain digits, and it should be between 3 and 20 digits longEmail
: default@gmail.comAddress
: emptyReward Points
: 0Visit Count
: 1Favourite Item
: emptyTotal Spent
: 0Remar
k: "From quickcustomeradd. Edit with customeredit."Examples:
quickcustomeradd C0102:Charlie:97285712
qca C0103:Bob:80192832
These are the before and after images of the first example
Before adding the customer
After adding the customer
customerdelete
or cd
Deletes the specified customer from CaféConnect.
Format: customerdelete INDEX
INDEX
.INDEX
refers to the index number shown in the displayed customer list.INDEX
must be a positive integer 1, 2, 3, …INDEX
must be a valid index number (e.g. 5 is not valid when there is less than five customers in the displayed list).Examples:
customerdelete 2
deletes the 2nd customer in the customer list.cd 4
when you only have three customers returns an error message.These are the before and after images of the first example
Before deleting the customer
After deleting the customer
customeredit
or ce
Edits the details of an existing customer in the customer list.
Format: customeredit INDEX [cid/CUSTOMER_ID] [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [rp/REWARD_POINTS] [vc/VISIT_COUNT] [fi/FAVOURITE_ITEM] [ts/TOTAL_SPENT] [t/TAG] [r/REMARK]...
INDEX
.INDEX
refers to the index number shown in the displayed customer list.INDEX
must be a positive integer 1, 2, 3, …INDEX
must be a valid index number (e.g., 5 is not valid when there are fewer than five customers in the displayed list).t/
without specifying any tags after it.Examples:
customeredit 1 p/99994567 e/newemail@example.com
edits the phone number and email address of the 1st customer to be 99994567
and newemail@example.com
respectively.ce 2 n/Betsy Crower rp/5000 t/
edits the name of the 2nd customer to be Betsy Crower
, updates their reward points to 5000
, and clears all existing tags.These are the before and after images of the first example
Before editing customer details
After editing customer details
customerfind
or cf
Finds and lists all customers in the customer list whose names contain any of the specified keywords. The search is case-insensitive, meaning it will match names regardless of letter casing.
Format: customerfind [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [cid/CUSTOMER_ID] [rp/REWARD_POINTS] [vc/VISIT_COUNT] [fi/FAVOURITE_ITEM] [ts/TOTAL_SPENT] [t/TAG]...
Format: customerfind all/true
(to list all customers)
NAME
should contain at least 3 characters, or the command may not work as expected.all/true
.[n/NAME]
do not need to match the full name exactly; partial matches within the name are included. For example, searching n/john doe
will match John Doe
, John Tan
, or Jane Doe
.ali
can find Alice
, but al
might not match successfully.[n/NAME]
will return close matches as well. For example, searching for n/all
will match ali.[n/NAME]
is case-insensitive. For example, searching for alice
will match Alice
, ALICE
, or aLiCe
.[p/PHONE]
[e/EMAIL]
[a/ADDRESS]
[cid/CUSTOMER_ID]
[rp/REWARD_POINTS]
[vc/VISIT_COUNT]
[fi/FAVOURITE_ITEM]
[ts/TOTAL_SPENT]
[t/TAG]
MUST match the field exactly and is case-sensitive. For example , searching fi/Cappuccin
will return nothing if drink should be fi/Cappucino
; searching fi/latte
will return nothing if drink should be fi/Latte
customerfind all/true
or cf all/true
to display the complete list of all customers in CaféConnect.Examples:
customerfind n/Alice
or cf n/Alice
finds and lists all customers whose names contain Alice
.
customerfind n/John Doe
or cf n/John Doe
finds and lists all customers whose names contain either John
or Doe
.
customerfind fi/Latte
or cf fi/Latte
finds and lists all customers who has favourite item Latte
customerfind vc/8
or cf vc/8
finds and lists all customers who has Visit Count
of 8.
customerfind all/true
or cf all/true
lists all customers in CaféConnect.
These are the before and after images of the second example
Before searching for a customer
After searching for a customer
staffadd
or sa
Adds a staff to the staff list with required details such as staff ID, name, phone, email, address, role, shift, hours worked, and performance rating.
Format: staffadd sid/STAFF_ID n/NAME p/PHONE e/EMAIL a/ADDRESS role/ROLE shift/SHIFT_TIMING hours/HOURS_WORKED rating/PERFORMANCE_RATING [t/TAG] [r/REMARK]...…
STAFF_ID
should start with an 'S' (case-insensitive) followed by digits (e.g., S1001, s1001) and must not exceed 10 characters. Duplicate staff IDs are not allowed.STAFF_ID
input. e.g. S00045 will be treated as S45NAME
should only contain alphanumeric characters and spaces, and it should not be blank and must not be longer than 50 charactersPHONE
should only contain digits, and it should be between 3 and 20 digits longEMAIL
must be a valid email addressADDRESS
can take any value, and it should not be blank and must not be longer than 100 charactersROLE
can take any value, and it should not be blank and must not be longer than 50 charactersSHIFT_TIMING
can take any value, and it should not be blank and must not be longer than 50 charactersHOURS_WORKED
should only contain digitsPERFORMANCE_RATING
should only contain digits, and it should be between 0 to 5.0 (inclusive) with at most one decimal placeREMARK
can take any value up to 50 characters, optional fieldTAG
can take any alphanumeric value, but should not contain spaces, optional fieldExamples:
staffadd sid/S1234 n/Alice Tan p/81234567 e/alice@example.com a/123, Jurong West Ave 6, #08-111 role/Barista shift/9am-5pm hours/40 rating/4.5 t/fullTime t/experienced r/Pretty
sa sid/S0101 n/Bob Lim p/82019292 e/bob@example.com a/123, Tampines West Ave 7, #09-121 role/Barista shift/5pm-11pm hours/30 rating/4.5 t/fullTime r/Handsome
These are the before and after images of the first example
Before adding the staff
After adding the staff
quickstaffadd
or qsa
A quick way to add staff with minimal required information.
Format: quickstaffadd <STAFF_ID>:<NAME>:<PHONE>
STAFF_ID
should start with an 'S' (case-insensitive) followed by digits (e.g., S1001, s1001) and must not exceed 10 characters. Duplicate staff IDs are not allowedNAME
should only contain alphanumeric characters and spaces, and it should not be blank and must not be longer than 50 charactersPHONE
should only contain digits, and it should be between 3 and 20 digits longEmail
: default@gmail.comAddress
: emptyRole
: emptyShift Timing
: emptyHours Worked
: 0Performance Rating
: 0Remark
: "From quickstaffadd. Edit with staffedit."Examples:
quickstaffadd S0102:Ali:98291029
qsa S0103:Bali:89201029
These are the before and after images of the first example
Before adding the staff
After adding the staff
staffdelete
or sd
Deletes the specified staff from the address book.
Format: staffdelete INDEX
INDEX
.INDEX
refers to the index number shown in the displayed staff list.INDEX
must be a positive integer 1, 2, 3, …INDEX
must be a valid index number (e.g. 5 is not valid when there is less than five staff in the displayed list).Examples:
staffdelete 2
deletes the 2nd staff in the address book.sd 4
when you only have three staff returns an error message.These are the before and after images of the first example
Before deleting the staff
After deleting the staff
staffedit
or se
Edits the details of an existing staff in the staff list.
Format: staffedit INDEX [sid/STAFF_ID] [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [role/ROLE] [shift/SHIFT_TIMING] [hours/HOURS_WORKED] [rating/PERFORMANCE_RATING] [t/TAG] [r/REMARK]...
INDEX
.INDEX
refers to the index number shown in the displayed staff list.INDEX
must be a positive integer 1, 2, 3, …INDEX
must be a valid index number (e.g., 5 is not valid when there are fewer than five staff members in the displayed list).t/
without specifying any tags after it.Examples:
staffedit 1 p/99994567 e/newemail@example.com
edits the phone number and email address of the 1st staff to be 99994567
and newemail@example.com
respectively.se 2 n/Betsy Crower sid/S002 t/
edits the name of the 2nd staff to be Betsy Crower
, changes the staff ID to S002
, and clears all existing tags.These are the before and after images of the first example
Before editing staff details
After editing staff details
stafffind
or sf
Finds and lists all staffs in the staff list whose names contain any of the specified keywords. The search is case-insensitive, meaning it will match names regardless of letter casing.
Format: stafffind [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [sid/STAFF_ID] [role/ROLE] [shift/SHIFT_TIMING] [hours/HOURS_WORKED] [rating/PERFORMANCE_RATING] [t/TAG]...
Format: stafffind all/true
(to list all staff)
NAME
should contain at least 3 characters, or the command may not work as expected.all/true
.[n/NAME]
do not need to match the full name exactly; partial matches within the name are included. For example, searching n/john doe
will match John Doe
, John Tan
, or Jane Doe
.ali
can find Alice
, but al
might not match successfully.[n/NAME]
is case-insensitive. For example, searching for alice
will match Alice
, ALICE
, or aLiCe
.n/all
will match ali.[p/PHONE]
[e/EMAIL]
[a/ADDRESS]
[sid/STAFF_ID]
[role/ROLE]
[shift/SHIFT_TIMING]
[hours/HOURS_WORKED]
[rating/PERFORMANCE_RATING]
[t/TAG]
MUST match the field exactly and is case-sensitive. For example , searching role/Barist
will return nothing if role should be role/Barista
; searching role/chef
will return nothing if role should be role/Chef
stafffind all/true
or sf all/true
to display the complete list of all staff in CaféConnect.Examples:
stafffind n/Alice
or sf n/Alice
finds and lists all staffs whose names contain Alice
.stafffind n/John Doe
or sf n/John Doe
finds and lists all staffs whose names contain either John
or Doe
.stafffind role/Chef
or sf role/Chef
finds and lists all staffs whose role is Chef
.stafffind hours/10
or sf hours/10
finds and lists all staffs who have Hours Worked
of 10.stafffind all/true
or sf all/true
lists all staffs in CaféConnect.These are the before and after images of the second example
Before searching for a staff
After searching for a staff
drinkadd
or da
Adds a new drink to the drink catalog with details such as name, price, and category.
Format: drinkadd n/NAME p/PRICE c/CATEGORY
NAME
is the name of the drinkPRICE
should be a positive number with up to 2 decimal places and must be at least $0.01.CATEGORY
is the classification of the drink (e.g., Coffee, Tea, etc.)Examples:
drinkadd n/Iced Latte p/4.50 c/Coffee
adds an Iced Latte under the Coffee category with a price of $4.50da n/Chai Tea p/3.80 c/Tea
adds a Chai Tea under the Tea category with a price of $3.80These are the before and after images of the first example
Before adding the drink
After adding the drink
drinkdelete
or dd
Deletes the specified customer from CaféConnect.
Format: drinkdelete INDEX
INDEX
.INDEX
refers to the index number shown in the displayed drink list.INDEX
must be a positive integer 1, 2, 3, …INDEX
must be a valid index number (e.g. 5 is not valid when there is less than five drinks in the displayed list).Examples:
drinkdelete 1
deletes the 1st drink in the drink list.dd 4
when you only have three drinks returns an error message.These are the before and after images of the first example
Before deleting the drink
After deleting the drink
purchase
or p
Records a purchase for a customer, updating their total spent, visit count, and reward points. Optionally, allows users to redeem reward points to pay for the purchase.
Format: purchase INDEX n/DRINK_NAME [redeem/true]
INDEX
.INDEX
refers to the index number shown in the displayed customer list.INDEX
must be a positive integer 1, 2, 3, …INDEX
must be a valid index number (e.g., 5 is not valid when there are fewer than five customers in the displayed list).DRINK_NAME
must match a drink that exists in the drink catalog.redeem/true
):
Examples:
purchase 1 n/Espresso
records a regular purchase of an Espresso for the 1st customer, updating their total spent and adding reward points.p 2 n/Cappuccino redeem/true
redeems a Cappuccino for the 2nd customer using their reward points.These are the before and after images of a standard purchase using the first example
Before standard purchase
After standard purchase (points added and total spent increased)
These are the before and after images of a redemption purchase using the second example
Before redemption purchase
After redemption purchase (points deducted, total spent unchanged)
quickpurchase
or qp
A quick way to record purchases with minimal required information.
Format: quickpurchase INDEX:DRINK_NAME[:r]
INDEX
.DRINK_NAME
must match a drink that exists in the drink catalog.:r
at the end to indicate this is a redemption purchase using reward points.:r
, it will be processed as a standard purchase.Examples:
quickpurchase 1:Espresso
records a regular purchase of an Espresso for the 1st customer.qp 1:Espresso:r
redeems an Espresso for the 1st customer using reward points.These are the before and after images of a standard quick purchase using the first example
Before standard purchase
After standard purchase (points added and total spent increased)
These are the before and after images of a redemption quick purchase using the second example
Before redemption purchase
After redemption purchase (points deducted, total spent unchanged)
exit
Exits the program.
Format: exit
CaféConnect data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
CaféConnect data are saved automatically in the following JSON files:
[JAR file location]/data/addressbook.json
[JAR file location]/data/drinkcatalog.json
[JAR file location]/preferences.json
Advanced users are welcome to update data directly by editing these data files.
Caution:
If your changes to any data file makes its format invalid, CaféConnect will discard all data in that file and start with an empty data file at the next run. Hence, it is recommended to take a backup of the files before editing them.
Furthermore, certain edits can cause CaféConnect to behave in unexpected ways (e.g., if a value entered is outside the acceptable range for the address book, drink catalog, or user preferences). Therefore, edit the data files only if you are confident that you can update them correctly.
Get your questions or doubts about CaféConnect's functionality and details answered here. If you have further questions, you can contact us through our email cafeconnect@gmail.com.
Ans: CaféConnect's data is saved automatically as JSON files [JAR file location]/data/addressbook.json
for customer and staff data, [JAR file location]/data/drinkcatalog.json
for drink catalog data, and [JAR file location]/preferences.json
for user preferences. You can make a backup of these files if you wish to.
Ans: Install CaféConnect on the other computer. Then copy and replace the following files from your current installation to the new one:
[JAR file location]/data/addressbook.json
(for customer and staff data)[JAR file location]/data/drinkcatalog.json
(for drink catalog data)[JAR file location]/preferences.json
(for user preferences)Ans: You are strongly encouraged to not edit the JSON data files directly. You can use the commands as mentioned above to manage any data. Should the changes made to the data files cause the format to be invalid, CaféConnect will discard all data and start with an empty data file. It is highly recommended to make a copy of the data files before editing them.
Users should only edit the data files only if they are confident in updating them correctly.
Ans: Data entries are valid as long as it follows the data entry rules enforced by the application, and are achievable using the available commands.
Examples:
Having C001
is an invalid customerId
field for a customer, if it's already assigned to another customer, as there is no sequence of commands that will lead to duplicate customer IDs.
Having regular
is a valid tag
field for a customer, as the user can customeradd
a customer and add the tag via t/regular
.
Ans: Currently, customers earn 10 points for every $1 spent on purchases. Points are automatically updated when you record a purchase using the purchase
command.
Ans: CaféConnect doesn't have a built-in expiration for reward points. Points accumulate indefinitely until used.
Ans: The system will display an error message indicating that the drink was not found in the catalog.
Ans: New entries will not be inserted in any specific order. They are inserted to the bottom of the list.
Ans: Yes, all changes to customer or staff data are immediately reflected in the UI. The information panels will update to show the current state of your data.
Ans: Yes, you can use the quick version of these commands:
qca C0102:Charlie:97285712
qsa S0102:Ali:98291029
In fact, the corresponding quick version works for purchases made:
qp 1:Latte
qp 1:Latte:r
Quick commands streamline operations by minimizing keystrokes and simplifying syntax, making them ideal for fast-paced café environments.
Ans: Currently, CaféConnect doesn't support direct importing from spreadsheet files. You'll need to enter customer and staff data manually.
Ans: Use the staffedit
command to edit worked hours to a staff member's record.
Ans: Yes, the visit count can be edited via the customeredit
.
stafffind
or customerfind
returns no resultsAns: Use the stafffind all/true
command to show all staff, or customerfind all/true
to show all customers again.
Ans: Use the stafffind all/true
command to switch to the staff tab, or customerfind all/true
to switch back to the customer tab.
If you are facing problems while setting up or using CaféConnect, we want to help you. This section covers some of the common problems and ways to solve them.
Check that you have the cafeconnect.jar
in the correct folder and copied the correct file path into the terminal. Check that you have Java 17
or above installed on your computer. Follow the correct set of instructions based on your operating system.
customeradd
vs customradd
)n/
for name)fi/
or role/
), check for exact spelling and capitalizationcustomerfind all/true
or stafffind all/true
to reset the view/data
folder aren't marked as read-onlyMultiple Screens: When using multiple screens, if you move the application to a secondary screen and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the preferences.json
file created by the application before running the application again.
Help Window Visibility: If you minimize the Help Window and then run the help
command (or use the Help
menu, or the keyboard alias F1
) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.
Search Limitations: Very short search strings (less than 3 characters) may not always produce expected results. Use longer search terms for more reliable searching.
UI Scaling: On high-DPI displays, some UI elements may appear too small or improperly scaled. Adjusting your system's display scaling settings may help.
Long-running Commands: Commands that process large amounts of data (like searching through many entries) may cause the UI to become temporarily unresponsive. This is normal behavior, and the application should become responsive again once the operation completes.
Special Characters: Using special characters in names, addresses, or other fields is often not allowed. Even if possible, these may cause display issues or unexpected behavior in some cases. Stick to standard alphanumeric characters when possible.
Memory Usage: After extended use with many customer/staff entries, the application may use more memory than expected. Restarting the application periodically can help maintain optimal performance.
Command | Format | Examples |
---|---|---|
Add Customer | customeradd cid/CUSTOMER_ID n/NAME p/PHONE e/EMAIL a/ADDRESS rp/REWARD_POINTS vc/VISIT_COUNT fi/FAVOURITE_ITEM ts/TOTAL_SPENT [r/REMARK] [t/TAG]… | customeradd cid/C001 n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 rp/150 vc/8 fi/Cappuccino ts/120 r/Handsome t/regular |
Add Customer (Alias) | ca cid/CUSTOMER_ID n/NAME p/PHONE e/EMAIL a/ADDRESS rp/REWARD_POINTS vc/VISIT_COUNT fi/FAVOURITE_ITEM ts/TOTAL_SPENT [r/TAG] [t/TAG]… | ca cid/C001 n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 rp/150 vc/8 fi/Cappuccino ts/120 r/Handsome t/regular |
Quick Add Customer | quickcustomeradd <CUSTOMER_ID>:<NAME>:<PHONE> | quickcustomeradd C0102:Charlie:97285712 |
Quick Add Customer (Alias) | qca <CUSTOMER_ID>:<NAME>:<PHONE> | qca C0102:Charlie:97285712 |
Delete Customer | customerdelete INDEX | customerdelete 2 |
Delete Customer (Alias) | cd INDEX | cd 2 |
Edit Customer | customeredit INDEX [cid/CUSTOMER_ID] [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [rp/REWARD_POINTS] [vc/VISIT_COUNT] [fi/FAVOURITE_ITEM] [ts/TOTAL_SPENT] [t/TAG]... | customeredit 1 p/99994567 e/newemail@example.com |
Edit Customer (Alias) | ce INDEX [cid/CUSTOMER_ID] [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [rp/REWARD_POINTS] [vc/VISIT_COUNT] [fi/FAVOURITE_ITEM] [ts/TOTAL_SPENT] [t/TAG]... | ce 1 p/99994567 e/newemail@example.com |
Find Customer | customerfind [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [cid/CUSTOMER_ID] [rp/REWARD_POINTS] [vc/VISIT_COUNT] [fi/FAVOURITE_ITEM] [ts/TOTAL_SPENT] [t/TAG]... | customerfind n/John Doe |
Find Customer (Alias) | cf [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [cid/CUSTOMER_ID] [rp/REWARD_POINTS] [vc/VISIT_COUNT] [fi/FAVOURITE_ITEM] [ts/TOTAL_SPENT] [t/TAG]... | cf n/John Doe |
List All Customers | customerfind all/true | - |
List All Customers (Alias) | cf all/true | - |
Add Staff | staffadd sid/STAFF_ID n/NAME p/PHONE e/EMAIL a/ADDRESS role/ROLE shift/SHIFT_TIMING hours/HOURS_WORKED rating/PERFORMANCE_RATING [r/REMARK] [t/TAG]... | staffadd sid/S1234 n/Alice Tan p/81234567 e/alice@example.com a/123, Jurong West Ave 6, #08-111 role/Barista shift/9am-5pm hours/40 rating/4.5 r/Best Barista t/fullTime |
Add Staff (Alias) | sa sid/STAFF_ID n/NAME p/PHONE e/EMAIL a/ADDRESS role/ROLE shift/SHIFT_TIMING hours/HOURS_WORKED rating/PERFORMANCE_RATING [r/REMARK] [t/TAG]... | sa sid/S1234 n/Alice Tan p/81234567 e/alice@example.com a/123, Jurong West Ave 6, #08-111 role/Barista shift/9am-5pm hours/40 rating/4.5 r/Best Barista t/fullTime |
Quick Add Staff | quickstaffadd <STAFF_ID>:<NAME>:<PHONE> | quickstaffadd S0102:Ali:98291029 |
Quick Add Staff (Alias) | qsa <STAFF_ID>:<NAME>:<PHONE> | qsa S0102:Ali:98291029 |
Delete Staff | staffdelete INDEX | staffdelete 2 |
Delete Staff (Alias) | sd INDEX | sd 2 |
Edit Staff | staffedit INDEX [sid/STAFF_ID] [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [role/ROLE] [shift/SHIFT_TIMING] [hours/HOURS_WORKED] [rating/PERFORMANCE_RATING] [t/TAG]... | staffedit 1 p/99994567 e/newemail@example.com |
Edit Staff (Alias) | se INDEX [sid/STAFF_ID] [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [role/ROLE] [shift/SHIFT_TIMING] [hours/HOURS_WORKED] [rating/PERFORMANCE_RATING] [t/TAG]... | se 1 p/99994567 e/newemail@example.com |
Find Staff | stafffind [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [sid/STAFF_ID] [role/ROLE] [shift/SHIFT_TIMING] [hours/HOURS_WORKED] [rating/PERFORMANCE_RATING] [t/TAG]... | stafffind n/Alice |
Find Staff (Alias) | sf [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [sid/STAFF_ID] [role/ROLE] [shift/SHIFT_TIMING] [hours/HOURS_WORKED] [rating/PERFORMANCE_RATING] [t/TAG]... | sf n/Alice |
List All Staff | stafffind all/true | - |
List All Staff (Alias) | sf all/true | - |
Add Drink | drinkadd n/NAME p/PRICE c/CATEGORY | drinkadd n/Iced Latte p/4.50 c/Coffee |
Add Drink (Alias) | da n/NAME p/PRICE c/CATEGORY | da n/Iced Latte p/4.50 c/Coffee |
Delete Drink | drinkdelete INDEX | drinkdelete 1 |
Delete Drink (Alias) | dd INDEX | dd 1 |
Purchase | purchase INDEX n/DRINK_NAME [redeem/true] | purchase 1 n/Espresso or purchase 2 n/Cappuccino redeem/true |
Purchase (Alias) | p INDEX n/DRINK_NAME [redeem/true] | p 1 n/Espresso or p 2 n/Cappuccino redeem/true |
Quick Purchase | quickpurchase INDEX:DRINK_NAME[:r] | quickpurchase 1:Espresso or quickpurchase 2:Cappuccino:r |
Quick Purchase (Alias) | qp INDEX:DRINK_NAME[:r] | qp 1:Espresso or qp 2:Cappuccino:r |
Switch to Staff Tab | stafffind all/true | - |
Switch to Customers Tab | customerfind all/true | - |
Switch to Drinks Tab | drinkfind all/true | - |
Help | help | - |
Term | Definition |
---|---|
Action | The task carried out by the CaféConnect application such as Add, Delete, Edit entries. |
Alphanumeric | Consisting of both letters and numbers. |
Command | The input the user types into the CaféConnect application's command box to carry out a particular action. |
Command Box | The input bar at the bottom of the CaféConnect application which allows users to type in a string command. |
Command Line Interface (CLI) | An interface that the user interacts with by typing text commands instead of using a mouse to click on buttons or icons. |
Customer ID | A unique identifier for each customer in the system, starting with 'C' followed by digits (e.g., C001). |
Favourite Item | A drink or food item that a particular customer frequently orders or prefers. |
Graphical User Interface (GUI) | An interface that the user interacts with using visual elements like buttons, icons and windows. |
Home Folder | The Folder that the CaféConnect Application is located when run from the command line. |
Index | The application number of the customer or staff displayed in the list. |
Jar | The file format used for the CaféConnect application. |
JDK | JDK stands for Java Development Kit, and it's a software development environment used for developing applications and applets using the Java programming language. |
JSON | A lightweight data-interchange format that is easy for humans to read and write. |
Parameter | Additional information required by a command to perform its action. |
Performance Rating | A numeric value between 0 and 5.0 that represents a staff member's performance evaluation. |
Prefix | A short identifier (e.g., n/, p/) that indicates what type of information follows in a command. |
Redemption | Using accumulated reward points to pay for a purchase instead of cash. |
Reward Points | Points earned by customers with each purchase that can be redeemed for future purchases. |
Shift Timing | The working hours of a staff member (e.g., "9am-5pm"). |
Staff ID | A unique identifier for each staff member in the system, starting with 'S' followed by digits (e.g., S001). |
Tab | A section of the CaféConnect interface that organizes related information (Staff, Customers, or Drinks Menu). |
Tag | An optional label that can be attached to a customer or staff entry for easy categorization. |
Total Spent | The cumulative amount a customer has spent at the café, excluding redemption purchases. |
Visit Count | The number of times a customer has visited the café, including both standard purchases and redemptions. |
We would like to acknowledge the following contributions:
We started with a general AB3 user guide template and adapted it to the functional requirements of CaféConnect. We also used MarkBind which is a third party library to generate a dynamic user guide website from Markdown text.
AI tools such as ChatGPT were also used to check for grammatical errors.