Hello and welcome to CaféConnect! Thanks for choosing us to help manage your café. We know running a café is no easy task. We know running a café is no walk in the park; from managing customer orders, handling staff schedules, and keeping everything running smoothly, it’s easy to feel like you’re juggling too much. But with CaféConnect, we make it simpler, so you can spend less time stressing and more time doing what you do best—serving great food and drinks.
Think of CaféConnect like your café’s personal assistant. Whether you're adding a customer's details or checking who’s working today, everything is just a quick command away. No need to waste time scrolling through contacts or digging through papers, everything you need is right in front of you, ready to go.
CaféConnect is like the swiss army knife of café management. Whether it’s adding customer info or organising staff, it’s quick, easy, and efficient. You won’t waste time clicking through complicated contact books or trying to find the right spreadsheet. Just use the command line, and you’ll get what you need in seconds. No fuss, no headache.
If you're a café owner who types fast and needs a simple way to manage customer details and staff, CafeConnect is for you! We know running a café can be hectic, so we designed CafeConnect to help you stay organised with just a few quick commands.
Ensure you have Java 17
or above installed in your Computer.
Mac users: Ensure you have the precise JDK version prescribed here.
Download the latest .jar
file from here.
Copy the file to the folder you want to use as the home folder for your CafeConnect Application .
Open a command terminal, cd
into the folder you put the jar file in, and use the java -jar cafeconnect.jar
command to run the application.
The CafeConnect home screen will appear in a few seconds, displaying the application title and navigation options.
CafeConnect Welcome Screen
From the home screen, you have two navigation options:
The Staff & Customer Management section shows the initial staff data:
Initial Staff Screen
This section allows you to:
The Drinks Menu section shows the initial drink catalog:
Initial Drinks Menu
This section allows you to:
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 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 CafeConnect.
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 CafeConnect.
purchase ind/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.
c C0102:Charlie:97285712
: Quickly adds a customer using the shortcut command.
exit
: Exits the app.
Refer to the Features below for details of each command.
Notes about the command format in CafeConnect:
Words in UPPER_CASE
are the parameters to be supplied by the user.
e.g. in customeradd cid/CUSTOMER_ID
, CUSTOMER_ID
is a parameter which can be used as customeradd cid/C001
.
Items in square brackets are optional.
e.g. n/NAME [t/TAG]
can be used as n/John Doe t/regular
or as n/John Doe
.
Items with …
after them can be used multiple times including zero times.
e.g. [t/TAG]…
can be used as (i.e. 0 times),
t/vip
, t/vip t/regular
etc.
Parameters can be in any order.
e.g. if the command specifies n/NAME p/PHONE
, p/PHONE n/NAME
is also acceptable.
Shortcut commands (c
and s
) require parameters in the exact order shown.
e.g. c C0102:Charlie:97285712
must have Customer ID, then Name, then Phone in that order.
Customer IDs must start with 'C' followed by digits (e.g., C1001), and Staff IDs must start with 'S' followed by digits (e.g., S1001).
Extraneous parameters for commands that do not take parameters (such as help
) will be ignored.
e.g. if the command specifies help 123
, it will be interpreted as help
.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
help
Shows a message explaning how to access the help page.
Format: help
customeradd
or c
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]…
CUSTOMER_ID
should start with a 'C' followed by digits, e.g., C1001NAME
should only contain alphanumeric characters and spaces, and it should not be blankPHONE
should only contain digits, and it should be at least 3 digits longEMAIL
must be a valid email address.ADDRESS
can take any value, and it should not be blankREWARD_POINTS
should only contain digitsVISIT_COUNT
should only contain digitsFAVOURITE_ITEM
can take any value, and it should not be blankTOTAL_SPENT
should only contain digits, representing the amount in dollarsExamples:
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
customeradd 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
customeradd
or c
(shortcut)An extension of the customeradd command above, useful when there is a need to input customer information quickly into the system.
Format: c <CUSTOMER_ID>:<NAME>:<PHONE>
CUSTOMER_ID
should start with a 'C' followed by digits, e.g., C1001NAME
should only contain alphanumeric characters and spaces, and it should not be blankPHONE
should only contain digits, and it should be at least 3 digits longExamples:
c C0102:Charlie:97285712
c C0103:Charles:80192832
These are the before and after images of the first example
Before adding the customer
After adding the customer
customerdelete
Deletes the specified customer from CafeConnect.
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.customerdelete 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
[coming in v1.4]
Details coming soon ...
staffadd
or s
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]...…
STAFF_ID
should start with a 'S' followed by digits, e.g., S1001NAME
should only contain alphanumeric characters and spaces, and it should not be blankPHONE
should only contain digits, and it should be at least 3 digits longEMAIL
must be a valid email addressADDRESS
can take any value, and it should not be blankROLE
can take any value, and it should not be blankSHIFT_TIMING
should only contain digitsHOURS_WORKED
should only contain digitsPERFORMANCE_RATING
can take any value, and it should not be blankTAG
can take any value, 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
staffadd 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
These are the before and after images of the first example
Before adding the staff
After adding the staff
staffadd
or s
(shortcut)An extension of the staffadd command above, useful when there is a need to input staff information quickly into the system.
Format: s <STAFF_ID>:<NAME>:<PHONE>
STAFF_ID
should start with a 'S' followed by digits, e.g., S1001NAME
should only contain alphanumeric characters and spaces, and it should not be blankPHONE
should only contain digits, and it should be at least 3 digits longExamples:
s S0102:Ali:98291029
s S0103:Bali:89201029
These are the before and after images of the first example
Before adding the staff
After adding the staff
staffdelete
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.staffdelete 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
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]...
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.staffedit 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
hoursadd
Adds number of hours worked for a staff.
Format: hoursadd ind/<INDEX> h/<HOURS>
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 customers in the displayed list).HOURS
is the desired number of hours to add to the staff's total hours worked.Examples:
hoursadd ind/1 h/5
adds 5 hours worked to the 1st staff in the list.hoursadd ind/9 h/5
when you have less than 9 staff returns an error.These are the before and after images of the first example
Before adding hours worked for the staff
After adding hours worked for the staff
drinkadd
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 placesCATEGORY
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.50drinkadd 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
Deletes the specified customer from CafeConnect.
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.drinkdelete 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 customer
After deleting the customer
purchase
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.purchase 2 n/Cappuccino redeem/true
redeems a Cappuccino for the 3rd 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)
exit
Exits the program.
Format: exit
CafeConnect data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
CafeConnect 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, CafeConnect 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 CafeConnect 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 CafeConnect's functionality and details answered here. If you have further questions, you can contact us through our email cafeconnect@gmail.com.
Ans: CafeConnect'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 CafeConnect 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, CafeConnect 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, if they are achievable through a sequence of 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: CafeConnect 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 shortcut commands:
c C0102:Charlie:97285712
s S0102:Ali:98291029
These shortcuts allow you to quickly add basic information, which you can later edit to add more details if needed.
Ans: Currently, CafeConnect doesn't support direct importing from spreadsheet files. You'll need to enter customer and staff data manually.
Ans: Use the hoursadd ind/INDEX h/HOURS
command to add worked hours to a staff member's record. The hours will be added to their current total.
Ans: No, the visit count is automatically incremented each time you record a purchase for that customer.
preferences.json
file created by the application before running the application again.help
command (or use the Help
menu, or the keyboard shortcut 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.Action | 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 [t/TAG]… e.g., 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 t/regular |
Add Customer (Shortcut) | c <CUSTOMER_ID>:<NAME>:<PHONE> e.g., c C0102:Charlie:97285712 |
Delete Customer | customerdelete INDEX e.g., customerdelete 2 |
Edit Customer | details to be added soon... |
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 [t/TAG]... e.g., 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 |
Add Staff (Shortcut) | s <STAFF_ID>:<NAME>:<PHONE> e.g., s S0102:Ali:98291029 |
Delete Staff | staffdelete INDEX e.g., staffdelete 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]... e.g., staffedit 1 p/99994567 e/newemail@example.com |
Add Hours | hoursadd ind/INDEX h/HOURS e.g., hoursadd ind/1 h/5 |
Add Drink | drinkadd n/NAME p/PRICE c/CATEGORY e.g., drinkadd n/Iced Latte p/4.50 c/Coffee |
Delete Drink | drinkdelete INDEX e.g., drinkdelete 2 |
Purchase | purchase INDEX n/DRINK_NAME [redeem/true] e.g., purchase 1 n/Espresso or purchase 2 n/Cappuccino redeem/true |
Help | help |