HomeBoss User Guide


Introduction

Welcome to the HomeBoss User Guide!

HomeBoss is a powerful desktop application designed specifically for home-based business owners, offering efficient Customer and Delivery management solutions. HomeBoss streamlines your administrative processes and elevate your overall business experience to new heights.

HomeBoss allows you to:

  • Keep track of the details of your Customers and Deliveries
  • Search for a particular Customer / Delivery easily
  • Organise your data in a neat and tidy manner by filtering and sorting to your needs
    and much more!

HomeBoss improves your efficiency and productivity in managing your Customers and Deliveries, all while being incredibly simple to use. HomeBoss is not only tailored for fast typists, leveraging a Command Line Interface (CLI) for swift command execution, but it also features an elegant Graphical User Interface (GUI) that presents your data in a more refined and organized fashion.

HomeBoss ensures that you focus on what matters most: running your business.


Table of Contents

  1. Introduction
  2. Table of Contents
  3. About this User Guide
  4. Navigating the User Guide
  5. Getting Started
       5.1. Prerequisites
       5.2. Installing HomeBoss
       5.3. Understanding our layout
       5.4. HomeBoss Command Format
       5.5. Registering and creating your first Delivery
       5.6. Editing the data files
  6. Feature Summary
       6.1. User features summary
       6.2. Customer features summary
       6.3. Delivery features summary
       6.4. Miscellaneous features summary
  7. Features
       7.1. User
             7.1.1. Register
             7.1.2. Login
             7.1.3. Update Account details
             7.1.4. Logout
             7.1.5. Recover Account
             7.1.6. Delete Account
       7.2. Customer
             7.2.1. Add a Customer
             7.2.2. View details of a Customer
             7.2.3. View a list of Customers
             7.2.4. Find Customers
             7.2.5. Update details of a Customer
             7.2.6. Delete a Customer
       7.3. Delivery
             7.3.1. Add a Delivery
             7.3.2. View details of a Delivery
             7.3.3. View a list of Deliveries
             7.3.4. Find Deliveries
             7.3.5. Update details of a Delivery
             7.3.6. Update status of a Delivery
             7.3.7. Create a note for a Delivery
             7.3.8. Delete a Delivery
       7.4. Miscellaneous
             7.4.1. Help
             7.4.2. Exit
             7.4.3. Clear
  8. FAQ
  9. Command Summary


About this User Guide

This user guide provides in-depth documentation on HomeBoss' installation process, explanation of its graphical components, the structure of the commands and features available to the User. In addition, this guide also provides troubleshooting tips and answers to frequently asked questions.

If you are new to HomeBoss, head over to the Getting Started section for a quick overview on how to get started.

You can find detailed explanations of all the features available in the Features section.

For experienced users, you may refer to the Command Summary section for a quick summary of all the commands available in HomeBoss.

If you would like to learn about the technical aspects of HomeBoss, you may refer to the Developer Guide.


↑ Back to Table of Contents


Navigating the User Guide

Warning Box

❗️

Warning: Provides you with important information to take note of to avoid any unintended effects!


Note Box

ℹ️

Note: Provides you with information that is useful to know.


Tip Box

💡

Tip(s): Provides you with information that can help enhance your user experience but is not necessary to know.


Parameter Box

⚙️

Parameter(s): Parameters are inputs that you can customise to your needs. They are typically preceded by a prefix. If you're unsure what a prefix is, you can refer to the HomeBoss Command Format section.


Links

  • Words in blue are links that you can click on to navigate to the relevant section.

  • A ↑ Back to Table of Contents link is available at the end of every section for you to return to the Table of Contents, so that you can access another section from there easily.


Syntax Highlighting

  • Words in code COLOUR represent the command format that you should use when entering commands into HomeBoss.

  • Words in code NORMAL represent actual words that you can enter into HomeBoss.


Screenshots

  • Screenshots are added below each example where it helps enhance the clarity of the expected output from running the command that precedes it.

  • Wherever the explanation that follows each command is sufficient to convey the expected output, screenshots are omitted to reduce clutter. The output will be shown in codeblocks instead.


↑ Back to Table of Contents


Getting Started

Prerequisites

Ensure that you have Java 11 or above installed on your computer. If you are unsure how to do so you may view this helpful guide.


💡

Tip: You may find the following links helpful should you need to install Java 11 :

  1. Java 11 Release
  2. Java 11 Installation Guide

↑ Back to Table of Contents


Installing HomeBoss

  1. You may download the latest release of HomeBoss from here. (Please download the file named HomeBoss.jar)

  2. Move the downloaded HomeBoss.jar file into the folder that you want to use as the home folder for your application.


❗️

Warning: The folder that you would like to use as the home folder for HomeBoss must be empty and should not contain any other files / folders before the application is launched for the first time.


  1. Run HomeBoss.jar. If you are unsure of how to run a .jar file, you may refer to this helpful guide.

  2. If everything went well, you will be greeted by a window similar to the one shown below.

