Overview

Introducing Trackr - the ultimate desktop application designed to simplify the delivery management process for your home business!

With Trackr, you can seamlessly manage your suppliers, orders and tasks.

It utilizes a Command Line Interface (CLI), while still enjoying the benefits of a user-friendly Graphical User Interface (GUI).

Say goodbye to the hassle of Excel and the stress of time constraints! Whether you’re a busy home business owner or simply looking for an efficient and streamlined solution, Trackr is the perfect fit for you. Experience the convenience of delivery management like never before with Trackr.

About This Guide

This guide shows you the relevant information for setting up and using Trackr to manage your suppliers, orders and tasks.

You can click on any of the links below to navigate to the respective sections for more information.

Table of Contents


1 Quick start

1.1 Prerequisites

1.1.1 Java

Ensure you have Java 11 or above installed. Java is the language that your computer uses to understand Trackr.

:bulb: Tip

How to check your current Java version:

Step 1. Open up Command Prompt (Windows) or Terminal (Mac and Linux).

Step 2. Type and run the command java -version.

Step 3. Check the version number provided (xxx) is at least 11.

An example is shown below.

  > java -version
  java version "xxx" <Other information>

1.1.2 Glossary

  • Mainstream OS: Windows, Linux, Mac
  • CLI: Command-Line Interface
  • GUI: Graphical User Interface
  • Supplier: Supplier refers to someone whom the user seasonally or frequently orders goods from
  • Customer: Customer refers to someone whom the user receives an order from
  • Order: Order refers to the customers’ orders the user accepts
  • Task: Task refers to any to-dos the user may have, it need not be related to suppliers or orders (For instance, it can be about tidying inventory)
  • Menu Item: Menu Item refers to any inventory/ stock that the user is selling to customers.
  • Tag: Tags are associated with suppliers, users can tag the supplier with any keyword they want, number of tags are not restricted
  • Status: Statuses are associated with tasks and orders, one entry of task/order can only have one status and the type of status that can be added is restricted

1.2 Installation

Step 1. Download the latest trackr.jar file from here.

Step 2. Copy the file to the folder where you will use Trackr.

Step 3. Double-click on the trackr.jar file.

:bulb: Tip

Trackr does not open?

Step 1. Open a command terminal.

Step 2. Type in java -jar (Keep in mind of the space at the end).

Step 3. Drag and drop trackr.jar into the command terminal.

Step 4. Press enter and execute the command.

An example of the final command is displayed below.

  > java -jar xxxx/xxxx/trackr.jar

A GUI similar to the below should appear in a few seconds.


Figure 1.2.1: Home Tab UI

The UI has the following areas:

  • Tabs
  • Sales (Total Revenue and Profit)
  • Simplified Orders
  • Simplified Tasks
  • Simplified Menu
  • Command Result Screen
  • Command Input Box
  • Data List

For more information on how to navigate the User Interface (UI), you can go here


Figure 1.2.2: Labeled Home Tab UI


Figure 1.2.3: Labeled Data Tab UI

:warning: Warning

When you open the application for the first time on your device, Trackr will create a data folder with trackr.json data file inside.

If you are a new user, do not edit this file.

Otherwise, you can check out how to edit it here

1.3 Utilisation

Step 1: Enter your command into the Command Input Box.

You can try the following commands to add a task:

  • tab t/TASKS
  • add_task n/Buy eggs d/12/12/2040

Step 2: Observe the changes made to the Task list. Look at the message displayed inside the Command Result Screen to see the results of your command.

:bulb: Tip

You can find out all the usable commands here or return to the Table of Contents to find your desired command.

1.4 Navigating the User Interface

Here, we will explain how you can navigate around our application.

Command Input Box

You can input your commands into the command input box, press Enter to execute your commands. A result message would be shown at the Command Result Screen.

If there is an error with the command, the input would turn red and you can refer to the Command Result Screen for help.

Command Result Screen

Command result screen shows the success message for your command that executed successfully.

Otherwise, it would show an error message with hints on what was missing / invalid in the command that you have entered. Refer to the error message or look back at this User Guide for more information on how to correct your command input.

Tabs

We provide multiple tabs for you to use. This includes the home page, with the data tabs that display your data for the respective information (i.e. Order, Tasks, Contacts, Menu).

You can navigate between them by clicking on the tab itself, or input the command tab t/ followed with the respective tab name.

For more information about the tab command, you can go here.

1.4.1 Home Page

Upon starting the application, you will see a convenient dashboard with summarised information that you need for your business.

Sales (Total Revenue and Profit)

Trackr keeps track of all orders submitted and automatically updates the total revenue and profit that your business has generated with us.

Simplified Orders

Order list shows a condensed preview of your outstanding orders, with their relevant details (i.e. customer name, promised delivery date and your progress).

Simplified Tasks

Task list shows all outstanding miscellaneous tasks that you may have for your current operations.

Simplified Menu

Menu list shows all the items that you have up for sale currently, with their details (cost price, selling price and profit margin) at a glance.

