User Guide
Introduction
A warm welcome to all home bakers to our Strack.io User Guide! Strack.io is designed to cater to all your needs, be it creating your menu, recording of customer information, or even tracking of orders. Strack.io aims to help you reduce the number of errors and improve your overall quality of life when tracking and managing orders. Here, you will find all the necessary information you need to kickstart your Strack.io journey. Don’t forget to make snacks, keep track, and use Strack!
Purpose
This User Guide serves both as a tutorial and as an instruction manual to our Strack.io application. To start learning using our app, you can take a look at the Quick Start section, and try out the different commands for yourself. If you are not sure about the format of any command, you can refer to the Features section for a detailed explanation. At the end of this User Guide, we have also provided a glossary of terminologies and a succinct list of commands for your easy reference during daily usage.
As you read through this user guide, you will learn about:
- How to use different commands provided by our app, illustrated by comprehensive examples
- Constraints of input format in order for our app to run normally
- Auxiliary capabilities of Strack.io application, including saving and exportation of data.
Overview
Strack.io is a desktop app for home bakers to manage contacts of their customers, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Strack.io can get your customer and order management tasks done faster than traditional GUI apps.
- Introduction
- Purpose
- Overview
- Quick start
-
Features
- Viewing help:
help - Adding a product to the menu:
menu - Editing a product on the menu:
edit - Deleting a product from the menu:
delete - Adding a customer:
add - Listing all customers and orders:
list - Editing a customer:
edit - Locating customers and orders:
find - Deleting a customer:
delete - Creating of orders:
order - Adding of products to order:
product - Editing of orders:
edit - Editing of an order’s deadline:
edit - Staging of orders:
stage - Completing of orders:
complete - Cancelling of orders:
cancel - Clearing all entries:
clear - Exiting the program:
exit - Saving the data
- Editing the data file
- Viewing help:
- FAQ
- Known issues and constraints
- Glossary
- Command summary
Quick start
-
Ensure you have Java
11or above installed in your Computer. -
Download the latest
strackio.jarfrom here. -
Copy the file to the folder you want to use as the home folder for Strack.io.
-
Open a command terminal,
cdinto the folder you put the jar file in, and use thejava -jar strackio.jarcommand to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

-
Type the command in the command box and press Enter to execute it. e.g. typing
helpand pressing Enter will open the help window.
Some example commands you can try:-
list: Lists all customers and orders. -
menu pn/Cupcake pc/2 ps/5: Adds a product namedCupcaketo the menu. -
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01: Adds a contact namedJohn Doeto the customer list. -
delete c/3: Deletes the 3rd contact shown in the current customer list. -
clear: Deletes all customers contacts, orders and products in Strack.io. -
exit: Exits the app.
-
-
Refer to the Features below for details of each command.
Features
Notes about the command format:
-
Words in
UPPER_CASEare the parameters to be supplied by the user.
e.g. inadd n/NAME,NAMEis a parameter which can be used asadd n/John Doe. -
Items in square brackets are optional.
e.g.n/NAME [t/TAG]can be used asn/John Doe t/friendor asn/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/friend,t/friend t/familyetc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also acceptable. -
Extraneous parameters for commands that do not take in parameters (such as
help,list,exitandclear) will be ignored.
e.g. if the command specifieshelp 123, it will be interpreted ashelp. -
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.
Viewing help: help
You can show a message explaining how to access the help page.

Format: help
Adding a product to the menu: menu
You can start off by adding a product to be displayed on the product menu.
Format: menu pn/PRODUCT_NAME pc/PRODUCT_COSTS ps/PRODUCT_SALES
-
PRODUCT_COSTSrefer to the costs incurred to make the product. -
PRODUCT_SALESrefer to how much the product is being sold for. -
PRODUCT_NAMErefer to the name of the product being sold. - The order of which
pc/PRODUCT_COSTS,ps/PRODUCT_SALESorpn/PRODUCT_NAMEis being input does not matter. - Decimals are supported.
Example:
-
menu pn/Cupcake pc/1 ps/3.50adds the productCupcaketo the menu.

Editing a product on the menu: edit
You can edit an existing product on the product menu.
Format: edit m/MENU_ID [pn/PRODUCT_NAME] [pc/PRODUCT_COSTS] [ps/PRODUCT_SALES]
- Edits the product of the specified
MENU_ID. TheMENU_IDrefers to the number reflected on the product menu beside the product name. TheMENU_IDmust 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.
Editing a product on the menu will not update the products on existing orders.
Example:
-
edit m/1 pn/PieEdits the product name of the product withMENU_IDof1to bePie.

Deleting a product from the menu: delete
You can delete the specified product from the menu.
Format: delete m/MENU_ID
- Deletes the product of the specified
MENU_ID. - The
MENU_IDrefers to the number reflected on the product menu beside the product name. - The
MENU_IDmust be a positive integer 1, 2, 3, …
Example:
-
delete m/1deletes the product on the menu with aMENU_IDof1.