HomeBoss Start Page

  1. If you are a first time user, we highly recommend reading the following sections to familiarise yourself with HomeBoss's layout and commands:

↑ Back to Table of Contents


Understanding our layout

Do not worry if the layout looks unfamiliar at first glance. Let's go through a quick run down of HomeBoss's layout so that you can familiarise yourself with our various components.

HomeBoss Home Page

ℹ️

Note: The above image is an example with sample data and may not be what you see when you launch the application for the first time.


Command Box

HomeBoss Command Box

The Command Box is where you will be interacting with HomeBoss, it is the place where all commands will be entered. Try typing the help command and hitting enter!


Command Result / Feedback

Command Result Feedback

The Command Result / Feedback Box is where HomeBoss will provide you the results or feedback about the commands you entered. For example, if you tried typing the help command earlier, you should see the above feedback in your application window, together with a Help window popup. You can use the scroll bar on the right to scroll through a long result or feedback!


Customer / Delivery List

List of Customers List of Deliveries

The Customer / Delivery List Panel is where you will be able to find the Customers and Deliveries that you have added to HomeBoss. You can use the scroll bar on the right to scroll through your Customers or Deliveries.


ℹ️

Note:

  • The ID that appears next to each name is a unique identifier given to all added Customers and Deliveries separately, and is required to perform many of HomeBoss's commands. More details of these commands can be found in Features.

  • The IDs generated are guaranteed to be unique but may not be consecutive and may not start from 1.

Command Result FeedBack


↑ Back to Table of Contents


HomeBoss Command Format

Commands are your main form of interaction with HomeBoss, and is the way to carry out various operations in HomeBoss. Don't worry if the commands seem daunting, the HomeBoss team has carefully crafted the commands to be as intuitive and simple as possible. After learning the commands, you'll be faster than ever!

Every command has a Command Phrase and possibly one or more Parameters (inputs to customise the command to your needs) which is typically preceded by a Prefix (special markers for HomeBoss to understand your inputs)

Take the Add a Delivery command for example:

delivery add DELIVERY_NAME --customer CUSTOMER_ID --date EXPECTED_DELIVERY_DATE
  • The Command Phrase is delivery add.
  • The Parameters are the words in uppercase, for example DELIVERY_NAME or CUSTOMER_ID.
  • The Prefixes are special keywords that are preceded by --, such as --customer and
    --date.

However, not all commands have Prefixes. Take the Update status of a Delivery command as example:

delivery status DELIVERY_ID STATUS
  • The Command Phrase is delivery status.
  • The Parameters are DELIVERY_ID and STATUS.
  • It has no Prefixes.

Not all commands have Parameters as well. Take the Logout command as example:

logout
  • The Command Phrase is logout.
  • It has no Parameters.

ℹ️

Note:

  • If Customer ID or Delivery ID is specified in the command, it must be a positive integer and less than 2147483648 for the Command Format to be considered valid.

  • A Command Phrase is made up of keywords or short phrases that are unique to each Command.

  • Words in uppercase are parameters that are supplied by you.

  • Parameters that are preceded by a prefix must be supplied after that prefix.
    e.g. --name DELIVERY_NAME must be given as --name furniture and not furniture or --name.

  • Items that are placed in square brackets ([]) are optional.
    e.g. DELIVERY_ID [--name DELIVERY_NAME] can either be 1 or
    1 --name furniture.

  • However, items that are grouped together in square brackets ([]) must all be provided together.
    e.g. for [--password PASSWORD --confirmPass CONFIRM_PASSWORD] both PASSWORD and CONFIRM_PASSWORD must be provided.

  • Extraneous parameters for commands without parameters, like customer list or clear, will be disregarded.
    e.g. customer list 123 will be treated as customer list.

  • Parameters that have ... as a postfix can be given one or more times.
    e.g. KEYWORDS... can be given as Keyword or Keyword AnotherKeyword.

  • Command Phrase and Prefixes are case-sensitive!
    e.g. clear is a valid command word but customer LIST is not a valid command word.

  • Leading and trailing whitespaces of parameters will be trimmed.
    e.g. spaces added between --password and PASSWORD in --password PASSWORD will be removed.


↑ Back to Table of Contents


Registering and creating your first Delivery

At this juncture, you should already have a good understanding of the basic mechanisms of HomeBoss. Let's now get you started on HomeBoss by creating your first Delivery.

  1. Let's first register for HomeBoss using the register command. Suppose you want to register an account with the following details:
  • USERNAME : yourUsername
  • PASSWORD : AlexIsGreat
  • CONFIRM_PASSWORD : AlexIsGreat
  • SECRET_QUESTION : First Pet Name?
  • ANSWER : Koko

Type register --user yourUsername --password AlexIsGreat --confirmPass AlexIsGreat --secretQn First Pet Name? --answer Koko into the Command Box and hit enter. More details on the register command can be found here.