1.4.2 Data Tab

Data List

Data list contains all of your respective data labelled out in full. The layout of the respective data information can be seen below:

  • Orders

Orders contains order information, with their data represented by their respective cards.

Order Card consists of the following components:

  1. Index of the order
  2. Name of the order item (which should correspond to its respective Menu item name)
  3. Quantity of order item
  4. Deadline for delivery of the order
  5. Status of the order item
  6. Customer name
  7. Customer phone number
  8. Customer address


Figure 1.4.2.1: Labeled Order Card

  • Tasks

Tasks contains task information, with their data represented by their respective cards.

Task Card consists of the following components:

  1. Index of the task
  2. Name of the task
  3. Deadline of the task
  4. Status of the task


Figure 1.4.2.2: Labeled Task Card

  • Contacts

Contacts contains supplier information, with their data represented by their respective cards.

Supplier Contact Card consists of the following components:

  1. Index of the supplier
  2. Name of the supplier
  3. Tags related to the supplier
  4. Phone number of the supplier
  5. Address of the supplier
  6. Email of the supplier


Figure 1.4.2.3: Labeled Supplier Card

  • Menu

Menu contains menu items, with their data represented by their respective cards.

Menu Item Card consists of the following components:

  1. Index of the menu item
  2. Menu item name
  3. Selling price of the menu item
  4. Cost of making the menu item
  5. Profit from selling the menu item (Profit = Selling Price - Cost)


Figure 1.4.2.4: Labeled Menu Card


2 Commands

:information_source: Notes about the command format:

  • All command keywords must be in lower-case and are case-sensitive.
    e.g. For add supplier command:
    :heavy_check_mark: add_supplier is valid.
    :x: ADD_SUPPLIER and Add_Supplier are invalid.

  • Prefixes of the parameters must be in lower-case and are case-sensitive.
    e.g. n/ in add_s n/NAME is case-sensitive
    :heavy_check_mark: n/ is a valid prefix.
    :x: N/ is an invalid prefix.

  • Words in UPPER_CASE are the parameters to be supplied by you.
    e.g. in add_supplier n/NAME, you fill in the NAME parameter with the supplier name (i.e. add_supplier n/John Doe).

  • Items in square brackets are optional.
    e.g. n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with …​ after them can be used any number of times within the command.
    e.g. [t/TAG]…​ can be used as   (omitted), t/flour, t/flour t/sugar etc.

  • Parameters can be in any order.
    e.g. if the command specifies n/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 specify p/12341234 p/56785678, only p/56785678 will be taken.

  • Extraneous parameters will be ignored.
    e.g. if the command specifies help 123, it will be interpreted as help.

:bulb: Tip

  • General format of commands:
    <command> <index> <prefix/paramater> <prefix/paramater> ...
    • Index depends on the command.
    • Number of parameters depend on the command.
  • All command keywords have shortcut alternatives. They are the command type and the first letter of the information type.
    For example:
    • add_s is the same as add_supplier
    • edit_o is the same as edit_order
    • list_t is the same as list_task
  • You can find out the constraints for the parameters with their corresponding prefix here.

2.0 Checking for duplicates

Duplicate data are not allowed. Hence, adding of duplicate data or editing of an existing data such that it matches with another existing data in the data list will not be successful. Here’s how we check for duplicates:

Any two are considered to be duplicates if
Suppliers they have the same phone numbers
Orders all the parameters (excluding STATUS) are the same (with matching cases).
Tasks they have the same task names (with matching cases) and deadlines.
Menu items they have the same item names (with matching cases).

2.1 Add

Adding of an information to the specific list. Below are the specific add commands for supplier, order, task and menu item.

:pencil2: Note
Adding of duplicate data is not allowed. Refer to this table to see how duplicates are checked for.

2.1.1 Adding a supplier: add_supplier

Adds a supplier to the list of suppliers.

Syntax: add_supplier n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​

:clipboard: Example 1: Standard command without tags

  • add_supplier n/John Doe p/98765432 e/johnd@example.com a/John Street
    Adds a supplier with the following details:
    • Supplier Name: John Doe
    • Phone Number: 98765432
    • Email: johnd@example.com
    • Address: John Street
    • Tags: Empty

:clipboard: Example 2: Shortcut command with tags

  • add_s n/Betsy Cow t/diary e/betsycow@example.com a/Betsy Street p/12345678 t/meat
    Adds a supplier with the following details:
    • Supplier Name: Betsy Cow
    • Phone Number: 12345678
    • Email: betsycow@example.com
    • Address: Betsy Street
    • Tags: Diary, Meat

2.1.2 Adding an order: add_order

Adds an order into the list of orders.

Syntax: add_order on/ORDER_ITEM q/QUANTITY d/DEADLINE n/CUSTOMER_NAME a/CUSTOMER_ADDRESS p/CUSTOMER_PHONE_NUMBER [s/STATUS]