Adding a customer: add
You can add a customer to Strack.io.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
- Names must be unique.
Adding two customers with the same name, will result in future order creation to be tagged to the first customer added with the same phone number.
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal
Listing all customers and orders: list
You can show a list of all customers and orders in your address book.
Format: list
Editing a customer: edit
You can edit an existing customer in your address book.
Format: edit c/CUSTOMER_ID [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
- Edits the person of the specified
CUSTOMER_ID.CUSTOMER_IDrefers to the number shown beside the customer’s name.CUSTOMER_IDmust 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 customer will be removed i.e. adding of tags is not cumulative.
- You can remove all the person’s tags by typing
t/without specifying any tags after it.
Examples:
-
edit c/1 p/91234567 e/johndoe@example.comEdits the phone number and email address of the person withCUSTOMER_IDof1to be91234567andjohndoe@example.comrespectively. -
edit c/2 n/Betsy Crower t/Edits the name of the person withCUSTOMER_IDof2to beBetsy Crowerand clears all existing tags.
Locating customers and orders: find
You can find customers based on name, phone number, address or email and find orders based on ORDER_ID in Strack.io.
Format: find [n/NAME] [a/ADDRESS] [p/PHONE_NUMBER] [e/EMAIL] [o/ORDER_ID]
- The search is case-insensitive. e.g.
hanswill matchHans. - The order of the keywords does not matter. e.g.
Hans Bowill matchBo Hans. - At least one of the optional fields must be provided and only choose one field.
- You can add different keywords for one chosen field and customers with any matching keyword will be included.
- Only full words will be matched e.g.
Hanwill not matchHans. - Persons matching at least one of the specified information will be returned (i.e.
ORsearch).
Examples: -
n/Hans n/Bowill returnHans Gruber,Bo Yang
Examples:
-
find n/JohnreturnsjohnandJohn Doe. -
find n/alex n/JohnreturnsAlex,johnandJohn Doe.
-
find a/Lorongreturns customers with address that includesLorong. -
find p/85012345 p/12345678returns customers with phone number of85012345and12345678. -
find o/4 o/6returnsOrder 4andOrder 6.

Deleting a customer: delete
You can delete the specified customer from Strack.io.
Format: delete c/CUSTOMER_ID
- Deletes the customer of the specified
CUSTOMER_ID. - The
CUSTOMER_IDrefers to the number shown beside the customer name in the displayed customer contact. - The
CUSTOMER_IDmust be a positive integer 1, 2, 3, …
Examples:
-
listfollowed bydelete c/2deletes the person withCUSTOMER_IDof2in the address book. -
find Betsyfollowed bydelete c/1deletes the person withCUSTOMER_IDof1in the results of thefindcommand.

Creating of orders: order
Now that you have some customers and a product menu set up, you can now create and assign an order to a specified customer in Strack.io.
Format: order p/PHONE_NUMBER [by/DEADLINE]
- Orders are assigned to person with specified
PHONE_NUMBER. - There must be existing customers in the customer list and products in the menu.
-
DEADLINEis an optional fields that is used to keep track of an order’s deadline. -
- The format for deadline dates are dd/MM/yyyy.
- For single digit days or months, please precede them with a zero.
- Leaving
DEADLINEblank will make the order’s deadline marked asNot Specified. - Strack.io will prompt users to input products using the product command.
- Follow up with products to be added to the order using the following format. Format:
product m/MENU_ID pq/PRODUCT_QUANTITY. - You can refer to the menu for the
MENU_ID, i.e.1. CupcakeMENU_IDis1. - This can be repeated as many times as necessary.
Examples:
-
order p/87438807 by/08/04/2024will create an order for person with phone number87438807with a deadline08/04/2024, start adding products for the order to be shown.
Adding of products to order: product
You can add products on the menu into the most recently created order.
Format: product m/MENU_ID pq/PRODUCT_QUANTITY
- You can refer to the menu for the
MENU_ID, i.e.1. CupcakeMENU_IDis1. - This can be repeated as many times as necessary within one session of using Strack.io.
- This means closing Strack.io will no longer allow you to add products to the order you created previously.
Examples:
- Assuming you have already created an order in this session for the phone number
87438807, usingproduct m/1 pq/2andproduct m/2 pq/2will add products corresponding toMENU_ID1 and 2 in the menu, in this example it would becupcakesandcookiesrespectively.
Editing of orders: edit
You can edit an existing order of a customer in Strack.io.
Format: edit o/ORDER_ID m/MENU_ID pq/PRODUCT_QUANTITY
-
ORDER_IDis a unique number for each order. -
ORDER_IDrefers to the number shown under order id in the displayed customer’s contact or the order number in the order list - Products are edited based on
MENU_ID. - To remove product from order, specify
PRODUCT_QUANTITYas0.
Example:

-
edit o/4 m/3 pq/10will edit the order withORDER_IDof4and change the product associated withMENU_IDof3which istartsquantity to10.

Editing of an order’s deadline: edit
You can edit the deadline of an existing order of a specific customer in Strack.io.
Format: edit o/ORDER_ID by/DEADLINE
-
ORDER_IDis a unique number for each order. -
ORDER_IDrefers to the number shown under order id in the displayed customer’s contact or the order number in the order list - The format for deadline is dd/MM/yyyy
Example:
-
edit o/1 by/07/04/2024oredit o/1 by/12/10/2024will edit the deadline of the order withOrder_IDof1to07/04/2024or12/10/2024respectively.
Staging of orders: stage
You can move an order to the next stage, in the chain of the four stages defined by Strack.io, in order namely:
Under Preparation, Ready for Delivery, Sent for delivery and Received by customer.
However, you cannot go back to a previous stage.
Format: stage o/ORDER
-
ORDER_IDis a unique number for each order. - Any order just created will be in
Under Preparationstage.
Example:
- Suppose the order with
ORDER_ID1 is in initialUnder Preparationstage.

- Running
stage o/1once will move the order withORDER_ID1 toReady for Delivery.

- Running
stage o/1three or more times will move the order withORDER_ID1 toReceived by customer.

Completing of orders: complete
You can demarcate an order in Strack.io as complete. Strack.io will collate completed orders into a csv file.
The csv file can be accessed in this directory: [JAR file location]/data/completedorders.csv
Format: complete ORDER_ID
-
ORDER_IDis a unique number for each order. -
ORDER_IDcan accept multiple, uniqueORDER_IDto be marked as completed as shown in the example below. -
ORDER_IDwith at least one non-validORDER_IDvalue will be invalid.
Example:

-
complete 1 2 3will complete orders withORDER_IDs of1,2and3.

- This would be collated in the csv file in this directory:
[JAR file location]/data/completedorders.csv

Cancelling of orders: cancel
You can remove an ongoing order in your address book. Orders removed using cancel will not be logged into
completedorders.csv.
Format: cancel ORDER_ID
-
ORDER_IDis a unique number for each order.
Example:
-
cancel 3will cancel order withORDER_IDof3.

Clearing all entries: clear
You can clear all entries from Strack.io.
Format: clear
Exiting the program: exit
You can exit the program using a command.
Format: exit
Saving the data
Strack.io 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
Strack.io data are saved automatically as a JSON file [JAR file location]/data/addressbook.json. Advanced users are welcome to update data directly by editing that data file.
Furthermore, certain edits can cause Strack.io to behave in unexpected ways (e.g., if a value entered is outside of the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
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 Strack.io home folder.
Known issues and constraints
-
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.jsonfile created by the application before running the application again. - Constraint on number of customers, menu items and orders: <= 1 billion, which should be sufficient for almost all homemade bakers. Our app might be unable to handle numbers larger than that.
- Some fields, such as names of customers, are not wrapped in GUI. You can drag the window wider to see full text, which should be sufficient to accommodate almost all common names.
- Customer Names can only contain alphanumeric characters. If the name involves slashes or special alphabets, you have to use an alternative, such as using double space in place of slash.
- Error Messages and suggestions may not always be given in the most straight-forward way, often because slashes in commands may be interpreted in a few different ways. Refer to the user guide if you think error messages and suggestions shown in the app are unclear.
Glossary
Command summary
| Action | Format, Examples |
|---|---|
| Help | help |
| Add product to menu |
menu pn/PRODUCT_NAME pc/PRODUCT_COSTS ps/PRODUCT_SALESe.g., menu pn/cupcake pc/5 ps/10
|
| Edit product on menu |
edit m/MENU_ID [pn/PRODUCT_NAME] [pc/PRODUCT_COSTS] [ps/PRODUCT_SALES]e.g., edit m/1 pc/20
|
| Delete product on menu |
delete m/MENU_IDe.g., delete m/1
|
| Add customer |
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]… e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague
|
| List all contacts and orders | list |
| Edit customer |
edit c/CUSTOMER_ID [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…e.g., edit c/2 n/James Lee e/jameslee@example.com
|
| Find customer/order |
find [n/NAME] [p/PHONE_NUMBER] [a/ADDRESS] [e/EMAIL] [o/ORDER_ID]e.g., find n/James n/Jake find o/1
|
| Delete customer |
delete c/CUSTOMER_IDe.g., delete c/3
|
| Create order |
order p/PHONE_NUMBER [by/DEADLINE]e.g., order p/22224444 by/02/04/2024
|
| Add product to order |
product m/MENU_ID pq/PRODUCT_QUANTITYe.g., product m/1 pq/10
|
| Edit order |
edit o/ORDER_ID m/MENU_ID pq/PRODUCT_QUANTITYe.g., edit o/1 m/1 pq/10
|
| Edit order deadline |
edit o/ORDER_ID by/DEADLINEe.g., edit o/1 by/02/04/2024
|
| Stage order |
stage o/ORDER_IDe.g., stage o/1
|
| Complete order |
complete ORDER_IDe.g., complete 1
|
| Cancel order |
cancel ORDER_IDe.g., cancel 1
|
| Clear | clear |
| Exit | exit |