ℹ️

Note: Only 1 account can be registered in HomeBoss at any one time.


  1. After registering for an account, you will be greeted by HomeBoss's home page. It's empty at the moment, so let's populate it with some data.

  2. Let's now add a new Customer, Gabriel, to HomeBoss' Customer database using the customer add command with the following details:

  1. Type customer add --name Gabriel --phone 87654321 --email gabrielrocks@gmail.com --address RVRC Block B into the Command Box and hit enter.

  1. A new Customer called Gabriel will be added, and you will see the Customer's details reflected in the Customer List panel, similar to the image shown below.

CustomerAdded

  1. Now, let's add a new Delivery for Gabriel into HomeBoss' Delivery database. For this example, Gabriel has just ordered a MacBook Pro from you, and the Delivery date that you expect to deliver to him by is 2023-12-03.
  • DELIVERY_NAME : MacBook Pro
  • EXPECTED_DELIVERY_DATE : 2023-12-03
  1. Type delivery add MacBook Pro --customer CUSTOMER_ID --date 2023-12-03, replacing CUSTOMER_ID with Gabriel's ID, and hit enter.

  1. A new Delivery should have been added for Gabriel, you should see a new Delivery in the Delivery List Panel, similar to the image shown below.

DeliveryAdded

Congratulations! You have just successfully added your first Customer and Delivery!

HomeBoss is packed with many more features to help you manage your Customers and Deliveries. Check them out under the Features section to learn more!


↑ Back to Table of Contents


Editing the data files

HomeBoss stores your data in three JSON files, namely

  • [JAR file location]/data/authentication.json (containing the authentication data)
  • [JAR file location]/data/addressbook.json (containing the Customer database)
  • [JAR file location]/data/deliverybook.json (containing the Delivery database).

Advanced users are welcome to update the data by editing the data files directly. However, please note that we do not provide support for any issues that arise from this.


❗️

Warning:

  • If either the addressbook.json or deliverybook.json data file is edited and contain invalid data as a result, HomeBoss will discard the entire data file and start with an empty data file on the next application run.

    • If deliverybook.json contains invalid data while the addressbook.json remains untouched and valid, the Customer database will remain unaffected.

    • On the other hand, if addressbook.json contains invalid data, regardless of the validity of the data in deliverybook.json, both the Customer and Delivery database will be completely reset on the next application run since the Delivery database is dependent on the Customer database.

  • It's not recommended to edit the authentication.json data file directly as it may result in the inability to log in to your account and other unintended effects.


↑ Back to Table of Contents


Feature Summary

Here is a brief introduction to all the features in HomeBoss. For more detailed information, please refer to the Features section.

User features summary

These are features for managing your user account in HomeBoss.

  • register - Registers a new user account to use HomeBoss.
  • login - Logs in to your user account.
  • update - Updates your user account details.
  • recover account - Recovers your user account.
  • logout - Logs out of your user account.
  • delete account - Deletes your user account.


Customer features summary

These are features for managing your Customers in HomeBoss.

  • customer add - Adds a Customer to the Customer database.
  • customer view - Shows the details of the specified Customer.
  • customer list - Lists all Customers in the Customer database.
  • customer find - Finds Customers whose names contain words that exactly match any of the given keywords.
  • customer edit - Updates the details of an existing Customer in the Customer database.
  • customer delete - Deletes the specified Customer from the Customer database.


Delivery features summary

These are features for managing your Deliveries in HomeBoss.

  • delivery add - Adds a Delivery to the Delivery database.
  • delivery view - Shows the details of the specified Delivery.
  • delivery list - Lists Deliveries in the Delivery database according to the specified conditions.
  • delivery find - Finds Deliveries with names containing words that exactly match any of the given keywords.
  • delivery edit - Updates the details of an existing Delivery in the Delivery database.
  • delivery status - Updates the status of a specified Delivery.
  • delivery note - Creates a note for a specified Delivery.
  • delivery delete - Deletes the specified Delivery from the Delivery database.


Miscellaneous features summary

These are general features in HomeBoss.

  • exit - Exits the program.
  • help - Shows a list of commands and their usage.
  • clear - Clears both Customer and Delivery database.

↑ Back to Table of Contents


Features

User

Register

You can create a new User account by calling this command when you first start using HomeBoss.

ℹ️

Note: Only one account can be registered at any one time.


Format:

register --user USERNAME --password PASSWORD --confirmPass CONFIRM_PASSWORD --secretQn SECRET_QUESTION --answer ANSWER


⚙️

Parameters:

  • USERNAME must be alphanumeric.

  • PASSWORD must be at least 8 alphanumeric characters long.

  • CONFIRM_PASSWORD must be the same as PASSWORD.

  • SECRET_QUESTION can include any characters but must not be empty.

  • ANSWER can include any characters but must not be empty.

  • SECRET_QUESTION and ANSWER will be used for account recovery.

  • Verification of the correct format of PASSWORD and CONFIRM_PASSWORD will precede the check for equality of passwords.