:information_source: Information

  • Statuses available for setting are
    • N or n for Not Delivered
    • I or i for In Progress
    • D or d for Delivered
  • If no status is provided, it is defaulted to Not Delivered.

  • All ORDER_ITEM must match (case-sensitive) a menu item in the menu. (e.g. choclate and Chocolate are considered different items).
    i.e. If ORDER_ITEM does not match any of the existing menu items, you need to add it as a menu item first.
    You can find out how to add a menu item here

:clipboard: Example 1: Standard command without status

  • add_order on/Cupcake q/5 d/01/12/2024 n/John Cat p/91234567 a/John Street
    Adds an order with the following details:
    • Order Item: Cupcake
    • Quantity: 5
    • Deadline: 01/12/2024
    • Name: John Cat
    • Phone Number: 91234567
    • Address: John Street
    • Status: Not Delivered (Default)

:clipboard: Example 2: Shortcut command with status

  • add_o on/Chocolate Cookies q/10 d/02/10/2024 n/Dolly Sheep p/91827364 a/Dolly Street s/I
    Adds a supplier with the following details:
    • Order Item: Chocolate Cookies
    • Quantity: 10
    • Deadline: 02/10/2024
    • Name: Dolly Sheep
    • Phone Number: 91827364
    • Address: Dolly Street
    • Status: In Progress

2.1.3 Adding a task: add_task

Adds a task to the list of tasks.

Syntax: add_task n/TASK_NAME d/DEADLINE [s/STATUS]

:information_source: Information

  • Statuses available for setting are
    • N or n for Not Done
    • D or d for Done
  • If no status is provided, it is defaulted to Not Done.

:clipboard: Example 1: Standard command without status

  • add_task n/Buy cookie cutter d/22/12/2024
    Adds a task with the following details:
    • Task Name: Buy cookie cutter
    • Deadline: 22/12/2024
    • Status: Not Done (Default)

:clipboard: Example 2: Shortcut command with status

  • add_t n/Buy a card d/23/12/2024 s/D
    Adds a task with the following details:
    • Task Name: Buy a card
    • Deadline: 23/12/2024
    • Status: Done

2.1.4 Adding a menu item: add_item

Adds a menu item to the menu.

Syntax: add_item n/ITEM_NAME pr/PRICE c/COST

:information_source: Information

  • When entering price and cost values, you may choose to
    1. input positive integer numbers
    2. input positive decimal numbers (up to 2 decimal point). For example:
      :heavy_check_mark: 5.1 or 5.03
      :x: 5.034
  • The item can have a positive or negative profit (Profit = Price - Cost). Specifically:
    • Negative profit margin means you are making a loss
    • Positive profit margin means you are making a profit
  • Note that profit calculated is only accurate when price and cost each have at most 16 digits.
    • For example: 9283212222332323 and 92832122223323.55 are both 16 digits.
  • You cannot add an item if there is another item that has the same name in the menu. The item name is case-sensitive.
    • For example, chocolate and Chocolate are considered as different item.

:clipboard: Example 1: Standard command with integer values

  • add_item n/Chocolate cake pr/5 c/2
    Adds an order item with the following details:
    • Item Name: Chocolate cake
    • Price: 5
    • Cost: 2

:clipboard: Example 2: Shortcut command with decimal values

  • add_i n/Limited Time Strawberry Cake pr/20.55 c/25.2
    Adds an order item with the following details:
    • Item Name: Limited Time Strawberry Cake
    • Price: 20.55
    • Cost: 25.2

2.2 Edit

Editing of an information in a specific list. Below are the specific edit commands for supplier, order, task and menu item.

:information_source: Information

  • Edits the information at the specified INDEX.
  • The INDEX must be a positive integer 1, 2, 3, …​
  • All existing values will be replaced with the new values given.
  • At least one of the fields (e.g. n/NAME) must be specified.
  • Editing of a data such that it matches with another existing data is not allowed. Check this table to see how duplicates are checked for.
:exclamation: Danger

Editing of information is one-way (i.e. You cannot revert your command).
We are working to have an undo feature in the future. Sorry for the inconvenience caused.

2.2.1 Editing a supplier: edit_supplier

Edits an existing supplier’s information.

Syntax: edit_supplier INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​

:information_source: Information

  • When editing tags:
    • All existing tags will be replaced with the given tag (editing of tags is not accumulative).
    • Typing t/ removes all the existing tags.

:clipboard: Example 1: Standard command removing tags

  • edit_supplier 1 n/Johnny p/90138482 t/
    Edits the first supplier information (shown on screen) with the following details:
    • Supplier Name: Johnny
    • Phone Number: 90138482
    • Tags: Empty

:clipboard: Example 2: Shortcut command replacing tags

  • edit_s 3 t/flour e/mark@example.com
    Edits the third supplier information (shown on screen) with the following details:
    • Email: mark@example.com
    • Tags: Supplies Flour

2.2.2 Editing an order: edit_order

Edits an existing order’s information.

Syntax: edit_order INDEX [on/ORDER_ITEM] [q/QUANTITY] [d/DEADLINE] [n/CUSTOMER_NAME] [a/CUSTOMER_ADDRESS] [p/CUSTOMER_PHONE_NUMBER] [s/STATUS]