Example:

  • register --user yourUsername --password GabrielIsGreat --confirmPass GabrielIsGreat --secretQn First Pet Name? --answer Koko

Explanation

This registers a new user account with the username yourUsername, password GabrielIsGreat, secret question First Pet Name? and answer Koko.


Expected Output

Registration successful. Welcome to HomeBoss!

💡

Tip: Since only one account can be registered at any one time, if you have already registered an account, you will not be able to register another account. If you must, you can delete your current account by using the delete account command here before registering a new account.


↑ Back to Table of Contents


Login

You can log in to your account to access your Customer and Delivery data by calling this command.


ℹ️

Note: You need to already have an account registered with HomeBoss.


Format:

login --user USERNAME --password PASSWORD


⚙️

Parameters:

  • USERNAME must be alphanumeric.

  • PASSWORD must be at least 8 alphanumeric characters long.


Example:

  • login --user yourUsername --password GabrielIsGreat

    Explanation

    Logs in to the user account with the username yourUsername and password GabrielIsGreat.


    Expected Output


↑ Back to Table of Contents


Update Account details

You can change your account details for more personalisation and greater security with HomeBoss by calling this command.


ℹ️

Note: The details will be updated without checking against the current details.


Format:

update [--user USERNAME] [--password PASSWORD --confirmPass CONFIRM_PASSWORD] [--secretQn SECRET_QUESTION --answer ANSWER]


⚙️

Parameters:

  • At least one of the optional fields must be provided.

  • USERNAME must be alphanumeric.

  • PASSWORD must be at least 8 alphanumeric characters long.

  • CONFIRM_PASSWORD must be the same as PASSWORD.

  • SECRET_QUESTION can take any characters.

  • ANSWER can take any characters.

  • Verification of the correct format of PASSWORD and CONFIRM_PASSWORD will precede the check for equality of passwords.


Example:

  • update --user GabrielV2 --password GabrielIsBest --confirmPass GabrielIsBest --secretQn Favourite Pet --answer BoBo

    Explanation

    Updates the username to GabrielV2, password to GabrielIsBest, secret question to Favourite Pet and answer to BoBo.


    Expected Output

    Update successful.
    

↑ Back to Table of Contents


Logout

You can log out of your account to keep your data secure at the end of the day by calling this command.


Format: logout


Example:

  • logout

Explanation

Logs out of the current user account.


Expected Output

Bye!

↑ Back to Table of Contents


Recover Account

HomeBoss makes it easy for you to recover your account if you forget your password. You only need the answer to the secret question (set during account registration) to reset your password and thus regain access to your account.


Format:

recover account [--answer ANSWER --password NEW_PASSWORD --confirmPass CONFIRM_PASSWORD]


⚙️

Parameters:

  • If ANSWER is provided, NEW_PASSWORD and CONFIRM_PASSWORD must also be provided and vice versa.

  • ANSWER can take any characters.

  • NEW_PASSWORD must be at least 8 alphanumeric characters long.

  • CONFIRM_PASSWORD must be the same as NEW_PASSWORD.

  • Verification of the correct format of PASSWORD and CONFIRM_PASSWORD will precede the check for equality of passwords.


Examples:

  • recover account

    Explanation

    Displays your account's secret question for account recovery.


    Expected Output


  • recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123

    Explanation

    Recovers the account with the answer Koko and sets the new password to NewPassword123.


    Expected Output


↑ Back to Table of Contents


Delete Account

If you want to quickly erase all your data from HomeBoss or start a new account, you can delete your current account by calling this command.


Format: delete account


Example:

  • delete account

    Explanation

    This deletes your account and all your data from HomeBoss.


    Expected Output

    User deleted successfully.
    

💡

Tip: This command should be considered as a last resort, to be used if you forget both your password and your secret answer. However, if you've forgotten your password but recall the answer to your secret question, you can initiate the account recovery process by using the recover account command here.


↑ Back to Table of Contents


Customer

Add a Customer

You can add a new Customer's details into HomeBoss with this command to store and manage your Customer data.


ℹ️

Note:

  • Customers consist of a name, a phone number, an email, and an address.

  • HomeBoss does not allow you to add Customers with the same phone number.

  • A unique Customer ID (may not be consecutive) will be assigned to the Customer.


Format:

customer add --name NAME --phone PHONE_NUMBER --email EMAIL --address ADDRESS


⚙️

Parameters:

  • NAME must be alphanumeric and can contain spaces.

  • PHONE_NUMBER must be exactly 8 digits.

  • EMAIL must follow the local@domain format.

  • ADDRESS can take any characters.