:information_source: Information

  • If a menu item is no longer your menu (i.e. you have deleted the menu item), the order details cannot be edited.

  • Statuses available for setting are
    • N or n for Not Delivered
    • I or i for In Progress
    • D or d for Delivered
  • When editing the order name, the input for order name is case-sensitive.
    • For example, if menu item you want edit order name to “chocolate”, you should input edit_o 1 on/chocolate and not edit_o 1 on/ChOcolAte

:clipboard: Example 1: Standard command

  • edit_order 1 p/91234567 d/05/05/2024
    Edits the first order information (shown on screen) with the following details:
    • Customer Phone Number: 91234567
    • Deadline: 05/05/2024

:clipboard: Example 2: Shortcut command updating status

  • edit_o 3 q/20 s/I
    Edits the third order information (shown on screen) with the following details:
    • Quantity: 3
    • Status: In Progress

2.2.3 Editing a task: edit_task

Edits an existing task’s information.

Syntax: edit_task INDEX [n/TASK_NAME] [d/DEADLINE] [s/STATUS]

:information_source: Information

  • Statuses available for setting are
    • N or n for Not Done
    • D or d for Done

:clipboard: Example 1: Standard command

  • edit_task 1 n/Get creamer
    Edits the first task information (shown on screen) with the following details:
    • Task Name: Get creamer

:clipboard: Example 2: Shortcut command updating status

  • edit_t 3 d/31/12/2024 s/N
    Edits the third task information (shown on screen) with the following details:
    • Deadline: 31/12/2024
    • Status: Not Done

2.2.4 Editing a menu item: edit_item

Edits an existing menu item’s information.

Syntax: edit_item INDEX [n/ITEM_NAME] [pr/PRICE] [c/COST]

:information_source: Information

  • Editing a menu item does not invalidate or update the orders with the same order item name.
  • Editing a menu item does not update and change the total revenue and profits on the home tab.

  • When entering price and cost values, you may choose to
    1. input positive integer numbers
    2. input positive decimal numbers (up to 2 decimal point). For example:
      :heavy_check_mark: 5.1 or 5.03
      :x: 5.034
  • The item can have a positive or negative profit margin (Profit Margin = Price - Cost). Specifically:
    • Negative profit margin means you are making a loss
    • Positive profit margin means you are making a profit
  • Note that profit calculated is only accurate when price and cost each have at most 16 digits.
    • For example: 9283212222332323 and 92832122223323.55 are both 16 digits.

:clipboard: Example 1: Standard command with integer values

  • edit_item 1 n/Coffee pr/2 c/1
    Edits the first menu item information with the following details:
    • Item Name: Coffee
    • Price: 2
    • Cost: 1

:clipboard: Example 2: Shortcut command with decimal values

  • edit_i 3 d/Signature burger pr/8.5 c/2.25
    Edits the third menu item information with the following details:
    • Item Name: Signature burger
    • Price: 8.5
    • Cost: 2.25

2.3 Find

Finding of specific information with the provided parameters. Below are the specific find commands for supplier, order, task and menu item.

2.3.1 Finding a supplier: find_supplier

Finds suppliers whose information matches with any of the given parameters.

Syntax: find_supplier NAME

:information_source: Information

  • Search is case-insensitive (e.g. mark will match with Mark).
  • Order of the keywords does not matter (e.g. Mark Lee will match with Lee Mark).
  • Only full words will match (e.g. Mar will not match with Mark).
  • Suppliers matching with at least one keyword will be returned (i.e. OR search).
    (e.g. Mark Lee will return Mark Tan, Lee Chan)

:clipboard: Example 1: Standard command

  • find_supplier Prima Flour
    Finds the supplier with the following details:
    • Supplier Name contains either Prima or Flour.

    :heavy_check_mark: Example of suppliers that match:

    • Prima
    • Soon Flour Pte Ltd
    • PRIMA CONFECTIONARY

    :x: Example of suppliers that do not match:

    • Prim
    • PrimaFlour

:clipboard: Example 2: Shortcut command

  • find_s Pte
    Finds the supplier with the following details:
    • Supplier Name contains Pte.

    :heavy_check_mark: Example of suppliers that match:

    • Soon Flour Pte Ltd
    • Tech Leong PTE LTD

    :x: Example of suppliers that do not match:

    • Private
    • Phoon Huat PteLtd

2.3.2 Finding an order: find_order

Find orders whose information matches with any of the given parameters.

Syntax: find_order [on/ORDER_ITEM] [q/QUANTITY] [d/DEADLINE] [n/CUSTOMER_NAME] [a/CUSTOMER_ADDRESS] [p/CUSTOMER_PHONE_NUMBER] [s/STATUS]

:information_source: Information

  • At least one of the optional fields must be keyed in.

  • For ORDER_ITEM and CUSTOMER_NAME:
    • Search is case-insensitive (e.g. cookie will match with Cookie).
    • Order of the keywords does not matter (e.g. Chocolate Cookie will match with Cookie Chocolate).
    • Only full words will match (e.g. Chocolate will not match with Choco).
    • Orders matching with at least one keyword will be returned (i.e. OR search).
      (e.g. Chocolate Cake will return Chocolate Cookie, Strawberry Cake).
  • For STATUS:
    • Search is case-insensitive.
    • Search
      • D or d for Delivered
      • I or i for In Progress
      • N or n for Not delivered.
      • e.g. find_o s/D will return orders marked as Delivered.
  • For CUSTOMER_ADDRESS:
    • Search is case-sensitive. (e.g. The search for orders with customer address smith will match with smith but not with Smith).
    • Order of the keywords matter (e.g. Amy Lee will not match with Lee Amy).
    • Only full words will match.
    • Order’s respective parameter must fully match with the given parameter.
      (e.g. Amy Lee will only match with Amy Lee and not with Amy Lee Tan).

:clipboard: Example 1: Standard command with single fields

  • find_order on/Chocolate Cake
    Finds the order with the following details:
    • Order Item contains Chocolate or Cake

    :heavy_check_mark: Example of orders that match:

    • Chocolate Cookie
    • Chocolate Cake
    • CAKE WITH VANILLA

    :x: Example of orders that do not match:

    • Choco
    • ChocolatePie

:clipboard: Example 2: Shortcut command with multiple fields

  • find_o on/Cake d/01/01/2023
    Finds the order with the following details:
    • Supplier Name contains Cake
    • Deadline is on 01/01/2023

    :heavy_check_mark: Example of orders that match:

    • on/Chocolate Cake d/01/01/2023
    • on/CAKE WITH VANILLA AND CHOCOLATE d/01/01/2023

    :x: Example of orders that do not match:

    • on/Chocolate Cake d/03/03/2024
    • on/VANILLA CAKES d/01/01/2023

2.3.3 Finding a task: find_task

Finds tasks with information that matches with any of the given parameters.

Syntax: find_task [n/TASK_NAME] [d/DEADLINE] [s/STATUS]

:information_source: Information

  • At least one of the optional fields must be keyed in.

  • For TASK_NAME:
    • Search is case-insensitive (e.g. sugar will match with Sugar).
    • Order of the keywords does not matter (e.g. Flour Sugar will match with Sugar Flour).
    • Only full words will match (e.g. Sugar will not match with Sugars).
    • Tasks matching with at least one keyword will be returned (i.e. OR search).
      (e.g. Order Flour will return Order Sugar, Order 10kg Flour).
  • For STATUS:
    • Search is case-insensitive.
    • Search
      • D or d for Done
      • N or n for Not delivered.
      • e.g. find_o s/D will return tasks marked as Done.

:clipboard: Example 1: Standard command with single fields

  • find_task s/N
    Finds all task that are Not Done.

:clipboard: Example 2: Shortcut command with multiple fields

  • find_t n/Buy eggs d/17/02/2023
    Finds the order with the following details:
    • Task Name contains Buy eggs.
    • Deadline is on 17/02/2023

    :heavy_check_mark: Example of tasks that match:

    • n/Buy eggs d/17/02/2023
    • n/Buy flour d/17/02/2023

    :x: Example of tasks that do not match:

    • n/Make eggcream d/17/02/2023
    • n/Buy flour d/30/03/2024

2.3.4 Finding a menu item: find_item

Find tasks with information that matches with any of the given parameters.

Syntax: find_item ITEM_NAME

:information_source: Information

  • Search is case-insensitive (e.g. cookie will match with Cookie).
  • Order of the keywords does not matter (e.g. Chocolate Cookie will match with Cookie Chocolate).
  • Only full words will match (e.g. Chocolate will not match with Choco).
  • Menu items matching with at least one keyword will be returned (i.e. OR search).
    (e.g. Chocolate Cake will return Chocolate Cookie, Strawberry Cake)

:clipboard: Example 1: Standard command

  • find_item vanilla cupcake
    Finds the menu item with the following details:
    • Item Name contains either vanilla or cake.

    :heavy_check_mark: Example of order items that match:

    • Strawberry cupcake
    • CAKE WITH VANILLA

    :x: Example of order item that do not match:

    • chocolate cake

:clipboard: Example 2: Shortcut command

  • find_i Cake
    Finds the menu item with the following details:
    • Item Name contains Cake.

    :heavy_check_mark: Example of order items that match:

    • Strawberry Cake
    • CAKE WITH VANILLA

    :x: Example of order item that do not match:

    • Vanilla Cupcake

2.4 Delete

Deleting of an information to the specific list. Below are the specific delete commands for supplier, order, task and menu item.

:information_source: Information

  • Deletes the information at the specified INDEX.
  • The INDEX must be a positive integer 1, 2, 3, …​
  • All values at the INDEX will be deleted.
:exclamation: Danger

Deleting of information is one-way (i.e. You cannot revert your command).
We are working to have an undo feature in the future. Sorry for the inconvenience caused.