Example:

  • customer add --name Gabriel --phone 87654321 --email gabrielrocks@gmail.com --address RVRC Block B

    Explanation

    Adds a Customer with the name Gabriel, phone number 87654321, email Gabrielrocks@gmail.comand address RVRC Block B.


    Expected Output


↑ Back to Table of Contents


View details of a Customer

You can see all the information of a Customer by calling this command. The data displayed includes the Customer's name, phone number, email and address which you might need in case you need to contact them.


Format:

customer view CUSTOMER_ID


⚙️

Parameter: CUSTOMER_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Customer's ID.


Example:

  • customer view 1

    Explanation

    Displays the details of Customer with ID 1.


    Expected Output

↑ Back to Table of Contents


View a list of Customers

This command allows you to view a list of all the Customers that you have added to HomeBoss. With this, you will be able to get a neat and organised overview of all your Customers.


Format: customer list


Example:

  • customer list

    Explanation

    This lists all the Customers that you have added to HomeBoss.


    Expected Output


💡

Tip: You can use this command together with delivery list to switch between the two lists.

↑ Back to Table of Contents


Find Customers

If you want to get the details of a Customer, but do not remember the Customer's full name or the Customer's ID, you can find the Customer with this command. It finds Customers whose names has words that exactly match any of the given keywords.


ℹ️

Note:

  • You must provide at least one keyword to search for the Customer.

  • You can optionally provide additional keywords. Customer names that matches any of the given keywords will be displayed. For example, the keywords Alex and Tan in Alex Tan will display Alex Wong, Alex Tan, and Tan Ah Meng.

  • The keyword must exactly match any word in the Customer's name. For example, the keyword Alex will match Alex but not Alexander.

  • You can input any keyword, even if it's not a valid name. For example, even though names contain a strict requirement to include only alphanumeric characters, you still have the flexibility to search for keywords that contain non-alphanumeric characters e.g. A_lex.

  • The search is not case sensitive.


Format:

customer find KEYWORD [MORE_KEYWORDS...]


⚙️

Parameters:

  • Each KEYWORD cannot contain spaces. Spaces are used to differentiate between various keywords.

  • If there's more than one KEYWORD, there has to be a space between each KEYWORD.


Example:

  • customer find Julius Yang

    Explanation

    Finds Customers whose names have words that exactly match either Julius or Yang.


    Expected Output


↑ Back to Table of Contents


Update details of a Customer

This command is useful for changing the particulars of a Customer, such as due to a change in their details or in the event that you keyed in the Customer's details wrongly.


Format:

customer edit CUSTOMER_ID [--name NAME] [--phone PHONE_NUMBER] [--email EMAIL] [--address ADDRESS]


⚙️

Parameters:

  • At least one of the optional fields must be provided.

  • CUSTOMER_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Customer's ID.

  • NAME must be alphanumeric and can contain spaces.

  • PHONE_NUMBER must be exactly 8 digits.

  • EMAIL must follow the local@domain format.

  • ADDRESS can take any characters.


Examples:

  • customer edit 1 --name Gabriel --phone 98131051

    Explanation

    Edits the name of the Customer, with Customer ID of 1, to Gabriel and his phone to 98131051.


    Expected Output

    Edited Customer:
    
    [1] Gabriel
    
    Phone: 98131051
    
    Email: johnd@example.com
    
    Address: 311, Clementi Ave 2, #02-25
    
  • customer edit 2 --name Joe --email yangyang@gmail.com --address Block 10 Tampines Road

    Explanation

    Edits the name of the Customer, with Customer ID of 2, to Joe, his email to yangyang@gmail.com and his address to Block 10 Tampines Road.


    Expected Output

    Edited Customer:
    
    [2] Joe
    
    Phone: 98765432
    
    Email: yangyang@gmail.com
    
    Address: Block 10 Tampines Road
    

↑ Back to Table of Contents


Delete a Customer

By calling this command, you can delete any Customer and get rid of all their data for good if they no longer require your services.


❗️

Warning: Be careful! All Deliveries associated with the Customer will also be deleted. You won't be able to undo this deletion!


Format:

customer delete CUSTOMER_ID


⚙️

Parameter: CUSTOMER_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Customer's ID.


Example:

  • customer delete 1

    Explanation

    Deletes the Customer with ID 1.


    Expected Output

    Deleted Customer:
    
    [1] Gabriel
    
    Phone: 98131051
    
    Email: johnd@example.com
    
    Address: 311, Clementi Ave 2, #02-25
    

↑ Back to Table of Contents


Delivery

Add a Delivery

By using this command, you can incorporate Deliveries associated with your Customers into HomeBoss. Adding a Delivery is the initial step that later enables you to monitor the Delivery's status and other relevant details with our suite of Delivery-related commands.


ℹ️