2.4.1 Deleting a supplier: delete_supplier

Deletes the specified supplier from the contact list.

Syntax: delete_supplier INDEX

:clipboard: Example 1: Standard command

  • delete_supplier 2
    Deletes the second supplier from the visible contact list

:clipboard: Example 2: Shortcut command after using find_supplier

  • find_supplier John followed by delete_s 1
    • find_supplier John lists all suppliers with names that contain John
    • delete_s 1 deletes the first supplier with a name that contains John from the visible contact list

2.4.2 Deleting an order: delete_order

Deletes the specified order from the order list.

Syntax: delete_order INDEX

:clipboard: Example 1: Standard command

  • delete_order 2
    Deletes the second order from the visible order list

:clipboard: Example 2: Shortcut command after using find_order

  • find_order on/Cake followed by delete_o 1
    • find_order on/Cake lists all orders with item names that contain Cake
    • delete_o 1 deletes the first order with an item name that contains Cake from the visible order list

2.4.3 Deleting a task: delete_task

Deletes the specified task from the task list.

Syntax: delete_task INDEX

:clipboard: Example 1: Standard command

  • delete_task 2
    Deletes the second task from the visible task list

:clipboard: Example 2: Shortcut command after using find_task

  • find_task n/flour followed by delete_t 1
    • find_task n/flour lists all tasks with task names that contain flour
    • delete_t 1 deletes the first task with a task name that contains flour from the visible task list

2.4.4 Deleting a menu item: delete_item

Deletes the specified menu item from the menu.

Syntax: delete_item INDEX

:information_source: Information

Deleting a menu item does not invalidate the orders with the same order item name.

:clipboard: Example 1: Standard command

  • delete_menu 2
    Deletes the second menu item from the visible menu

:clipboard: Example 2: Shortcut command after using find_item

  • find_item cupcake followed by delete_m 1
    • find_item cupcake lists all menu items with item names containing cupcake
    • delete_m 1 deletes the first menu item with an item name that contains cupcake from the visible menu

2.5 Sort

Sorting of information in the specific list. Below are the specific sort commands for task and order.

:information_source: Information

  • Sorts all the data in the specific list according to a criteria.
  • Criteria is case-insensitive (i.e. time_added, TIME_ADDED Time_Added are all valid).
  • The default criteria (when no criteria is specified) is Status_and_deadline.

  • Criteria available are:
    • Time_added
      • Sorts data in ascending order.
      • Data added first is at the top while data added the latest is at the bottom.
    • Deadline
      • Sorts data in ascending order.
      • Data with the earliest deadline is at the top while those with the latest deadline is at the bottom.
    • Status
      • Refer to the specific command explanation below.
    • Name
      • Sorts data in lexicographical order (ignoring case) with respect to the name.
      • Data with name starting with “a” will be placed above a data with name starting with “B”.
    • Status_and_deadline (Default)
      • Sorts all data by their status first, followed by their deadline (while preserving the relative ordering from the first sort, i.e. Stable sort)

2.5.1 Sorting a task: sort_task

Sorts tasks according to the criteria specified.

Syntax: sort_task [c/CRITERIA]

:information_source: Information

  • Status - Sorted in this order from top to bottom:
    • Not Done
    • Done

  • Status_and_deadline - Sorts all data by their status first, followed by their deadline
    Specifically in this order from top to bottom:
    • Not Done & Earliest Deadline
    • Not Done & Latest Deadline
    • Done & Earliest Deadline
    • Done & Latest Deadline

:clipboard: Example 1: Standard command with default parameters

  • sort_task
    Sorts all tasks according to their Status_and_deadline

:clipboard: Example 2: Shortcut command with parameters

  • sort_t c/deadline
    Sorts all tasks according to their deadline

:clipboard: Example 3: Shortcut command after using find_task

  • find_task s/N followed by sort_t c/Deadline
    • find_task s/N first lists all tasks with status as Not Done
    • sort_t c/deadline sorts all Not Done tasks found according to their Deadline

2.5.2 Sorting a order: sort_order

Sorts orders according to the criteria specified.

Syntax: sort_order [c/CRITERIA]

:information_source: Information

  • Status - Sorted in this order from top to bottom:
    • Not Delivered
    • In Progress
    • Delivered

  • Status_and_deadline - Sorts all data by their status first, followed by their deadline
    Specifically in this order from top to bottom:
    • Not Delivered & Earliest Deadline
    • Not Delivered & Latest Deadline
    • In Progress & Earliest Deadline
    • In Progress & Latest Deadline
    • Delivered & Earliest Deadline
    • Delivered & Latest Deadline

:clipboard: Example 1: Standard command with default parameters

  • sort_order
    Sorts all orders according to their Status_and_deadline

:clipboard: Example 2: Shortcut command with parameters

  • sort_o c/Status
    Sorts all orders according to their Status

:clipboard: Example 3: Shortcut command after using find_order

  • find_order s/N followed by sort_o c/Name
    • find_order s/N lists all orders with status as Not Delievered
    • sort_o c/Name sorts all Not Delivered orders found according to their Name