Note:

  • Deliveries consist of a Delivery name, a Customer ID, an order date, an expected Delivery date, a Delivery status, an address to ship to, and a Delivery note (optional). The Delivery note can be added only after the creation of a Delivery, using the delivery note command here.

  • You don't have to fill in order date, Delivery status and address. Instead they will be initialised with these values:

    • Order date: Today's date

    • Delivery status: CREATED

    • Address: Customer's address

  • Delivery status can be one of CREATED, SHIPPED, COMPLETED, CANCELLED.


Format:

delivery add DELIVERY_NAME --customer CUSTOMER_ID --date EXPECTED_DELIVERY_DATE


⚙️

Parameters:

  • DELIVERY_NAME must be alphanumeric and can contain spaces.

  • CUSTOMER_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Customer's ID.

  • EXPECTED_DELIVERY_DATE must be today or after today's date in yyyy-MM-dd format.


Example:

  • delivery add Chocolate Cake --customer 1 --date 2023-12-12

    Explanation

    Adds a Delivery with the name Chocolate Cake for the Customer with ID 1. The expected Delivery date is set to 2023-12-12, the order date is automatically set to today's date, the Delivery status is initialised to CREATED, and the Delivery address is the same as the Customer's address.


    Expected Output


↑ Back to Table of Contents


View details of a Delivery

You can see all the information of a Delivery by calling this command. The data displayed includes the Delivery's name, status, Customer, Customer ID, address, order date, expected Delivery date and notes (if any). This keeps you informed of the details which you might need to help you prepare for the Delivery.


Format:

delivery view DELIVERY_ID


⚙️

Parameter: DELIVERY_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Delivery's ID.


Example:

  • delivery view 1

    Explanation

    Displays the details of the Delivery with Delivery ID of 1.


    Expected Output


↑ Back to Table of Contents


View a list of Deliveries

This command allows you to view a list of all the Deliveries that you have added to HomeBoss. On top of that, you are able to get a list of filtered Deliveries or a list of Deliveries that are sorted based on certain criteria that you are interested in. With this, you will be able to pinpoint certain Deliveries that you are looking for in a neat and organised manner.


ℹ️

Note: This is a more powerful command than customer list, as it allows you to filter the list of Deliveries by status, Customer ID and/or expected Delivery date. This command also allows you to sort the list of Deliveries by expected Delivery date in either ascending or descending order. By default, the list of Deliveries will be sorted by expected Delivery date in descending order (latest first).


Format:

delivery list [--status STATUS] [--customer CUSTOMER_ID] [--date EXPECTED_DELIVERY_DATE] [--sort SORT]


⚙️

Parameters:

  • STATUS accepts the following values: CREATED/SHIPPED/COMPLETED/CANCELLED.

  • CUSTOMER_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Customer's ID.

  • EXPECTED_DELIVERY_DATE must be today or after today's date in yyyy-MM-dd format OR TODAY for today’s date.

  • SORT accepts the following values: ASC/DESC.

  • If duplicate prefixes are provided, only the last occurrence of each prefix will be used.


Example:

  • delivery list --status CREATED --customer 1 --sort DESC

    Explanation

    Lists all Deliveries with status CREATED, for the Customer with ID 1, with expected Delivery date in descending order.


    Expected Output

💡

Tips:

  • You may combine any of the filter and sort options to get the list of Deliveries that you want.

  • Delivery status is not case-sensitive. You can type created instead of CREATED and it will still work.

↑ Back to Table of Contents


Find Deliveries

If you cannot remember the full name of a Delivery, you can find the Delivery with this command. It finds Deliveries whose names has words that exactly match any of the given keywords.


ℹ️

Note:

  • You must provide at least one keyword to search for the Delivery.

  • You can optionally provide additional keywords. Deliveries that has names matching any of the given keywords will be displayed. For example, the keywords Chocolate and Bun in Chocolate Bun will display Chocolate Cake, Chocolate Bun, and Strawberry Bun.

  • The keyword must exactly match any word in the Delivery name. For example, the keyword Straw will match Straw but not Strawberry.

  • The search is not case sensitive.


Format:

delivery find KEYWORD [MORE_KEYWORDS...]


⚙️

Parameters:

  • Each KEYWORD cannot contain spaces. Spaces are used to differentiate between various keywords.

  • If there's more than one KEYWORD, there has to be a space between each KEYWORD.


Example:

  • delivery find Gambes Banana

    Explanation

    Finds all Deliveries whose name has words that exactly match Gambes or Banana.


    Expected Output


↑ Back to Table of Contents


Update details of a Delivery

This command is useful for changing the information of a Delivery, such as due to a change in the details of a Delivery or in the event that you keyed in the Delivery's details wrongly.


❗️

Warning: Be careful! You won't be able to undo this edit action!


Format:

delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date EXPECTED_DELIVERY_DATE][--status STATUS] [--note NOTE]


⚙️

Parameters:

  • At least one of the optional fields must be provided.

  • DELIVERY_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Delivery's ID.

  • DELIVERY_NAME must be alphanumeric and can contain spaces.

  • CUSTOMER_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Customer's ID.

  • EXPECTED_DELIVERY_DATE must be today or after today's date in yyyy-MM-dd format.

  • STATUS accepts the following values: CREATED/SHIPPED/COMPLETED/CANCELLED.

  • NOTE must be alphanumeric and can contain spaces.


Examples:

  • delivery edit 1 --status CANCELLED --note Sudden overseas business trip to attend to

    Explanation

    Edits the Delivery's status of the Delivery, with Delivery ID of 1, to CANCELLED and edits the note of the Delivery to Sudden overseas business trip to attend to. If this Delivery does not already have a note, a note will be created for it.


    Expected Output

    Edited Delivery:
    
    [1] furniture
    
    Status: CANCELLED
    
    Customer: Joe
    
    Customer ID: 2
    
    Address: Block 10 Tampines Road
    
    Ordered On: 2023-11-13
    
    Expected Delivery Date: 2023-12-03
    
    Note: Sudden overseas business trip to attend to
    

  • delivery edit 2 --name Vanilla Cake --customer 3

    Explanation

    Edits the name of the Delivery, with Delivery ID of 2, to Vanilla Cake and edits the Customer of the Delivery to the Customer with ID of 3.


    Expected Output

    Edited Delivery:
    
    [2] Vanilla Cake
    
    Status: CREATED
    
    Customer: John Doe
    
    Customer ID: 3
    
    Address: 311, Clementi Ave 2, #02-25
    
    Ordered On: 2023-11-13
    
    Expected Delivery Date: 2023-12-03
    

💡

Tips:

  • If you only want to update the Delivery's status, simply use delivery status instead.

  • Delivery status is not case sensitive. You can type created instead of CREATED and it will still work.

  • If you only want to create or update the Delivery's note, you can use delivery note instead as a shortcut.

↑ Back to Table of Contents


Update status of a Delivery

An order can have one of the following statuses: CREATED, SHIPPED, COMPLETED or CANCELLED. This command allows you to update the status of a Delivery to any of the aforementioned statuses, according to the progress of the Delivery for your easy tracking.


Format: delivery status DELIVERY_ID STATUS


⚙️

Parameters:

  • DELIVERY_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Delivery's ID.

  • STATUS accepts the following values: CREATED/SHIPPED/COMPLETED/CANCELLED.


Examples:

  • delivery status 1 CANCELLED

    Explanation

    Updates the status of Delivery with ID 1 to CANCELLED.


    Expected Output

    Edited Delivery:
    
    [1] furniture
    
    Status: CANCELLED
    
    Customer: Joe
    
    Customer ID: 2
    
    Address: Block 10 Tampines Road
    
    Ordered On: 2023-11-13
    
    Expected Delivery Date: 2023-12-03
    
    Note: Sudden overseas business trip to attend to
    

  • delivery status 2 SHIPPED

    Explanation

    Updates the status of Delivery with ID 2 to SHIPPED.


    Expected Output

    Edited Delivery:
    
    [2] Vanilla Cake
    
    Status: SHIPPED
    
    Customer: John Doe
    
    Customer ID: 3
    
    Address: 311, Clementi Ave 2, #02-25
    
    Ordered On: 2023-11-13
    
    Expected Delivery Date: 2023-12-03
    

💡

Tip: Delivery status is not case sensitive. You can type created instead of CREATED and it will still work.


↑ Back to Table of Contents


Create a note for a Delivery

If you would like to note down additional information about a specific Delivery, this command allows you to do so. This is also a shortcut, as opposed to using the lengthier delivery edit command found here.


ℹ️

Note: If the Delivery already has a note, the previous note will be overwritten by the new given note.


Format:

delivery note DELIVERY_ID --note NOTE


⚙️

Parameters:

  • DELIVERY_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Delivery's ID.

  • NOTE must be alphanumeric and can contain spaces.


Example:

  • delivery note 1 --note By FedEx

    Explanation

    Creates a new note By FedEx for the Delivery with ID 1.


    Expected Output

    Added Note to Delivery:
    
    [1] furniture
    
    Status: CANCELLED
    
    Customer: Joe
    
    Customer ID: 2
    
    Address: Block 10 Tampines Road
    
    Ordered On: 2023-11-13
    
    Expected Delivery Date: 2023-12-03
    
    Note: By FedEx
    

↑ Back to Table of Contents


Delete a Delivery

If you feel that a Delivery is no longer relevant (i.e., CANCELLED or COMPLETED), you can delete it from HomeBoss using this command.


❗️

Warning: Be careful! This action is irreversible. Once deleted, the Delivery cannot be recovered.


Format:

delivery delete DELIVERY_ID


⚙️

Parameter: DELIVERY_ID must be an integer greater than 0 and less than 2147483648 that corresponds to an existing Delivery's ID.