2.6 List

Shows all data in the specific list. Below are the specific list commands for suppliers, order, tasks and menu.

2.6.1 Listing all suppliers: list_supplier

Shows a list of all suppliers in the contact list.

Syntax: list_supplier

:clipboard: Example 1: Standard command

  • list_supplier
    Shows all suppliers.

:clipboard: Example 2: Shortcut command with parameters

  • list_s n/John
    Shows all suppliers.

2.6.2 Listing all orders: list_order

Shows a list of all orders in the order list.

Syntax: list_order

:clipboard: Example 1: Standard command

  • list_order
    Shows all orders.

:clipboard: Example 2: Shortcut command with parameters

  • list_o on/Straberry
    Shows all orders.

2.6.3 Listing all tasks: list_task

Shows a list of all tasks in the task list.

Syntax: list_task

:clipboard: Example 1: Standard command

  • list_task
    Shows all tasks.

:clipboard: Example 2: Shortcut command with parameters

  • list_t s/N
    Shows all tasks.

2.6.4 Listing all menu items: list_menu

Shows a list of all menu items in the menu.

Syntax: list_menu

:clipboard: Example 1: Standard command

  • list_menu
    Shows all menu items.

:clipboard: Example 2: Shortcut command with parameters

  • list_m price
    Shows all menu items.

2.7 Clear

Clears all data in the specific list. Below are the specific clear commands for suppliers, order, tasks and menu.

:exclamation: Danger

Clearing of data is one-way (i.e. You cannot revert your command).
We are working to have an undo feature in the future. Sorry for the inconvenience caused.

2.7.1 Clear all supplier entries: clear_supplier

Clears all supplier entries from the contact list.

Syntax: clear_supplier

:clipboard: Example 1: Standard command

  • clear_supplier
    Clears all supplier data from contact list.

:clipboard: Example 2: Shortcut command with parameters

  • clear_s n/Name
    Clears all supplier data from contact list.

2.7.2 Clear all order entries: clear_order

Clears all order entries from the order list.

Syntax: clear_order

:clipboard: Example 1: Standard command

  • clear_order
    Clears all order data from order list.

:clipboard: Example 2: Shortcut command with parameters

  • clear_o on/Chocolate
    Clears all order data from order list.

2.7.3 Clear all task entries: clear_task

Clears all task entries from the task list.

Syntax: clear_task

:clipboard: Example 1: Standard command

  • clear_task
    Clears all task data from task list.

:clipboard: Example 2: Shortcut command with parameters

  • clear_t s/N
    Clears all task data from task list.

2.7.4 Clear all menu item entries: clear_menu

Clears all menu item entries from the menu.

Syntax: clear_menu

:information_source: Information

Clearing all menu items does not invalidate the orders.

:clipboard: Example 1: Standard command

  • clear_menu
    Clears all menu item data from menu.

:clipboard: Example 2: Shortcut command with parameters

  • clear_m price
    Clears all menu item data from menu.

2.8 Switch

Allows for you to switch to the tab for view your respective information. You can use the GUI to navigate it as shown here or use the command shown here.

2.8.1 Switching tabs: tab

Switch to another tab.

Syntax: tab t/TAB

:information_source: Information

  • TAB needs to be in all-caps and is case-sensitive
  • The available tabs are HOME, ORDERS, CONTACTS, MENU, TASKS

:clipboard: Example 1: Standard command

  • tab t/HOME
    Navigates you to the home tab

2.9 Others

Here are other functionalities and commands that are available for you to utilise.

2.9.1 Viewing help: help

Shows a message with a link to the help page (this page).


Figure 2.9.1.1: Help Command Message

Syntax: help

2.9.2 Uploading a csv file

Uploading of a valid csv file into Trackr allows Trackr to parse the data to Task, Order, Supplier and Menu Items and adds them to their respective lists.

It is important to strictly follow the format specified below for your data to parse successfully.

:information_source: Information

Step 1: Start each row with the type of item you want to add (i.e. Orders)

Step 2: List out on the next row all the respective item fields (i.e. OrderName, Quantity, …)

Step 3: Fill in the next few rows will all the corresponding data, without leaving any fields empty (i.e. Chocolate Cookies, 10, …)

Note: For any optional fields, you can indicate it with a - to have it be taken as its default value.


Figure 2.9.2.1: Example of a valid csv file

2.9.3 Exiting the program: exit

Exits the program.

Syntax: exit

3 Data

This section will inform you how the data is saved.

3.1 Saving of data

All data are saved after any command is executed successfully. There is no need for you to manually save.

3.2 Editing the data file

Trackr data are saved as a JSON file at [JAR file location]/data/trackr.json.

Advanced users are welcome to update data directly by editing that data file.

:warning: Caution:

It is advised to make your changes through our application and not through editing the data file directly. Trackr does not have backup data if your edit corrupts the data. Please proceed with caution.
:exclamation: Danger