Example:

  • delivery delete 1

    Explanation

    Deletes the Delivery with ID of 1 from the Delivery database.


    Expected Output

    Deleted Delivery:
    
    [1] furniture
    
    Status: CANCELLED
    
    Customer: Joe
    
    Customer ID: 2
    
    Address: Block 10 Tampines Road
    
    Ordered On: 2023-11-13
    
    Expected Delivery Date: 2023-12-03
    
    Note: By FedEx
    

↑ Back to Table of Contents


Miscellaneous

Help

This command allows you to view a summary of the commands available, the format of the commands.


Format: help


Example:

  • help

    Explanation

    Displays the help page in app.


    Expected Output

💡

Tip: This command can be used at any time, regardless of whether you are logged in or not.


↑ Back to Table of Contents


Exit

You can exit the program by calling this command.


ℹ️

Note: If you are logged in, this command will automatically log you out of your account and close the application.


Format:
exit


Example:

  • exit

    Explanation

    Exits HomeBoss and logs out of the account if logged in.


    Expected Output

    Closes the application window.


💡

Tip: This command can be used at any time, regardless of whether you are logged in or not.


↑ Back to Table of Contents

Clear

In the event that you want to perform a complete reset of HomeBoss' Customer and Delivery database, you can easily clear all your Customer and Delivery data by calling this command.


❗️

Warning: Be careful, this action is irreversible! All your Customer and Delivery data will be deleted permanently. Proceed with caution!


Format:
clear


Example:

  • clear

    Explanation

    Clears both Customer and Delivery databases.


    Expected Output

    Database has been cleared!


↑ Back to Table of Contents


FAQ


Q: Where do I get support for HomeBoss?

A: You can raise an issue on our GitHub repository.

Q: How do I report a bug?

A: You can raise a bug report on our GitHub repository.

Q: How do I import my data from another software?

A: You can import your data by converting your data into .json in the format of the Customer and Delivery data in the data folder.

Q: How do I export my data to another software?

A: It is currently not possible to export your data to another software.

Q: Why is there an error when I input non-English characters?

A: HomeBoss only supports English characters.


↑ Back to Table of Contents


Command Summary

User

Command Format Examples
Register register --user USERNAME --password PASSWORD --confirmPass CONFIRM_PASSWORD --secretQn SECRET_QUESTION --answer ANSWER register --user Gabriel --password GabrielIsGreat --confirmPass GabrielIsGreat --secretQn First Pet Name? --answer Koko
Login login --user USERNAME --password PASSWORD login --user Gabriel --password GabrielIsGreat
Update update [--user USERNAME] [--password PASSWORD --confirmPass CONFIRM_PASSWORD] [--secretQn SECRET_QUESTION --answer ANSWER] update --user GabrielV2 --password GabrielIsBest --confirmPass GabrielIsBest --secretQn Favourite Pet --answer BoBo
Recover recover account [--answer ANSWER --password NEW_PASSWORD --confirmPass CONFIRM_PASSWORD] recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123
Logout logout logout
Delete delete account delete account


Customer

Command Format Examples
Add customer add --name NAME --phone PHONE_NUMBER --email EMAIL --address ADDRESS customer add --name Gabriel --phone 87654321 --email Gabrielrocks@gmail.com --address RVRC Block B
View customer view CUSTOMER_ID customer view 1
List customer list customer list
Find customer find KEYWORD [MORE_KEYWORDS] customer find Julius Yang
Edit customer edit CUSTOMER_ID [--name NAME] [--phone PHONE_NUMBER] [--email EMAIL] [--address ADDRESS] customer edit 1 --name Gabriel --phone 97659320 --email Gabrielrock@gmail.com --address Block 10 Tampines Road
Delete customer delete CUSTOMER_ID customer delete 1


Delivery

Command Format Examples
Add delivery add DELIVERY_NAME --customer CUSTOMER_ID --date EXPECTED_DELIVERY_DATE delivery add furniture --customer 5 --date 2023-12-03
View delivery view DELIVERY_ID delivery view 1
List delivery list [--status STATUS] [--customer CUSTOMER_ID] [--date EXPECTED_DELIVERY_DATE] [--sort SORT] delivery list --status created --customer 1 --date 2023-12-12 --sort desc
Find delivery find KEYWORD [MORE_KEYWORDS] delivery find Chocolate Bun
Edit delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date EXPECTED_DELIVERY_DATE] [--status STATUS] [--note NOTE] delivery edit 1 --name Chocolate Cake --customer 2 --date 2024-12-12 --status CANCELLED --note Customer changed his mind
Status delivery status DELIVERY_ID STATUS delivery status 2 completed
Note delivery note DELIVERY_ID --note NOTE delivery note 1 --note By FedEx
Delete delivery delete DELIVERY_ID delivery delete 1


Miscellaneous

Command Format Examples
Exit exit exit
Help help help
Clear clear clear

↑ Back to Table of Contents