If your changes to the data file are invalid, Trackr will discard all data and start with an empty data file at the next run.

Here is the layout of the data file:

{
  "suppliers": [],
  "tasks": [],
  "menuItems": [],
  "orders": []
}

Here are the respective formats for each of the data types:

  • Supplier
    {
      "name" : "Prima Flour",
      "phone" : "87438807",
      "email" : "sales.primaflour@prima.com.sg",
      "address" : "Blk 30 Geylang Street 29, #06-40",
      "tagged" : [ "flour" ]
    }
    
  • Task
    {
      "taskName" : "Buy flour",
      "taskDeadline" : "01/01/2024",
      "taskStatus" : "N",
      "timeAdded" : "2023-04-04T16:35:55.858687"
    }
    
  • Menu Item
    {
      "itemName" : "Chocolate Cookies",
      "itemCost" : "1.20",
      "itemPrice" : "5.00",
      "itemProfit" : "3.80"
    }
    
  • Order
    {
      "customerName" : "Amy",
      "customerPhone" : "12345678",
      "customerAddress" : "123 Smith Street",
      "menuItem" : {
        "itemName" : "Chocolate Cookies",
        "itemCost" : "1.20",
        "itemPrice" : "5.00",
        "itemProfit" : "3.80"
      },
      "orderDeadline" : "01/01/2024",
      "orderQuantity" : "2",
      "orderStatus" : "N",
      "timeAdded" : "2023-04-04T16:35:55.864688500"
    }
    

4 Upcoming features [coming soon]

  • Highlight overdue orders.
  • Better representation of sales report (e.g. Pie charts or graphs) to track your business’s growth.
  • Ability to export your data as csv.

5 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 Trackr home folder.

Q: Can I search for suppliers by other fields such as tags?
A: Currently it is not supported but will be added in the future. You can only find suppliers by their names. Sorry for the inconvenience caused.

Q: Can I edit tags present in suppliers?
A: This is not supported currently. You can just replace the tags directly using the edit_supplier command. We will consider adding this as a feature in the future.

Q: Do I require internet access to use Trackr?
A: No, you can use Trackr without any internet access.


6 Summary

6.1 Prefix Summary

Parameter Prefix Rules
Name (Task, Supplier, Customer, Menu Item) n/ - Should only contains alphanumeric characters and spaces
Phone Number (Supplier, Customer) p/ - Should only contain digits
- Should have least 3 digits
Email e/ - Should only be of the form local@domain and only accept alphanumeric characters
- local allows for special characters +, _, . and - as well.
- domain must be at least 2 letters long.
- .com is not required.
Address (Supplier, Customer) a/ - Can contain any letters
Tag t/ - Should only contain alphanumeric characters
- Should not contain spaces
Deadline (Task, Order) d/ - Should be of the format dd/MM/yyyy - Dates that have passed are allowed
Status (Task, Order) s/ - Should only contain alphanumeric characters
Order Name on/ - Should only contain alphanumeric characters
- Order name should be a valid menu item name
Order Quantity q/ - Should only contain positive integer values
Price pr/ - Should only contain positive numeric values
- Allows for integers or values up to 2 decimal places
Cost c/ - Should only contain positive numeric values
- Allows for integers or values up to 2 decimal places
Tab t/ - Should only contain alphabetical characters
- Should be in all caps
Criteria c/ - Should only contain alphabetical characters

6.2 Command Summary

Action Format, Examples
Add add_supplier / add_s
e.g., add_s n/Betsy Cow t/diary e/betsycow@example.com a/Betsy Street p/12345678 t/meat

add_order / add_o
e.g., add_o n/John Doe l/John Street d/12/12/2023 q/10 on/Cupcakes

add_task / add_t
e.g., add_t d/Buy a card d/23/12/2024 s/D

add_item / add_i
e.g., add_i n/Chocolate Cake pr/30 c/10
Edit edit_supplier / edit_s
e.g., edit_s 3 t/flour e/mark@example.com

edit_order / edit_o
e.g., edit_o 3 q/20

edit_task / edit_t
e.g., edit_t 1 s/D

edit_item / edit_i
e.g., edit_i n/Chocolate Chip Cookie
Delete delete_supplier / delete_s
e.g., delete_s 2

delete_order / delete_o
e.g., delete_o 1

delete_task / delete_t
e.g., delete_t 4

delete_item / delete_i
e.g., delete_i 2
Find find_supplier / find_s
e.g., find_s Pte

find_order / find_o
e.g., find_order on/Chocolate

find_task / find_t
e.g., find_t s/N

find_item / find_i
e.g., find_i Chocolate
Sort sort_task / sort_t
e.g., sort_t c/Deadline

sort_order / sort_o
e.g., sort_order c/Deadline
List list_supplier / list_s

list_order / list_o

list_task / list_t

list_menu / list_m
Clear clear_supplier / clear_s

clear_order / clear_o

clear_task / clear_t

clear_menu / clear_m
Tab tab
e.g., tab t/Home
Help help
Exit exit