From 34156457ce71538815a92370a47a744d225c354d Mon Sep 17 00:00:00 2001 From: jianyangg Date: Thu, 9 Nov 2023 14:12:34 +0800 Subject: [PATCH 1/4] Add Parameters box to UG --- docs/UserGuide.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 1de632b5971..e8d0b054388 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -115,6 +115,14 @@ you may refer to the [Developer Guide](./DeveloperGuide.md). +**Parameter Box** + + + +**Parameters:** 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 [Command Format](#homeboss-s-command-format) section. + + + **Links** * Words in blue are [links](#navigating-the-user-guide) that you can click on to navigate to the relevant section. @@ -237,8 +245,8 @@ Don't worry if the commands seem daunting, the HomeBoss team has carefully craft 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) +(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 Delivery Command](#add-delivery) for example: @@ -253,7 +261,7 @@ delivery add DELIVERY_NAME --customer CUSTOMER_ID --date DELIVERY_DATE
-However not all commands have **Prefixes**, take the +However, not all commands have **Prefixes**, take the [Update Delivery Status Command](#update-delivery-status) for example: ```swift From 69f0bca795bf47ee84f5a56816f530f6a53aa188 Mon Sep 17 00:00:00 2001 From: jianyangg Date: Thu, 9 Nov 2023 17:31:19 +0800 Subject: [PATCH 2/4] Update UG to standardise formatting --- docs/UserGuide.md | 897 ++++++++++++++++++++++++++-------------------- 1 file changed, 502 insertions(+), 395 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e8d0b054388..a92d664a091 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,23 +2,18 @@ # About HomeBoss -HomeBoss is a desktop application for **home-based business owners** to **manage their Customers and Deliveries**. -HomeBoss streamlines the process of your operations, optimises your resources, and enhances your overall business -experience. +HomeBoss is a powerful desktop application designed specifically for **home-based business owners**, offering **efficient Customer and Delivery management solutions**. With HomeBoss, you can streamline your administrative processes and elevate your overall business experience to new heights. With our application, you will be able to: - * Keep track of the details of your Customers and Deliveries -* Search for a particular Customer/Delivery easily +* 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! -All these are done to improve your efficiency and productivity all while being incredibly simple to use. -HomeBoss is also **optimised for fast typist with the use of a Command Line Interface (CLI)**, allowing you to -execute commands quickly. On top of that, we utilise a *Graphical User Interface (GUI)* to let you view your -data in a neater and more organised manner. +HomeBoss's goal is to improve 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. -Essentially, with HomeBoss, you can **focus on what matters most: running your business**. +With HomeBoss, you can now **focus on what matters most: running your business.** --- @@ -29,45 +24,45 @@ Essentially, with HomeBoss, you can **focus on what matters most: running your b   3\. [About this User Guide](#about-this-user-guide)
  4\. [Navigating the User Guide](#navigating-the-user-guide)
  5\. [Getting Started](#getting-started)
-       5.1 [Prerequisites](#prerequisites)
-       5.2 [Installing HomeBoss](#installing-homeboss)
-       5.3 [Understanding our layout](#understanding-our-layout)
-       5.4 [HomeBoss's Command Format](#homeboss-s-command-format)
-       5.5 [Registering and creating your first Delivery](#registering-and-creating-your-first-delivery)
-       5.6 [Editing the data file](#editing-the-data-file)
+       5.1. [Prerequisites](#prerequisites)
+       5.2. [Installing HomeBoss](#installing-homeboss)
+       5.3. [Understanding our layout](#understanding-our-layout)
+       5.4. [HomeBoss's Command Format](#homeboss-s-command-format)
+       5.5. [Registering and creating your first Delivery](#registering-and-creating-your-first-delivery)
+       5.6. [Editing the data file](#editing-the-data-file)
  6\. [Feature Summary](#feature-summary)
-       6.1 [User features summary](#user-features-summary)
-       6.2 [Customer features summary](#customer-features-summary)
-       6.3 [Delivery features summary](#delivery-features-summary)
-       6.4 [Miscellaneous features summary](#miscellaneous-features-summary)
+       6.1. [User features summary](#user-features-summary)
+       6.2. [Customer features summary](#customer-features-summary)
+       6.3. [Delivery features summary](#delivery-features-summary)
+       6.4. [Miscellaneous features summary](#miscellaneous-features-summary)
  7\. [Features](#features)
-       7.1 [User](#user)
-             7.1.1 [Register](#register)
-             7.1.2 [Login](#login)
-             7.1.3 [Update Account details](#update-account-details)
-             7.1.4 [Logout](#logout)
-             7.1.5 [Recover Account](#recover-account)
-             7.1.6 [Delete Account](#delete-account)
-       7.2 [Customer](#customer)
-             7.2.1 [Add a Customer](#add-a-customer)
-             7.2.2 [View details of a Customer](#view-details-of-a-customer)
-             7.2.3 [View a list of Customers](#view-a-list-of-customers)
-             7.2.4 [Find Customers](#find-customers)
-             7.2.5 [Update details of a Customer](#update-details-of-a-customer)
-             7.2.6 [Delete a Customer](#delete-a-customer)
-       7.3 [Delivery](#delivery)
-             7.3.1 [Add a Delivery](#add-a-delivery)
-             7.3.2 [View details of a Delivery](#view-details-of-a-delivery)
-             7.3.3 [View a list of Deliveries](#view-a-list-of-deliveries)
-             7.3.4 [Find Deliveries](#find-deliveries)
-             7.3.5 [Update details of a Delivery](#update-details-of-a-delivery)
-             7.3.6 [Update status of a Delivery](#update-status-of-a-delivery)
-             7.3.7 [Create a note for a Delivery](#create-a-note-for-a-delivery)
-             7.3.8 [Delete a Delivery](#delete-a-delivery)
-       7.4 [Miscellaneous](#miscellaneous)
-             7.4.1 [Help](#help)
-             7.4.2 [Exit](#exit)
-             7.4.3 [Clear](#clear)
+       7.1. [User](#user)
+             7.1.1. [Register](#register)
+             7.1.2. [Login](#login)
+             7.1.3. [Update Account details](#update-account-details)
+             7.1.4. [Logout](#logout)
+             7.1.5. [Recover Account](#recover-account)
+             7.1.6. [Delete Account](#delete-account)
+       7.2. [Customer](#customer)
+             7.2.1. [Add a Customer](#add-a-customer)
+             7.2.2. [View details of a Customer](#view-details-of-a-customer)
+             7.2.3. [View a list of Customers](#view-a-list-of-customers)
+             7.2.4. [Find Customers](#find-customers)
+             7.2.5. [Update details of a Customer](#update-details-of-a-customer)
+             7.2.6. [Delete a Customer](#delete-a-customer)
+       7.3. [Delivery](#delivery)
+             7.3.1. [Add a Delivery](#add-a-delivery)
+             7.3.2. [View details of a Delivery](#view-details-of-a-delivery)
+             7.3.3. [View a list of Deliveries](#view-a-list-of-deliveries)
+             7.3.4. [Find Deliveries](#find-deliveries)
+             7.3.5. [Update details of a Delivery](#update-details-of-a-delivery)
+             7.3.6. [Update status of a Delivery](#update-status-of-a-delivery)
+             7.3.7. [Create a note for a Delivery](#create-a-note-for-a-delivery)
+             7.3.8. [Delete a Delivery](#delete-a-delivery)
+       7.4. [Miscellaneous](#miscellaneous)
+             7.4.1. [Help](#help)
+             7.4.2. [Exit](#exit)
+             7.4.3. [Clear](#clear)
  8\. [FAQ](#faq)
  9\. [Command Summary](#command-summary)
@@ -89,6 +84,12 @@ commands available in HomeBoss. If you would like to learn about the technical aspects of HomeBoss, you may refer to the [Developer Guide](./DeveloperGuide.md). +
+ +[↑ Back to Table of Contents](#table-of-contents) + +--- + # Navigating the User Guide **Warning Box** @@ -99,6 +100,8 @@ you may refer to the [Developer Guide](./DeveloperGuide.md). +
+ **Note Box** @@ -107,6 +110,8 @@ you may refer to the [Developer Guide](./DeveloperGuide.md). +
+ **Tip Box** @@ -115,14 +120,18 @@ you may refer to the [Developer Guide](./DeveloperGuide.md). +
+ **Parameter Box** -**Parameters:** 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 [Command Format](#homeboss-s-command-format) section. +**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 [Command Format](#homeboss-s-command-format) section. +
+ **Links** * Words in blue are [links](#navigating-the-user-guide) that you can click on to navigate to the relevant section. @@ -136,48 +145,56 @@ you may refer to the [Developer Guide](./DeveloperGuide.md). ## Prerequisites -Ensure that you have `Java 11`{.swift} or above installed on your computer. If you are unsure how to do so you may view +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](https://www.java.com/en/download/help/version_manual.html). -**Tip**: You may find the following links helpful should you need to install `Java 11`{.swift} +**Tip**: You may find the following links helpful should you need to install `Java 11` : -1. [Java 11 Release](https://www.oracle.com/java/technologies/downloads/#java11). +1. [Java 11 Release](https://www.oracle.com/java/technologies/downloads/#java11) 2. [Java 11 Installation Guide](https://docs.oracle.com/en/java/javase/11/install/overview-jdk-installation.html#GUID-8677A77F-231A-40F7-98B9-1FD0B48C346A) - . + +
+ +[↑ Back to Table of Contents](#table-of-contents) + ##
Installing HomeBoss 1. You may download the latest release of **HomeBoss** from [here](https://github.com/AY2324S1-CS2103T-T13-3/tp/releases/latest). - (Please download the file named `HomeBoss.jar`{.swift}) -2. Move the downloaded file `HomeBoss.jar`{.swift} into the folder that you want to use as the home folder for your + (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 must be empty and should not contain any other -files/folder before the application is launched for the first time. +**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. -3. Run `HomeBoss.jar`{.swift}. If you are unsure how to run a `.jar` file, you may refer to this helpful - [guide](https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Run-JAR-file-example-windows-linux-ubuntu) - . -4. If everything went well, you should be greeted by a window similar to the one below. -5. We recommend reading how to [understand the layout](#understanding-the-layout) - and familiarizing yourself with [HomeBoss's command format](#homebosss-command-format) - before learning how to [add your first delivery](#adding-your-first-delivery). +3. Run `HomeBoss.jar`. If you are unsure of how to run a `.jar` file, you may refer to this helpful + [guide](https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Run-JAR-file-example-windows-linux-ubuntu). +4. If everything went well, you will be greeted by a window similar to the one shown below. +5. If you are a first time user, we highly recommend reading the following sections to familiarise yourself with HomeBoss's layout and commands: + * [Understanding our layout](#understanding-our-layout)
+ * [HomeBoss's Command Format](#homeboss-s-command-format)
+ * [Registering and creating your first Delivery](#registering-and-creating-your-first-delivery) ![HomeBoss Start Page](images/getting-started/register.png) -## Understanding our layout +
+ +[↑ Back to Table of Contents](#table-of-contents) + +##
Understanding our layout -Don't worry if you don't understand what you're looking at. Let's go through a quick run down of HomeBoss's 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](images/getting-started/homepage_annotated.png) @@ -189,23 +206,27 @@ the application for the first time. -### Command Box +
+ +[↑ Back to Table of Contents](#table-of-contents) + +###
Command Box ![HomeBoss Command Box](images/getting-started/command_box.png){style="display: block; margin: 0 auto;"} 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`{.swift} command and hitting enter! -### Command Result/FeedBack +###
Command Result / Feedback -![Command Result FeedBack](images/getting-started/help_feedback.png){style="display: block; margin: 0 auto;"} +![Command Result Feedback](images/getting-started/help_feedback.png){style="display: block; margin: 0 auto;"} -The Command Result/Feedback Box is where HomeBoss will provide you the results or feedback about +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`{.swift} 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 +###
Customer / Delivery List @@ -217,27 +238,33 @@ You can use the scroll bar on the right to scroll through a long result or feedb - - + +
List of CustomersList of DeliveriesList of CustomersList of Deliveries
-The Customer/Delivery List Panel is where you will be able to find the Customers and Deliveries that you have added to +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`{.swift} 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](#features). -* The `ID`{.swift} generated are guaranteed to be unique but may not be consecutive and may not start from 1. + More details of these commands can be found in [Features](#features).

+* The `ID`{.swift} generated are guaranteed to be unique but may not be consecutive and may not start from 1.
![Command Result FeedBack](images/getting-started/delivery_card.png){style="display: block; margin: 0 auto;"}
+
+ +[↑ Back to Table of Contents](#table-of-contents) + ##
HomeBoss's Command Format Commands are your main form of interaction with HomeBoss, and is the way to carry out various operations in HomeBoss. @@ -248,135 +275,146 @@ 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 Delivery Command](#add-delivery) for example: +Take the [Add a Delivery](#add-a-delivery) command for example: ```swift delivery add DELIVERY_NAME --customer CUSTOMER_ID --date DELIVERY_DATE ``` -* The **Command Phrase** is `delivery add`{.swift} -* The **Parameters** are the words in `UPPER_CASE`{.swift}, for example `DELIVERY_NAME`{.swift} or `CUSTOMER_ID`{.swift} -* The **Prefixes** are special keywords that are preceded by `--`{.SWIFT}, such as `--customer`{.swift} and - `--date`{.swift} +* The **Command Phrase** is `delivery add`{.swift}. +* The **Parameters** are the words in uppercase, for example `DELIVERY_NAME`{.swift} or `CUSTOMER_ID`{.swift}. +* The **Prefixes** are special keywords that are preceded by `--`{.swift}, such as `--customer`{.swift} and + `--date`{.swift}.
-However, not all commands have **Prefixes**, take the -[Update Delivery Status Command](#update-delivery-status) for example: +However, not all commands have **Prefixes**. Take the +[Update status of a Delivery](#update-status-of-a-delivery) command as example: ```swift delivery status STATUS CUSTOMER_ID ``` -* The **Command Phrase** is `delivery status`{.swift} -* The **Parameters** are `STATUS`{.swift} and `CUSTOMER_ID`{.swift} -* It has no **Prefixes** +* The **Command Phrase** is `delivery status`{.swift}. +* The **Parameters** are `STATUS`{.swift} and `CUSTOMER_ID`{.swift}. +* It has no **Prefixes**.
-Not all commands have **Parameters** as well, take the -[Logout Command](#logout) for example: +Not all commands have **Parameters** as well. Take the +[Logout](#logout) command as example: ```swift logout ``` -* The **Command Phrase** is `logout`{.swift} -* It has no **Parameters** +* The **Command Phrase** is `logout`{.swift}. +* It has no **Parameters**. + +
**Note**: * Command Phrase are keywords or short phrases that are unique to each Command. -* Words that are in `UPPER_CASE`{.swift} are parameters that are to be supplied by you. +* Words that are in uppercase are parameters that are to be supplied by you. * Parameters that are preceded by a prefix must be supplied after that prefix, e.g. `--name DELIVERY_NAME`{.swift} - must be given as, for example, `--name furniture`{.swift} and not `furniture`{.swift} or `--name`{.swift} -* Items that are placed in square brackets (`[]`{.swift}) are optional, e.g. `DELIVERY_ID [--name DELIVERY_NAME]` - {.swift} can either be - `1`{.swift} or `1 --name furniture`{.swift}. + must be given as, for example, `--name furniture` and not `furniture` or `--name`. +* Items that are placed in square brackets (`[]`{.swift}) are optional, e.g. `DELIVERY_ID [--name DELIVERY_NAME]`{.swift} can either be + `1` or `1 --name furniture`. * However, items that are grouped together in square brackets (`[]`{.swift}) must all be provided together, e.g. for `[--password PASSWORD --confirmPass CONFIRM_PASSWORD]`{.swift} both `PASSWORD`{.swift} and `CONFIRM_PASSWORD`{.swift} must be provided. * Extraneous parameters for commands that do not have parameters (e.g. `customer list`{.swift} or `clear`{.swift}) will - be ignored, e.g. `customer list 123`{.swift}. + be ignored, e.g. `customer list 123`. * Parameters that have `...`{.swift} as a postfix can be given one or more times, e.g. `KEYWORDS...`{.swift} can be - given as `Query`{.swift} or `Query AnotherQuery`{.swift}. + given as `Keyword` or `Keyword AnotherKeyword`. * **Command Phrase** and **Prefixes** are **case-sensitive**! e.g. `clear`{.swift} is a valid command word but - `customer LIST`{.swift} is not a valid command word. + `customer LIST` is not a valid command word. * Leading and trailing whitespaces of parameters will be trimmed, i.e., spaces added between `--password`{.swift} and `PASSWORD`{.swift} in `--password PASSWORD`{.swift} will be removed. +
+ +[↑ Back to Table of Contents](#table-of-contents) + ##
Registering and creating your first Delivery -Hopefully at this point, you have a good understanding of the basics of HomeBoss. Let's get you started on HomeBoss -by 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. First register for HomeBoss using the `register`{.swift} command. So, for example, if you want to register an account +1. Let's first register for HomeBoss using the `register`{.swift} command. Suppose you want to register an account with the following details: -* `USERNAME`{.swift}: Alex123 -* `PASSWORD`{.swift}: AlexIsGreat -* `CONFIRM_PASSWORD`{.swift}: AlexIsGreat -* `SECRET_QUESTION`{.swift}: First Pet Name? -* `ANSWER`{.swift}: KoKo +* `USERNAME`{.swift} : yourUsername +* `PASSWORD`{.swift} : AlexIsGreat +* `CONFIRM_PASSWORD`{.swift} : AlexIsGreat +* `SECRET_QUESTION`{.swift} : First Pet Name? +* `ANSWER`{.swift} : Koko -Type `register --user Alex123 --password AlexIsGreat --confirmPass AlexIsGreat --secretQn First Pet Name? ---answer Koko`{.swift} into the Command Box and hit enter. More details on the command can be found [here](#register). +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](#register). + +
-**Note**: Only 1 account can be registered to HomeBoss at any one time. +**Note**: Only 1 account can be registered in HomeBoss at any one time. +
+ 2. 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. -3. Let's assume that a new Customer, Gabriel, is to be added, using the `customer add`{.swift} command. +3. Let's now add a new Customer, `Gabriel`, to HomeBoss' Customer database using the `customer add`{.swift} command. -* `NAME`{.swift}: Gabriel -* `PHONE`{.swift}: 87654321 -* `EMAIL`{.swift}: gabrielrocks@gmail.com -* `ADDRESS`{.swift}: RVRC Block B +* `NAME`{.swift} : Gabriel +* `PHONE`{.swift} : 87654321 +* `EMAIL`{.swift} : gabrielrocks@gmail.com +* `ADDRESS`{.swift} : RVRC Block B -4. Type `customer add --name Gabriel --phone 87654321 --email gabrielrocks@gmail.com --address RVRC Block B`{.swift} +4. Type `customer add --name Gabriel --phone 87654321 --email gabrielrocks@gmail.com --address RVRC Block B` into the Command Box and hit enter. -5. A new Customer called Gabriel should be added, you should see a new Customer similar to the image below. +5. 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](images/getting-started/customer_add.png){style="display: block; margin: 0 auto;"} -6. Now, let's add a new Delivery for Gabriel into HomeBoss, suppose Gabriel ordered a MacBook Pro. +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`{.swift}: MacBook Pro -* `DELIVERY_DATE`{.swift}: 2023-12-03 +* `DELIVERY_NAME`{.swift} : MacBook Pro +* `DELIVERY_DATE`{.swift} : 2023-12-03 -7. Type `delivery add MacBook Pro --customer CUSTOMER_ID --date 2023-12-03`{.swift}, replacing `CUSTOMER_ID`{.swift} +7. Type `delivery add MacBook Pro --customer CUSTOMER_ID --date 2023-12-03`, replacing `CUSTOMER_ID`{.swift} with Gabriel's ID, and hit enter. -8. A new Delivery should have been added for Gabriel, you should see a new Delivery similar to the image below. +8. 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](images/getting-started/delivery_add.png){style="display: block; margin: 0 auto;"} Congratulations! You have just successfully added your first Customer and Delivery! -HomeBoss has many other features for you to try to streamline your Delivery workflow. Take a look at our -[Features](#features) below for even more commands and their details! - ---- +HomeBoss is packed with many more features to help you manage your Customers and Deliveries. +Check them out under the [Features](#features) section to learn more! ##
Editing the data file -HomeBoss stores your data in a JSON file automatically `[JAR file location]/data/addressbook.json`{.swift}. Advanced +HomeBoss stores your data in a JSON file automatically `[JAR file location]/data/addressbook.json`. Advanced users are welcome to update data directly by editing the data file. -**Warning:** If the files are edited and contain invalid data, HomeBoss will discard the entire data file and start with an empty data file during the next run. (If the Customer data file contains invalid data, the entire Delivery data file will also be deleted. However, if the Delivery data file contains invalid data, the Customer data file will remain unaffected.) +**Warning:** If the files are edited and contain invalid data as a result, HomeBoss will discard the entire data file and start with an empty data file during the next run. (If the Customer data file contains invalid data, the entire Delivery data file will also be deleted. However, if the Delivery data file contains invalid data, the Customer data file will remain unaffected.) +
+ +[↑ Back to Table of Contents](#table-of-contents) + --- # Feature Summary @@ -384,7 +422,7 @@ users are welcome to update data directly by editing the data file. Here is a brief introduction to all the features in HomeBoss. For more detailed information, please refer to the [Features](#features) section. -## User features summary +##
User features summary _These are features for managing your user account in HomeBoss._ @@ -395,7 +433,7 @@ _These are features for managing your user account in HomeBoss._ - `logout` - Logs out of your user account. - `delete account` - Deletes your user account. -## Customer features summary +##
Customer features summary _These are features for managing your Customers in HomeBoss._ @@ -406,7 +444,7 @@ _These are features for managing your Customers in HomeBoss._ - `customer edit` - Updates the details of an existing Customer in the address book. - `customer delete` - Deletes the specified Customer from the address book. -## Delivery features summary +##
Delivery features summary _These are features for managing your Deliveries in HomeBoss._ @@ -419,13 +457,13 @@ _These are features for managing your Deliveries in HomeBoss._ - `delivery note` - Creates a note for a specified Delivery. - `delivery delete` - Deletes the specified Delivery from the delivery book. -## Miscellaneous features summary +##
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. **Warning:** This action is irreversible. +- `clear` - Clears both Customer and Delivery database.
@@ -442,32 +480,39 @@ _These are general features in HomeBoss._ You can register for a new user account with HomeBoss by calling this command. +
+ + + +**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`{.swift} -
+
- + -**Note:** +**Parameter(s):** -* `USERNAME`{.swift} must be alphanumeric. -* `PASSWORD`{.swift} must be at least 8 alphanumeric characters long. -* `CONFIRM_PASSWORD`{.swift} must be the same as `PASSWORD`{.swift}. -* `SECRET_QUESTION`{.swift} can include any characters but must not be empty. -* `ANSWER`{.swift} can include any characters but must not be empty. -* `SECRET_QUESTION`{.swift} and `ANSWER`{.swift} will be used for account recovery. -* Only one account can be registered at any one time. +* `USERNAME`{.swift} must be alphanumeric.

+* `PASSWORD`{.swift} must be at least 8 alphanumeric characters long.

+* `CONFIRM_PASSWORD`{.swift} must be the same as `PASSWORD`{.swift}.

+* `SECRET_QUESTION`{.swift} can include any characters but must not be empty.

+* `ANSWER`{.swift} can include any characters but must not be empty.

+* `SECRET_QUESTION`{.swift} and `ANSWER`{.swift} will be used for account recovery.
-
+

**Example:** -* `register --user Gabriel --password GabrielIsGreat --confirmPass GabrielIsGreat --secretQn First Pet Name? --answer Koko`{.swift}
+* `register --user yourUsername --password GabrielIsGreat --confirmPass GabrielIsGreat --secretQn First Pet Name? --answer Koko`
- Registers a new user account with the username `Gabriel`{.swift}, password `GabrielIsGreat`{.swift}, secret - question `First Pet Name?`{.swift} and answer `Koko`{.swift}. + Registers a new user account with the username `yourUsername`, password `GabrielIsGreat`, secret + question `First Pet Name?` and answer `Koko`.
@@ -485,28 +530,35 @@ You can register for a new user account with HomeBoss by calling this command. 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`{.swift} -
+
- + -**Note:** +**Parameter(s):** -* `USERNAME`{.swift} must be alphanumeric. -* `PASSWORD`{.swift} must be at least 8 alphanumeric characters long. -* You need to already have an account registered with HomeBoss. +* `USERNAME`{.swift} must be alphanumeric.

+* `PASSWORD`{.swift} must be at least 8 alphanumeric characters long.
-
+

**Example:** -* `login --user Gabriel --password GabrielIsGreat`{.swift}
- Logs in to the user account with the username `Gabriel`{.swift} and password `GabrielIsGreat`{.swift}. +* `login --user yourUsername --password GabrielIsGreat`
+ Logs in to the user account with the username `yourUsername` and password `GabrielIsGreat`. -![](images/ug/login.png) +![](images/ug/login_data.png)
[↑ Back to Table of Contents](#table-of-contents) @@ -515,33 +567,40 @@ You can log in to your account to access your Customer and Delivery data by call This command allows you to update your account details, thus enabling greater security and personalisation. +
+ + + +**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]`{.swift} -
+
- + -**Note:** +**Parameter(s):** -* At least one of the optional fields must be provided. -* The details will be updated without checking against the current details. -* `USERNAME`{.swift} must be alphanumeric. -* `PASSWORD`{.swift} must be at least 8 alphanumeric characters long. -* `CONFIRM_PASSWORD`{.swift} must be the same as `PASSWORD`{.swift}. -* `SECRET_QUESTION`{.swift} can take any characters. -* `ANSWER`{.swift} can take any characters. +* At least one of the optional fields must be provided.

+* `USERNAME`{.swift} must be alphanumeric.

+* `PASSWORD`{.swift} must be at least 8 alphanumeric characters long.

+* `CONFIRM_PASSWORD`{.swift} must be the same as `PASSWORD`{.swift}.

+* `SECRET_QUESTION`{.swift} can take any characters.

+* `ANSWER`{.swift} can take any characters.
-
+

**Example:** * `update --user GabrielV2 --password GabrielIsBest --confirmPass GabrielIsBest - --secretQn Favourite Pet --answer BoBo`{.swift}
- Updates the username to `GabrielV2`{.swift}, password to `GabrielIsBest`{.swift}, - secret question to `Favourite Pet`{.swift} and answer to `BoBo`{.swift}. + --secretQn Favourite Pet --answer BoBo`
+ Updates the username to `GabrielV2`, password to `GabrielIsBest`, + secret question to `Favourite Pet` and answer to `BoBo`.
@@ -571,31 +630,30 @@ secret question (set during account registration) to reset your password and thu
- + -**Note:** +**Parameter(s):** -* If `ANSWER`{.swift} is provided, `NEW_PASSWORD`{.swift} and `CONFIRM_PASSWORD`{.swift} must also be provided and vice - versa. -* `ANSWER`{.swift} can take any characters. -* `NEW_PASSWORD`{.swift} must be at least 8 alphanumeric characters long. -* `CONFIRM_PASSWORD`{.swift} must be the same as `NEW_PASSWORD`{.swift}. +* If `ANSWER`{.swift} is provided, `NEW_PASSWORD`{.swift} and `CONFIRM_PASSWORD`{.swift} must also be provided and vice versa.

+* `ANSWER`{.swift} can take any characters.

+* `NEW_PASSWORD`{.swift} must be at least 8 alphanumeric characters long.

+* `CONFIRM_PASSWORD`{.swift} must be the same as `NEW_PASSWORD`{.swift}.
-
+

**Examples:** * `recover account`{.swift}
Displays your account's secret question for account recovery. -* `recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123`{.swift}
- Recovers the account with the answer `Koko`{.swift} and sets the new password to `NewPassword123`{.swift}. +* `recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123`
+ Recovers the account with the answer `Koko` and sets the new password to `NewPassword123`. -
**Without optional fields (i.e., `recover account`{.swift} ):** +
**Without optional fields (i.e., `recover account`):** ![](images/user/userRecoverAccount_after_secretQn.png)
**With optional fields (i.e., -`recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123`{.swift}):** +`recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123`):** ![](images/user/userRecoverAccount_after_answer.png)
@@ -633,7 +691,10 @@ You can add a new Customer's details into HomeBoss with this command.
-**Note:** Customers consist of a name, a phone number, an email, and an address.

+**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.
@@ -643,24 +704,22 @@ You can add a new Customer's details into HomeBoss with this command.
- + -**Note:** +**Parameter(s):** -* 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. -* `NAME`{.swift} must be alphanumeric and can contain spaces. -* `PHONE_NUMBER`{.swift} must be exactly 8 digits. -* `EMAIL`{.swift} must follow the `local@domain`{.swift} format. -* `ADDRESS`{.swift} can take any characters. +* `NAME`{.swift} must be alphanumeric and can contain spaces.

+* `PHONE_NUMBER`{.swift} must be exactly 8 digits.

+* `EMAIL`{.swift} must follow the `local@domain`{.swift} format.

+* `ADDRESS`{.swift} can take any characters.
-
+

**Example:** -* `customer add --name Gabriel --phone 87654321 --email Gabrielrocks@gmail.com --address RVRC Block B`{.swift}
- Adds a Customer with the name `Gabriel`{.swift}, phone number `87654321`{.swift}, - email `Gabrielrocks@gmail.com`{.swift} and address `RVRC Block B`{.swift}. +* `customer add --name Gabriel --phone 87654321 --email gabrielrocks@gmail.com --address RVRC Block B`
+ Adds a Customer with the name `Gabriel`, phone number `87654321`, + email `Gabrielrocks@gmail.com`and address `RVRC Block B`. ![](images/ug/customer_add.png) @@ -678,16 +737,16 @@ You can view the details of a Customer by calling this command. The data display
- + -**Note:** `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer. +**Parameter(s):** `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer.
**Example:** -* `customer view 1`{.swift}
- Displays the details of Customer with ID `1`{.swift}. +* `customer view 1`
+ Displays the details of Customer with ID `1`. ![](images/ug/customer_view.png) @@ -720,31 +779,37 @@ This command allows you to view a list of all the Customers that you have added 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. -
**Format:** - -`customer find KEYWORD [MORE_KEYWORDS...]`{.swift} -
**Note:** -* You must provide at least one `KEYWORD`{.swift} to search for the Customer. -* You can optionally provide additional keywords, a Customer name that matches any of the given keywords will be - displayed. - For example, the keywords `Alex Tan`{.swift} will display `Alex Wong`{.swift}, `Alex Tan`{.swift}, - and `Tan Ah Meng`{.swift}. -* The keyword must exactly match any word in the Customer's name. For example the keyword `Alex`{.swift} will match - `Alex`{.swift} but not `Alexander`{.swift}. -* The search is not case sensitive. +* 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`.

+* The search is not case sensitive.
-
+
+ +
**Format:** + +`customer find KEYWORD [MORE_KEYWORDS...]`{.swift} + +
+ + + +**Parameter(s):** +* Each `KEYWORD`{.swift} must be alphanumeric and cannot contain spaces.

+* If there's more than one `KEYWORD`{.swift}, there has to be a space between each `KEYWORD`{.swift}.
+ +

**Example:** -* `customer find Julius Yang`{.swift}
- Finds Customers whose names have words that exactly match either `Julius`{.swift} or `Yang`{.swift}. +* `customer find Julius Yang`
+ Finds Customers whose names have words that exactly match either `Julius` or `Yang`. ![](images/ug/find.png) @@ -760,28 +825,27 @@ This command is useful for updating the details of a Customer, such as due to a `customer edit CUSTOMER_ID [--name NAME] [--phone PHONE_NUMBER] [--email EMAIL] [--address ADDRESS]`{.swift} -
- - +
-**Note:** + -* At least one of the optional fields must be provided. -* `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer's ID. -* `NAME`{.swift} must be alphanumeric and can contain spaces. -* `PHONE_NUMBER`{.swift} must be exactly 8 digits. -* `EMAIL`{.swift} must follow the `local@domain`{.swift} format. -* `ADDRESS`{.swift} can take any characters. +**Parameter(s):** +* At least one of the optional fields must be provided.

+* `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer's ID.

+* `NAME`{.swift} must be alphanumeric and can contain spaces.

+* `PHONE_NUMBER`{.swift} must be exactly 8 digits.

+* `EMAIL`{.swift} must follow the `local@domain`{.swift} format.

+* `ADDRESS`{.swift} can take any characters.
-
+

**Examples:** -* `customer edit 1 --name Gabriel --phone 98131051`{.swift}
- Edits the name of the Customer, with Customer ID of 1, to Gabriel and his phone to 98131051. -* `customer edit 2 --name Joe --email yangyang@gmail.com --address Block 10 Tampines Road`{.swift}
- 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. +* `customer edit 1 --name Gabriel --phone 98131051`
+ Edits the name of the Customer, with Customer ID of `1`, to `Gabriel` and his phone to `98131051`. +* `customer edit 2 --name Joe --email yangyang@gmail.com --address Block 10 Tampines Road`
+ 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`.
@@ -793,29 +857,29 @@ This command is useful for updating the details of a Customer, such as due to a You can delete any Customer who no longer require your services by calling this command. -
**Format:** +
-`customer delete CUSTOMER_ID`{.swift} + -
+**Warning:** Be careful! All Deliveries associated with the Customer will also be deleted. You won't be able to undo this deletion! +
- +
**Format:** -**Note:** `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer. +`customer delete CUSTOMER_ID`{.swift} -
+
-
+ - +**Parameter(s):** `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer. -**Warning:** Be careful! All Deliveries associated with the Customer will also be deleted. You won't be able to undo this deletion!
**Example:** -* `customer delete 1`{.swift}
- Deletes the Customer with ID 1. +* `customer delete 1`
+ Deletes the Customer with ID `1`.
@@ -834,15 +898,14 @@ By using this command, you can incorporate Deliveries associated with your Custo **Note:** -Deliveries consist of a Delivery Name, a Customer ID, an Order Date, a Delivery Date, a Delivery Status and -an Address to ship to.

-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. +* Deliveries consist of a Delivery name, a Customer ID, an order date, an expected Delivery date, a Delivery status and +an address to ship to.

+* 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`.
@@ -852,22 +915,20 @@ Delivery Status can be one of CREATED, SHIPPED, COMPLETED, CANCELLED.
- + -**Note:** +**Parameter(s):** -* `DELIVERY_NAME`{.swift} must be alphanumeric and can contain spaces. -* `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer. -* `EXPECTED_DELIVERY_DATE`{.swift} must be today or after today's date in yyyy-MM-dd format. +* `DELIVERY_NAME`{.swift} must be alphanumeric and can contain spaces.

+* `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer.

+* `EXPECTED_DELIVERY_DATE`{.swift} must be today or after today's date in yyyy-MM-dd format.

**Example:** -- `delivery add Chocolate Cake --customer 1 --date 2023-12-12`{.swift}
- Adds a Delivery with Delivery Name Chocolate Cake, with the Customer who has Customer ID 1, with Delivery Date - of 2023-12-12, Order Date will be today's date, Delivery Status will be CREATED and Address will be the Customer's - Address. +* `delivery add Chocolate Cake --customer 1 --date 2023-12-12`
+ 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. ![](images/ug/delivery_add.png) @@ -885,16 +946,16 @@ You can view the details of a Delivery by calling this command. The data display
- + -**Note:** `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery. +**Parameter(s):** `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery. - +
**Example:** -* `delivery view 1`{.swift}
- Displays the details of Delivery with ID `1`{.swift}. +* `delivery view 1`
+ Displays the details of the Delivery with Delivery ID of `1`. ![](images/ug/delivery_view.png) @@ -904,7 +965,15 @@ You can view the details of a Delivery by calling this command. The data display ###

View a list of Deliveries -This command allows you to view a list of all the Deliveries that you have added to HomeBoss. This is a more powerful command than `customer list`{.swift}, 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). +This command allows you to view a list of all the Deliveries that you have added to HomeBoss. + +
+ + + +**Note:** This is a more powerful command than `customer list`{.swift}, 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:** @@ -912,19 +981,27 @@ This command allows you to view a list of all the Deliveries that you have added
- + -**Note:** +**Parameter(s):** -* `STATUS`{.swift} accepts the following values: `CREATED`{.swift}/`SHIPPED`{.swift}/`COMPLETED`{.swift}/ - `CANCELLED`{.swift}. +* `STATUS`{.swift} accepts the following values: `CREATED`/`SHIPPED`/`COMPLETED`/`CANCELLED`. * `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer. * `EXPECTED_DELIVERY_DATE`{.swift} must be today or after today's date in yyyy-MM-dd format OR `TODAY`{.swift} for today’s date. -* `SORT`{.swift} accepts the following values: `ASC`{.swift}/`DESC`{.swift}. +* `SORT`{.swift} accepts the following values: `ASC`/`DESC`. +
**Examples:** + +* `delivery list --status CREATED --customer 1 --sort DESC`
+ Lists all Deliveries with status `CREATED` for Customer with ID `1` with expected Delivery date in + descending order. + +* `delivery list --status SHIPPED --date TODAY`{.swift}
+ Lists all Deliveries with status `SHIPPED` for all Customers and expected Delivery date of `TODAY`. +
@@ -933,15 +1010,6 @@ This command allows you to view a list of all the Deliveries that you have added You may combine any of the filters and sort options to get the list of Deliveries that you want. -
**Examples:** - -* `delivery list --status CREATED --customer 1 --sort DESC`{.swift}
- Lists all Deliveries with status `CREATED`{.swift} for Customer with ID `1`{.swift} with expected delivery date in - descending order. - -* `delivery list --status SHIPPED --date TODAY`{.swift}
- Lists all Deliveries with status `SHIPPED`{.swift} for all Customers and expected delivery date of today. - ![](images/ug/delivery_list.png)
@@ -952,29 +1020,36 @@ You may combine any of the filters and sort options to get the list of Deliverie 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. -
**Format:** - -`delivery find KEYWORD [MORE_KEYWORDS...]`{.swift} -
**Note:** -* You must provide at least one alphanumeric `KEYWORD`{.swift} to search for the Delivery. -* You can optionally provide additional keywords, a Delivery that matches any of the given keywords will be displayed. - For example, the keywords `Chocolate Bun`{.swift} will display `Chocolate Cake`{.swift}, `Chocolate Bun`{.swift}, - and `Strawberry Bun`{.swift}. -* The keyword must exactly match any word in the delivery name. For example, the keyword `Straw`{.swift} will match - `Straw`{.swift} but not `Strawberry`{.swift}. -* The search is not case sensitive. +* You must provide at least one alphanumeric 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...]`{.swift} + +
+ + + +**Parameter(s):** +* Each `KEYWORD`{.swift} must be alphanumeric and cannot contain spaces.

+* If there's more than one `KEYWORD`{.swift}, there has to be a space between each `KEYWORD`{.swift}.
+ +

**Example:** -* `delivery find Gambes Banana`{.swift}
-Find all Deliveries whose name has words that exactly match `Gambes`{.swift} or `Banana`{.swift} +* `delivery find Gambes Banana`
+Finds all Deliveries whose name has words that exactly match `Gambes` or `Banana`. ![](images/ug/delivery_find.png) @@ -986,10 +1061,6 @@ Find all Deliveries whose name has words that exactly match `Gambes`{.swift} or This command is useful for updating the details 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. -
**Format:** - -`delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date EXPECTED_DELIVERY_DATE][--status STATUS] [--note NOTE]`{.swift} -
@@ -998,39 +1069,45 @@ This command is useful for updating the details of a Delivery, such as due to a - +
**Format:** -**Note:** +`delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date EXPECTED_DELIVERY_DATE][--status STATUS] [--note NOTE]`{.swift} -* At least one of the optional fields must be provided. -* `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery. -* `DELIVERY_NAME`{.swift} must be alphanumeric and can contain spaces. -* `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer. -* `EXPECTED_DELIVERY_DATE`{.swift} must be today or after today's date in yyyy-MM-dd format. -* `STATUS`{.swift} accepts the following values: `CREATED`{.swift}/`SHIPPED`{.swift}/`COMPLETED`{.swift}/`CANCELLED`{.swift}. -* `NOTE`{.swift} must be alphanumeric and can contain spaces. +
-
- - + -**Tip:** -* If you only want to update the Delivery's status, simply use `delivery status`{.swift} instead.
+**Parameter(s):** + +* At least one of the optional fields must be provided.

+* `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery.

+* `DELIVERY_NAME`{.swift} must be alphanumeric and can contain spaces.

+* `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer.

+* `EXPECTED_DELIVERY_DATE`{.swift} must be today or after today's date in yyyy-MM-dd format.

+* `STATUS`{.swift} accepts the following values: `CREATED`/`SHIPPED`/`COMPLETED`/`CANCELLED`.

+* `NOTE`{.swift} must be alphanumeric and can contain spaces.
-* If you only want to update the Delivery's note, simply use `delivery note`{.swift} instead.

**Examples:** -- `delivery edit 1 --status CANCELLED --note Sudden overseas business trip to attend to.`{.swift}
- Edits the Delivery's status of the Delivery, with Delivery ID of 1, to `CANCELLED`{.swift} and edits the note of the - Delivery. - (If Delivery does not have a note, a note will be created to the Delivery) -- `delivery edit 2 --name Vanilla Cake --customer 3`{.swift}
- 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. +* `delivery edit 1 --status CANCELLED --note Sudden overseas business trip to attend to.`
+ 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. +* `delivery edit 2 --name Vanilla Cake --customer 3`
+ 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`. -
+
+ + + +**Tip:** +* If you only want to update the Delivery's status, simply use `delivery status`{.swift} instead.

+* If you only want to update the Delivery's note, simply use `delivery note`{.swift} instead.
+
+ +
[↑ Back to Table of Contents](#table-of-contents) @@ -1042,25 +1119,26 @@ An order can have one of the following statuses: CREATED, SHIPPED, COMPLETED or
- + -**Note:** +**Parameter(s):** * `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery. -* `STATUS`{.swift} accepts the following values: `CREATED`{.swift}/`SHIPPED`{.swift}/`COMPLETED`{.swift}/ -`CANCELLED`{.swift}. +* `STATUS`{.swift} accepts the following values: `CREATED`/`SHIPPED`/`COMPLETED`/`CANCELLED`.
**Examples:** -* `delivery status 1 CANCELLED`{.swift}
- Updates the status of Delivery with ID `1`{.swift} to `CANCELLED`{.swift}. -* `delivery status 2 SHIPPED`{.swift}
- Updates the status of Delivery with ID `2`{.swift} to `SHIPPED`{.swift}. +* `delivery status 1 CANCELLED`
+ Updates the status of Delivery with ID `1` to `CANCELLED`. +* `delivery status 2 SHIPPED`
+ Updates the status of Delivery with ID `2` to `SHIPPED`. + +
-**Tip:** Delivery status is not case sensitive. You can type `created`{.swift} instead of `CREATED`{.swift} and it will still work. +**Tip:** Delivery status is not case sensitive. You can type `created` instead of `CREATED` and it will still work.
@@ -1069,28 +1147,35 @@ An order can have one of the following statuses: CREATED, SHIPPED, COMPLETED or ###

Create a note for a Delivery -If you would like to create a note about a specific delivery, this command allows you to do so as a shortcut, as opposed to using the lengthier `delivery edit`{.swift} command. +If you would like to create a note about a specific delivery, this command allows you to do so as a shortcut, as opposed to using the lengthier `delivery edit`{.swift} command found [here](#update-details-of-a-delivery). + +
+ + + +**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`{.swift} -
- - +
-**Note:** + -* If the Delivery already has a Note, the previous Note will be overwritten by the new given Note. -* `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery's ID. -* `NOTE`{.swift} must be alphanumeric and can contain spaces. +**Parameter(s):** +* `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery's ID.

+* `NOTE`{.swift} must be alphanumeric and can contain spaces.
-
+
+
**Example:** -* `delivery note 1 --note By FedEx`{.swift}
- Creates a new Note "By FedEx" for the Delivery with ID `1`{.swift} +* `delivery note 1 --note By FedEx`
+ Creates a new note `By FedEx` for the Delivery with ID `1`{.swift}.
@@ -1100,33 +1185,31 @@ If you would like to create a note about a specific delivery, this command allow If you feel that a Delivery is no longer relevant (i.e., cancelled or completed), you can delete it from HomeBoss using this command. -
**Format:** - -`delivery delete DELIVERY_ID`{.swift} +
-**Warning:** - -Be careful! This action is irreversible. Once deleted, the delivery cannot be recovered. +**Warning:** Be careful! This action is irreversible. Once deleted, the delivery cannot be recovered. -
+
**Format:** - +`delivery delete DELIVERY_ID`{.swift} -**Note:** +
-* `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery. + - +**Parameter(s):** `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery. + +

**Example:** -- `delivery delete 1`{.swift}
- Deletes Delivery 1 from the delivery database. +* `delivery delete 1`
+ Deletes the Delivery with ID of `1` from the Delivery database.
@@ -1134,20 +1217,24 @@ Be careful! This action is irreversible. Once deleted, the delivery cannot be re ##
Miscellaneous -### Help +
-This command allows you view a summary of the commands available, the format of the commands, and a link to this user guide. + + +**Tip:** The commands under this section can be used at any time, regardless of whether you are logged in or not. + +
-**Format:** `help`{.swift} +### Help + +This command allows you view a summary of the commands available, the format of the commands, and a link to this user guide.
- +**Format:** `help`{.swift} -**Tip:** You can access this command anytime when using the application, even when you are not logged in. - ![](images/ug/help.png) @@ -1161,6 +1248,8 @@ You can exit the program by calling this command. **Format:** `exit`{.swift} +
+ **Note:** If you are logged in, this command will automatically log you out of your account and close the application. @@ -1174,8 +1263,6 @@ You can exit the program by calling this command. 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. -**Format:** `clear`{.swift} -
@@ -1183,83 +1270,103 @@ In the event that you want to perform a complete reset of HomeBoss' Customer and **Warning:** Be careful, this action is irreversible! All your Customer and Delivery data will be deleted permanently. Proceed with caution! - +
+**
Format:** `clear`{.swift}
[↑ Back to Table of Contents](#table-of-contents) -#
FAQ +--- + +# FAQ + +
**Q: Where do I get support for HomeBoss?** -A: You can raise an issue on our [GitHub repository](https://github.com/AY2324S1-CS2103T-T13-3/tp/issues) +A: You can raise an issue on our [GitHub repository](https://github.com/AY2324S1-CS2103T-T13-3/tp/issues)

**Q: How do I report a bug?** -A: You can raise a bug report on our [GitHub repository](https://github.com/AY2324S1-CS2103T-T13-3/tp/issues) +A: You can raise a bug report on our [GitHub repository](https://github.com/AY2324S1-CS2103T-T13-3/tp/issues)

+ **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. +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. +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. +A: HomeBoss only supports English characters.

+ +
+ +[↑ Back to Table of Contents](#table-of-contents) + +--- -#
Command Summary +# Command Summary -#### User +## User | Command | Format | Examples | |----------|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| -| Register | `register --user USERNAME --password PASSWORD --confirmPass CONFIRM_PASSWORD --secretQn SECRET_QUESTION --answer ANSWER`{.swift} | `register --user Gabriel --password GabrielIsGreat --confirmPass GabrielIsGreat --secretQn First Pet Name? --answer Koko`{.swift} | -| Login | `login --user USERNAME --password PASSWORD`{.swift} | `login --user Gabriel --password GabrielIsGreat`{.swift} | -| Update | `update [--user USERNAME] [--password PASSWORD --confirmPass CONFIRM_PASSWORD] [--secretQn SECRET_QUESTION --answer ANSWER]`{.swift} | `update --user GabrielV2 --password GabrielIsBest --confirmPass GabrielIsBest --secretQn Favourite Pet --answer BoBo`{.swift} | -| Recover | `recover account [--answer ANSWER --password NEW_PASSWORD --confirmPass CONFIRM_PASSWORD]`{.swift} | `recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123`{.swift} | -| Logout | `logout`{.swift} | `logout`{.swift} | -| Delete | `delete account`{.swift} | `delete account`{.swift} | +| Register | `register --user USERNAME --password PASSWORD --confirmPass CONFIRM_PASSWORD --secretQn SECRET_QUESTION --answer ANSWER`{.swift} | `register --user Gabriel --password GabrielIsGreat --confirmPass GabrielIsGreat --secretQn First Pet Name? --answer Koko` | +| Login | `login --user USERNAME --password PASSWORD`{.swift} | `login --user Gabriel --password GabrielIsGreat` | +| Update | `update [--user USERNAME] [--password PASSWORD --confirmPass CONFIRM_PASSWORD] [--secretQn SECRET_QUESTION --answer ANSWER]`{.swift} | `update --user GabrielV2 --password GabrielIsBest --confirmPass GabrielIsBest --secretQn Favourite Pet --answer BoBo` | +| Recover | `recover account [--answer ANSWER --password NEW_PASSWORD --confirmPass CONFIRM_PASSWORD]`{.swift} | `recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123` | +| Logout | `logout`{.swift} | `logout` | +| Delete | `delete account`{.swift} | `delete account` |
-#### Customer +## Customer | Command | Format | Examples | |---------|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| -| Add | `customer add --name NAME --phone PHONE_NUMBER --email EMAIL --address ADDRESS`{.swift} | `customer add --name Gabriel --phone 87654321 --email Gabrielrocks@gmail.com --address RVRC Block B`{.swift} | -| View | `customer view CUSTOMER_ID`{.swift} | `customer view 1`{.swift} | -| List | `customer list`{.swift} | `customer list`{.swift} | -| Find | `customer find KEYWORD [MORE_KEYWORDS]`{.swift} | `customer find Julius Yang`{.swift} | -| Edit | `customer edit CUSTOMER_ID [--name NAME] [--phone PHONE_NUMBER] [--email EMAIL] [--address ADDRESS]`{.swift} | `customer edit 1 --name Gabriel --phone 12345678 --email Gabrielrock@gmail.com --address Block 10 Tampines Road`{.swift} | -| Delete | `customer delete CUSTOMER_ID`{.swift} | `customer delete 1`{.swift} | +| Add | `customer add --name NAME --phone PHONE_NUMBER --email EMAIL --address ADDRESS`{.swift} | `customer add --name Gabriel --phone 87654321 --email Gabrielrocks@gmail.com --address RVRC Block B` | +| View | `customer view CUSTOMER_ID`{.swift} | `customer view 1` | +| List | `customer list`{.swift} | `customer list` | +| Find | `customer find KEYWORD [MORE_KEYWORDS]`{.swift} | `customer find Julius Yang` | +| Edit | `customer edit CUSTOMER_ID [--name NAME] [--phone PHONE_NUMBER] [--email EMAIL] [--address ADDRESS]`{.swift} | `customer edit 1 --name Gabriel --phone 97659320 --email Gabrielrock@gmail.com --address Block 10 Tampines Road` | +| Delete | `customer delete CUSTOMER_ID`{.swift} | `customer delete 1` |
-#### Delivery +## Delivery | Command | Format | Examples | |---------|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------| -| Add | `delivery add DELIVERY_NAME --customer CUSTOMER_ID --date DELIVERY_DATE`{.swift} | `delivery add furniture --customer 5 --date 2023-12-03`{.swift} | -| View | `delivery view DELIVERY_ID`{.swift} | `delivery view 1`{.swift} | -| List | `delivery list [--status STATUS] [--customer CUSTOMER_ID] [--date DELIVERY_DATE] [--sort SORT]`{.swift} | `delivery list --status created --customer 1 --date 2023-12-12 --sort desc`{.swift} | -| Find | `delivery find KEYWORD [MORE_KEYWORDS]`{.swift} | `delivery find Chocolate Bun`{.swift} | -| Edit | `delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date DELIVERY_DATE] [--status STATUS] [--note NOTE]`{.swift} | `delivery edit 1 --name Chocolate Cake --customer 2 --date 2024-12-12 --status CANCELLED --note Customer changed his mind`{.swift} | -| Status | `delivery status DELIVERY_ID STATUS`{.swift} | `delivery status 2 completed`{.swift} | -| Note | `delivery note DELIVERY_ID --note NOTE`{.swift} | `delivery note 1 --note By FedEx`{.swift} | -| Delete | `delivery delete DELIVERY_ID`{.swift} | `delivery delete 1`{.swift} | +| Add | `delivery add DELIVERY_NAME --customer CUSTOMER_ID --date DELIVERY_DATE`{.swift} | `delivery add furniture --customer 5 --date 2023-12-03` | +| View | `delivery view DELIVERY_ID`{.swift} | `delivery view 1` | +| List | `delivery list [--status STATUS] [--customer CUSTOMER_ID] [--date DELIVERY_DATE] [--sort SORT]`{.swift} | `delivery list --status created --customer 1 --date 2023-12-12 --sort desc` | +| Find | `delivery find KEYWORD [MORE_KEYWORDS]`{.swift} | `delivery find Chocolate Bun` | +| Edit | `delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date DELIVERY_DATE] [--status STATUS] [--note NOTE]`{.swift} | `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`{.swift} | `delivery status 2 completed` | +| Note | `delivery note DELIVERY_ID --note NOTE`{.swift} | `delivery note 1 --note By FedEx` | +| Delete | `delivery delete DELIVERY_ID`{.swift} | `delivery delete 1` |
-#### Miscellaneous +## Miscellaneous | Command | Format | Examples | |---------|-----------------|-----------------| -| Exit | `exit`{.swift} | `exit`{.swift} | -| Help | `help`{.swift} | `help`{.swift} | -| Clear | `clear`{.swift} | `clear`{.swift} | +| Exit | `exit`{.swift} | `exit` | +| Help | `help`{.swift} | `help` | +| Clear | `clear`{.swift} | `clear` | + +
+ +[↑ Back to Table of Contents](#table-of-contents) + +
From 319f5cad7868d8b289d2dd298cb515c955119d23 Mon Sep 17 00:00:00 2001 From: jianyangg Date: Thu, 9 Nov 2023 17:46:53 +0800 Subject: [PATCH 3/4] Update delivery edit msg example --- docs/UserGuide.md | 351 +++++++++++++++++++++++++++------------------- 1 file changed, 203 insertions(+), 148 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a92d664a091..455631f22c7 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,16 +2,22 @@ # About HomeBoss -HomeBoss is a powerful desktop application designed specifically for **home-based business owners**, offering **efficient Customer and Delivery management solutions**. With HomeBoss, you can streamline your administrative processes and elevate your overall business experience to new heights. +HomeBoss is a powerful desktop application designed specifically for **home-based business owners**, offering * +*efficient Customer and Delivery management solutions**. With HomeBoss, you can streamline your administrative processes +and elevate your overall business experience to new heights. With our application, you will be able 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! + and much more! -HomeBoss's goal is to improve 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's goal is to improve 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. With HomeBoss, you can now **focus on what matters most: running your business.** @@ -126,7 +132,8 @@ you may refer to the [Developer Guide](./DeveloperGuide.md). -**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 [Command Format](#homeboss-s-command-format) section. +**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 [Command Format](#homeboss-s-command-format) section. @@ -156,7 +163,6 @@ helpful [guide](https://www.java.com/en/download/help/version_manual.html). 1. [Java 11 Release](https://www.oracle.com/java/technologies/downloads/#java11) 2. [Java 11 Installation Guide](https://docs.oracle.com/en/java/javase/11/install/overview-jdk-installation.html#GUID-8677A77F-231A-40F7-98B9-1FD0B48C346A) -

@@ -173,7 +179,8 @@ helpful [guide](https://www.java.com/en/download/help/version_manual.html). -**Warning**: The folder that you would like to use as the home folder for HomeBoss must be empty and should not contain any other +**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. @@ -181,7 +188,8 @@ files / folders before the application is launched for the first time. 3. Run `HomeBoss.jar`. If you are unsure of how to run a `.jar` file, you may refer to this helpful [guide](https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Run-JAR-file-example-windows-linux-ubuntu). 4. If everything went well, you will be greeted by a window similar to the one shown below. -5. If you are a first time user, we highly recommend reading the following sections to familiarise yourself with HomeBoss's layout and commands: +5. If you are a first time user, we highly recommend reading the following sections to familiarise yourself with + HomeBoss's layout and commands: * [Understanding our layout](#understanding-our-layout)
* [HomeBoss's Command Format](#homeboss-s-command-format)
* [Registering and creating your first Delivery](#registering-and-creating-your-first-delivery) @@ -250,13 +258,13 @@ HomeBoss. You can use the scroll bar on the right to scroll through your Custome -**Note**: +**Note**: * The `ID`{.swift} 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](#features).

* The `ID`{.swift} generated are guaranteed to be unique but may not be consecutive and may not start from 1.
- + ![Command Result FeedBack](images/getting-started/delivery_card.png){style="display: block; margin: 0 auto;"}
@@ -321,7 +329,8 @@ logout * Words that are in uppercase are parameters that are to be supplied by you. * Parameters that are preceded by a prefix must be supplied after that prefix, e.g. `--name DELIVERY_NAME`{.swift} must be given as, for example, `--name furniture` and not `furniture` or `--name`. -* Items that are placed in square brackets (`[]`{.swift}) are optional, e.g. `DELIVERY_ID [--name DELIVERY_NAME]`{.swift} can either be +* Items that are placed in square brackets (`[]`{.swift}) are optional, e.g. `DELIVERY_ID [--name DELIVERY_NAME]` + {.swift} can either be `1` or `1 --name furniture`. * However, items that are grouped together in square brackets (`[]`{.swift}) must all be provided together, e.g. for `[--password PASSWORD --confirmPass CONFIRM_PASSWORD]`{.swift} both `PASSWORD`{.swift} and @@ -332,7 +341,8 @@ logout given as `Keyword` or `Keyword AnotherKeyword`. * **Command Phrase** and **Prefixes** are **case-sensitive**! e.g. `clear`{.swift} is a valid command word but `customer LIST` is not a valid command word. -* Leading and trailing whitespaces of parameters will be trimmed, i.e., spaces added between `--password`{.swift} and `PASSWORD`{.swift} in `--password PASSWORD`{.swift} will be removed. +* Leading and trailing whitespaces of parameters will be trimmed, i.e., spaces added between `--password`{.swift} + and `PASSWORD`{.swift} in `--password PASSWORD`{.swift} will be removed.
@@ -342,7 +352,8 @@ logout ##
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 +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`{.swift} command. Suppose you want to register an account @@ -351,13 +362,14 @@ by creating your first Delivery. * `USERNAME`{.swift} : yourUsername * `PASSWORD`{.swift} : AlexIsGreat * `CONFIRM_PASSWORD`{.swift} : AlexIsGreat -* `SECRET_QUESTION`{.swift} : First Pet Name? -* `ANSWER`{.swift} : Koko +* `SECRET_QUESTION`{.swift} : First Pet Name? +* `ANSWER`{.swift} : 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](#register). +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](#register). -
+
@@ -365,9 +377,10 @@ Type `register --user yourUsername --password AlexIsGreat --confirmPass AlexIsGr -
+
-2. 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. 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. 3. Let's now add a new Customer, `Gabriel`, to HomeBoss' Customer database using the `customer add`{.swift} command. @@ -379,35 +392,41 @@ Type `register --user yourUsername --password AlexIsGreat --confirmPass AlexIsGr 4. Type `customer add --name Gabriel --phone 87654321 --email gabrielrocks@gmail.com --address RVRC Block B` into the Command Box and hit enter. -5. 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. +5. 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](images/getting-started/customer_add.png){style="display: block; margin: 0 auto;"} -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`. +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`{.swift} : MacBook Pro * `DELIVERY_DATE`{.swift} : 2023-12-03 -7. Type `delivery add MacBook Pro --customer CUSTOMER_ID --date 2023-12-03`, replacing `CUSTOMER_ID`{.swift} +7. Type `delivery add MacBook Pro --customer CUSTOMER_ID --date 2023-12-03`, replacing `CUSTOMER_ID`{.swift} with Gabriel's ID, and hit enter. -8. 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. +8. 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](images/getting-started/delivery_add.png){style="display: block; margin: 0 auto;"} 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. +HomeBoss is packed with many more features to help you manage your Customers and Deliveries. Check them out under the [Features](#features) section to learn more! ##
Editing the data file -HomeBoss stores your data in a JSON file automatically `[JAR file location]/data/addressbook.json`. Advanced -users are welcome to update data directly by editing the data file. +HomeBoss stores your data in a JSON file automatically `[JAR file location]/data/addressbook.json`. Advanced +users are welcome to update data directly by editing the data file. -**Warning:** If the files are edited and contain invalid data as a result, HomeBoss will discard the entire data file and start with an empty data file during the next run. (If the Customer data file contains invalid data, the entire Delivery data file will also be deleted. However, if the Delivery data file contains invalid data, the Customer data file will remain unaffected.) +**Warning:** If the files are edited and contain invalid data as a result, HomeBoss will discard the entire data file +and start with an empty data file during the next run. (If the Customer data file contains invalid data, the entire +Delivery data file will also be deleted. However, if the Delivery data file contains invalid data, the Customer data +file will remain unaffected.) @@ -465,7 +484,6 @@ _These are general features in HomeBoss._ - `help` - Shows a list of commands and their usage. - `clear` - Clears both Customer and Delivery database. -
[↑ Back to Table of Contents](#table-of-contents) @@ -490,13 +508,14 @@ You can register for a new user account with HomeBoss by calling this command.
**Format:** -`register --user USERNAME --password PASSWORD --confirmPass CONFIRM_PASSWORD --secretQn SECRET_QUESTION --answer ANSWER`{.swift} +`register --user USERNAME --password PASSWORD --confirmPass CONFIRM_PASSWORD --secretQn SECRET_QUESTION --answer ANSWER` +{.swift}
-**Parameter(s):** +**Parameter(s):** * `USERNAME`{.swift} must be alphanumeric.

* `PASSWORD`{.swift} must be at least 8 alphanumeric characters long.

@@ -514,11 +533,13 @@ You can register for a new user account with HomeBoss by calling this command. Registers a new user account with the username `yourUsername`, password `GabrielIsGreat`, secret question `First Pet Name?` and answer `Koko`. -
+
-**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`{.swift} command [here](#delete-account) before registering a new account. +**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` +{.swift} command [here](#delete-account) before registering a new account.
@@ -538,7 +559,7 @@ You can log in to your account to access your Customer and Delivery data by call
-
**Format:** +
**Format:** `login --user USERNAME --password PASSWORD`{.swift} @@ -575,7 +596,7 @@ This command allows you to update your account details, thus enabling greater se
-
**Format:** +
**Format:** `update [--user USERNAME] [--password PASSWORD --confirmPass CONFIRM_PASSWORD] [--secretQn SECRET_QUESTION --answer ANSWER]`{.swift} @@ -584,7 +605,7 @@ This command allows you to update your account details, thus enabling greater se -**Parameter(s):** +**Parameter(s):** * At least one of the optional fields must be provided.

* `USERNAME`{.swift} must be alphanumeric.

@@ -602,7 +623,7 @@ This command allows you to update your account details, thus enabling greater se Updates the username to `GabrielV2`, password to `GabrielIsBest`, secret question to `Favourite Pet` and answer to `BoBo`. -
+
[↑ Back to Table of Contents](#table-of-contents) @@ -614,7 +635,7 @@ You can log out of your account to keep your data secure at the end of the day b **Format:** `logout`{.swift} -
+
[↑ Back to Table of Contents](#table-of-contents)
@@ -624,7 +645,7 @@ You can log out of your account to keep your data secure at the end of the day b 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:** +
**Format:** `recover account [--answer ANSWER --password NEW_PASSWORD --confirmPass CONFIRM_PASSWORD]`{.swift} @@ -634,7 +655,8 @@ secret question (set during account registration) to reset your password and thu **Parameter(s):** -* If `ANSWER`{.swift} is provided, `NEW_PASSWORD`{.swift} and `CONFIRM_PASSWORD`{.swift} must also be provided and vice versa.

+* If `ANSWER`{.swift} is provided, `NEW_PASSWORD`{.swift} and `CONFIRM_PASSWORD`{.swift} must also be provided and vice + versa.

* `ANSWER`{.swift} can take any characters.

* `NEW_PASSWORD`{.swift} must be at least 8 alphanumeric characters long.

* `CONFIRM_PASSWORD`{.swift} must be the same as `NEW_PASSWORD`{.swift}.
@@ -656,7 +678,7 @@ secret question (set during account registration) to reset your password and thu `recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123`):** ![](images/user/userRecoverAccount_after_answer.png) -
+
[↑ Back to Table of Contents](#table-of-contents)
@@ -671,13 +693,14 @@ If you simply want to erase all your data from HomeBoss, you can delete your acc -**Tip:** This command should be considered as a last resort, to be used if you forget both your password and your secret answer. +**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`{.swift} command [here](#recover-account). -
+
[↑ Back to Table of Contents](#table-of-contents)
@@ -691,14 +714,15 @@ You can add a new Customer's details into HomeBoss with this command.
-**Note:** +**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:** +
**Format:** `customer add --name NAME --phone PHONE_NUMBER --email EMAIL --address ADDRESS`{.swift} @@ -723,15 +747,16 @@ You can add a new Customer's details into HomeBoss with this command. ![](images/ug/customer_add.png) -
+
[↑ Back to Table of Contents](#table-of-contents) ###

View details of a Customer -You can view the details of a Customer by calling this command. The data displayed includes the Customer's name, phone number, email and address. +You can view the details of a Customer by calling this command. The data displayed includes the Customer's name, phone +number, email and address. -
**Format:** +
**Format:** `customer view CUSTOMER_ID`{.swift} @@ -750,7 +775,7 @@ You can view the details of a Customer by calling this command. The data display ![](images/ug/customer_view.png) -
+
[↑ Back to Table of Contents](#table-of-contents) @@ -770,14 +795,15 @@ This command allows you to view a list of all the Customers that you have added
-
+
[↑ Back to Table of Contents](#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. +you can find the Customer with this command. It finds Customers whose names has words that exactly match any of the +given keywords.
@@ -786,13 +812,16 @@ you can find the Customer with this command. It finds Customers whose names has **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 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`.

* The search is not case sensitive.
-
**Format:** +
**Format:** `customer find KEYWORD [MORE_KEYWORDS...]`{.swift} @@ -801,6 +830,7 @@ you can find the Customer with this command. It finds Customers whose names has **Parameter(s):** + * Each `KEYWORD`{.swift} must be alphanumeric and cannot contain spaces.

* If there's more than one `KEYWORD`{.swift}, there has to be a space between each `KEYWORD`{.swift}.
@@ -813,15 +843,16 @@ you can find the Customer with this command. It finds Customers whose names has ![](images/ug/find.png) -
+
[↑ Back to Table of Contents](#table-of-contents) ###

Update details of a Customer -This command is useful for updating the details of a Customer, such as due to a change in particulars or in the event that you keyed in the Customer's details wrongly. +This command is useful for updating the details of a Customer, such as due to a change in particulars or in the event +that you keyed in the Customer's details wrongly. -
**Format:** +
**Format:** `customer edit CUSTOMER_ID [--name NAME] [--phone PHONE_NUMBER] [--email EMAIL] [--address ADDRESS]`{.swift} @@ -829,7 +860,8 @@ This command is useful for updating the details of a Customer, such as due to a -**Parameter(s):** +**Parameter(s):** + * At least one of the optional fields must be provided.

* `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer's ID.

* `NAME`{.swift} must be alphanumeric and can contain spaces.

@@ -844,11 +876,11 @@ This command is useful for updating the details of a Customer, such as due to a * `customer edit 1 --name Gabriel --phone 98131051`
Edits the name of the Customer, with Customer ID of `1`, to `Gabriel` and his phone to `98131051`. * `customer edit 2 --name Joe --email yangyang@gmail.com --address Block 10 Tampines Road`
- Edits the name of the Customer, with Customer ID of `2`, to `Joe`, his email to `yangyang@gmail.com` and his address to + 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`. - -
+
[↑ Back to Table of Contents](#table-of-contents)
@@ -861,10 +893,11 @@ You can delete any Customer who no longer require your services by calling this -**Warning:** Be careful! All Deliveries associated with the Customer will also be deleted. You won't be able to undo this deletion! +**Warning:** Be careful! All Deliveries associated with the Customer will also be deleted. You won't be able to undo +this deletion! -
**Format:** +
**Format:** `customer delete CUSTOMER_ID`{.swift} @@ -881,7 +914,7 @@ You can delete any Customer who no longer require your services by calling this * `customer delete 1`
Deletes the Customer with ID `1`. -
+
[↑ Back to Table of Contents](#table-of-contents)
@@ -890,7 +923,9 @@ You can delete any Customer who no longer require your services by calling this ### 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. +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.
@@ -898,18 +933,18 @@ By using this command, you can incorporate Deliveries associated with your Custo **Note:** -* Deliveries consist of a Delivery name, a Customer ID, an order date, an expected Delivery date, a Delivery status and -an address to ship to.

-* 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 -

+* Deliveries consist of a Delivery name, a Customer ID, an order date, an expected Delivery date, a Delivery status and + an address to ship to.

+* 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:** +
**Format:** `delivery add DELIVERY_NAME --customer CUSTOMER_ID --date EXPECTED_DELIVERY_DATE`{.swift} @@ -923,24 +958,27 @@ an address to ship to.

* `CUSTOMER_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Customer.

* `EXPECTED_DELIVERY_DATE`{.swift} must be today or after today's date in yyyy-MM-dd format.
-
+
**Example:** * `delivery add Chocolate Cake --customer 1 --date 2023-12-12`
- 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. + 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. ![](images/ug/delivery_add.png) -
+
[↑ Back to Table of Contents](#table-of-contents) ###

View details of a Delivery -You can view the details 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). +You can view the details 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). -
**Format:** +
**Format:** `delivery view DELIVERY_ID`{.swift} @@ -959,19 +997,22 @@ You can view the details of a Delivery by calling this command. The data display ![](images/ug/delivery_view.png) -
+
[↑ Back to Table of Contents](#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. +This command allows you to view a list of all the Deliveries that you have added to HomeBoss.
-**Note:** This is a more powerful command than `customer list`{.swift}, 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). +**Note:** This is a more powerful command than `customer list`{.swift}, 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). @@ -990,7 +1031,7 @@ This command allows you to view a list of all the Deliveries that you have added * `EXPECTED_DELIVERY_DATE`{.swift} must be today or after today's date in yyyy-MM-dd format OR `TODAY`{.swift} for today’s date. * `SORT`{.swift} accepts the following values: `ASC`/`DESC`. - +
**Examples:** @@ -1012,13 +1053,14 @@ You may combine any of the filters and sort options to get the list of Deliverie ![](images/ug/delivery_list.png) -
+
[↑ Back to Table of Contents](#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. +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.
@@ -1027,13 +1069,16 @@ If you cannot remember the full name of a Delivery, you can find the Delivery wi **Note:** * You must provide at least one alphanumeric 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`.

+* 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:** +
**Format:** `delivery find KEYWORD [MORE_KEYWORDS...]`{.swift} @@ -1042,24 +1087,27 @@ If you cannot remember the full name of a Delivery, you can find the Delivery wi **Parameter(s):** + * Each `KEYWORD`{.swift} must be alphanumeric and cannot contain spaces.

* If there's more than one `KEYWORD`{.swift}, there has to be a space between each `KEYWORD`{.swift}.

**Example:** + * `delivery find Gambes Banana`
-Finds all Deliveries whose name has words that exactly match `Gambes` or `Banana`. + Finds all Deliveries whose name has words that exactly match `Gambes` or `Banana`. ![](images/ug/delivery_find.png) -
+
[↑ Back to Table of Contents](#table-of-contents) ####

Update details of a Delivery -This command is useful for updating the details 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. +This command is useful for updating the details 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.
@@ -1069,9 +1117,10 @@ This command is useful for updating the details of a Delivery, such as due to a -
**Format:** +
**Format:** -`delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date EXPECTED_DELIVERY_DATE][--status STATUS] [--note NOTE]`{.swift} +`delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date EXPECTED_DELIVERY_DATE][--status STATUS] [--note NOTE]` +{.swift}
@@ -1091,21 +1140,23 @@ This command is useful for updating the details of a Delivery, such as due to a
**Examples:** -* `delivery edit 1 --status CANCELLED --note Sudden overseas business trip to attend to.`
- 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. +* `delivery edit 1 --status CANCELLED --note Sudden overseas business trip to attend to`
+ 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. * `delivery edit 2 --name Vanilla Cake --customer 3`
- Edits the name of the Delivery, with Delivery ID of `2`, to `Vanilla Cake` and edits the Customer of the + 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`.
- + -**Tip:** +**Tip:** + * If you only want to update the Delivery's status, simply use `delivery status`{.swift} instead.

* If you only want to update the Delivery's note, simply use `delivery note`{.swift} instead.
-
+
@@ -1113,7 +1164,9 @@ This command is useful for updating the details of a Delivery, such as due to a ###

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. +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`{.swift} @@ -1129,6 +1182,7 @@ An order can have one of the following statuses: CREATED, SHIPPED, COMPLETED or
**Examples:** + * `delivery status 1 CANCELLED`
Updates the status of Delivery with ID `1` to `CANCELLED`. * `delivery status 2 SHIPPED`
@@ -1147,17 +1201,18 @@ An order can have one of the following statuses: CREATED, SHIPPED, COMPLETED or ###

Create a note for a Delivery -If you would like to create a note about a specific delivery, this command allows you to do so as a shortcut, as opposed to using the lengthier `delivery edit`{.swift} command found [here](#update-details-of-a-delivery). +If you would like to create a note about a specific delivery, this command allows you to do so as a shortcut, as opposed +to using the lengthier `delivery edit`{.swift} command found [here](#update-details-of-a-delivery).
**Note:** If the Delivery already has a note, the previous note will be overwritten by the new given note. - + -
**Format:** +
**Format:** `delivery note DELIVERY_ID --note NOTE`{.swift} @@ -1165,10 +1220,11 @@ If you would like to create a note about a specific delivery, this command allow -**Parameter(s):** +**Parameter(s):** + * `DELIVERY_ID`{.swift} must be an integer greater than 0 that corresponds to an existing Delivery's ID.

* `NOTE`{.swift} must be alphanumeric and can contain spaces.
- +
@@ -1183,7 +1239,8 @@ If you would like to create a note about a specific delivery, this command allow ###

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. +If you feel that a Delivery is no longer relevant (i.e., cancelled or completed), you can delete it from HomeBoss using +this command.
@@ -1193,7 +1250,7 @@ If you feel that a Delivery is no longer relevant (i.e., cancelled or completed) -
**Format:** +
**Format:** `delivery delete DELIVERY_ID`{.swift} @@ -1229,13 +1286,13 @@ If you feel that a Delivery is no longer relevant (i.e., cancelled or completed) ### Help -This command allows you view a summary of the commands available, the format of the commands, and a link to this user guide. +This command allows you view a summary of the commands available, the format of the commands, and a link to this user +guide.
**Format:** `help`{.swift} - ![](images/ug/help.png)
@@ -1253,23 +1310,24 @@ 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. - + -
+
[↑ Back to Table of Contents](#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. +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! - +Proceed with caution! + **
Format:** `clear`{.swift} @@ -1292,18 +1350,15 @@ A: You can raise an issue on our [GitHub repository](https://github.com/AY2324S1 A: You can raise a bug report on our [GitHub repository](https://github.com/AY2324S1-CS2103T-T13-3/tp/issues)

- **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.

@@ -1318,52 +1373,52 @@ A: HomeBoss only supports English characters.

## User -| Command | Format | Examples | -|----------|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| -| Register | `register --user USERNAME --password PASSWORD --confirmPass CONFIRM_PASSWORD --secretQn SECRET_QUESTION --answer ANSWER`{.swift} | `register --user Gabriel --password GabrielIsGreat --confirmPass GabrielIsGreat --secretQn First Pet Name? --answer Koko` | -| Login | `login --user USERNAME --password PASSWORD`{.swift} | `login --user Gabriel --password GabrielIsGreat` | -| Update | `update [--user USERNAME] [--password PASSWORD --confirmPass CONFIRM_PASSWORD] [--secretQn SECRET_QUESTION --answer ANSWER]`{.swift} | `update --user GabrielV2 --password GabrielIsBest --confirmPass GabrielIsBest --secretQn Favourite Pet --answer BoBo` | -| Recover | `recover account [--answer ANSWER --password NEW_PASSWORD --confirmPass CONFIRM_PASSWORD]`{.swift} | `recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123` | -| Logout | `logout`{.swift} | `logout` | -| Delete | `delete account`{.swift} | `delete account` | +| Command | Format | Examples | +|----------|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| +| Register | `register --user USERNAME --password PASSWORD --confirmPass CONFIRM_PASSWORD --secretQn SECRET_QUESTION --answer ANSWER`{.swift} | `register --user Gabriel --password GabrielIsGreat --confirmPass GabrielIsGreat --secretQn First Pet Name? --answer Koko` | +| Login | `login --user USERNAME --password PASSWORD`{.swift} | `login --user Gabriel --password GabrielIsGreat` | +| Update | `update [--user USERNAME] [--password PASSWORD --confirmPass CONFIRM_PASSWORD] [--secretQn SECRET_QUESTION --answer ANSWER]`{.swift} | `update --user GabrielV2 --password GabrielIsBest --confirmPass GabrielIsBest --secretQn Favourite Pet --answer BoBo` | +| Recover | `recover account [--answer ANSWER --password NEW_PASSWORD --confirmPass CONFIRM_PASSWORD]`{.swift} | `recover account --answer Koko --password NewPassword123 --confirmPass NewPassword123` | +| Logout | `logout`{.swift} | `logout` | +| Delete | `delete account`{.swift} | `delete account` |
## Customer -| Command | Format | Examples | -|---------|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| -| Add | `customer add --name NAME --phone PHONE_NUMBER --email EMAIL --address ADDRESS`{.swift} | `customer add --name Gabriel --phone 87654321 --email Gabrielrocks@gmail.com --address RVRC Block B` | -| View | `customer view CUSTOMER_ID`{.swift} | `customer view 1` | -| List | `customer list`{.swift} | `customer list` | -| Find | `customer find KEYWORD [MORE_KEYWORDS]`{.swift} | `customer find Julius Yang` | -| Edit | `customer edit CUSTOMER_ID [--name NAME] [--phone PHONE_NUMBER] [--email EMAIL] [--address ADDRESS]`{.swift} | `customer edit 1 --name Gabriel --phone 97659320 --email Gabrielrock@gmail.com --address Block 10 Tampines Road` | -| Delete | `customer delete CUSTOMER_ID`{.swift} | `customer delete 1` | +| Command | Format | Examples | +|---------|--------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------| +| Add | `customer add --name NAME --phone PHONE_NUMBER --email EMAIL --address ADDRESS`{.swift} | `customer add --name Gabriel --phone 87654321 --email Gabrielrocks@gmail.com --address RVRC Block B` | +| View | `customer view CUSTOMER_ID`{.swift} | `customer view 1` | +| List | `customer list`{.swift} | `customer list` | +| Find | `customer find KEYWORD [MORE_KEYWORDS]`{.swift} | `customer find Julius Yang` | +| Edit | `customer edit CUSTOMER_ID [--name NAME] [--phone PHONE_NUMBER] [--email EMAIL] [--address ADDRESS]`{.swift} | `customer edit 1 --name Gabriel --phone 97659320 --email Gabrielrock@gmail.com --address Block 10 Tampines Road` | +| Delete | `customer delete CUSTOMER_ID`{.swift} | `customer delete 1` |
## Delivery -| Command | Format | Examples | -|---------|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------| -| Add | `delivery add DELIVERY_NAME --customer CUSTOMER_ID --date DELIVERY_DATE`{.swift} | `delivery add furniture --customer 5 --date 2023-12-03` | -| View | `delivery view DELIVERY_ID`{.swift} | `delivery view 1` | -| List | `delivery list [--status STATUS] [--customer CUSTOMER_ID] [--date DELIVERY_DATE] [--sort SORT]`{.swift} | `delivery list --status created --customer 1 --date 2023-12-12 --sort desc` | -| Find | `delivery find KEYWORD [MORE_KEYWORDS]`{.swift} | `delivery find Chocolate Bun` | -| Edit | `delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date DELIVERY_DATE] [--status STATUS] [--note NOTE]`{.swift} | `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`{.swift} | `delivery status 2 completed` | -| Note | `delivery note DELIVERY_ID --note NOTE`{.swift} | `delivery note 1 --note By FedEx` | -| Delete | `delivery delete DELIVERY_ID`{.swift} | `delivery delete 1` | +| Command | Format | Examples | +|---------|--------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| +| Add | `delivery add DELIVERY_NAME --customer CUSTOMER_ID --date DELIVERY_DATE`{.swift} | `delivery add furniture --customer 5 --date 2023-12-03` | +| View | `delivery view DELIVERY_ID`{.swift} | `delivery view 1` | +| List | `delivery list [--status STATUS] [--customer CUSTOMER_ID] [--date DELIVERY_DATE] [--sort SORT]`{.swift} | `delivery list --status created --customer 1 --date 2023-12-12 --sort desc` | +| Find | `delivery find KEYWORD [MORE_KEYWORDS]`{.swift} | `delivery find Chocolate Bun` | +| Edit | `delivery edit DELIVERY_ID [--name DELIVERY_NAME] [--customer CUSTOMER_ID] [--date DELIVERY_DATE] [--status STATUS] [--note NOTE]`{.swift} | `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`{.swift} | `delivery status 2 completed` | +| Note | `delivery note DELIVERY_ID --note NOTE`{.swift} | `delivery note 1 --note By FedEx` | +| Delete | `delivery delete DELIVERY_ID`{.swift} | `delivery delete 1` |
## Miscellaneous -| Command | Format | Examples | -|---------|-----------------|-----------------| -| Exit | `exit`{.swift} | `exit` | -| Help | `help`{.swift} | `help` | -| Clear | `clear`{.swift} | `clear` | +| Command | Format | Examples | +|---------|-----------------|----------| +| Exit | `exit`{.swift} | `exit` | +| Help | `help`{.swift} | `help` | +| Clear | `clear`{.swift} | `clear` |
From 4fa9a83ec07efd2bc619d3eff63f4090927875e0 Mon Sep 17 00:00:00 2001 From: Gabriel4357 Date: Thu, 9 Nov 2023 23:25:02 +0800 Subject: [PATCH 4/4] Add PPP draft --- docs/team/gabriel4357.md | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/docs/team/gabriel4357.md b/docs/team/gabriel4357.md index e69de29bb2d..916bde247a8 100644 --- a/docs/team/gabriel4357.md +++ b/docs/team/gabriel4357.md @@ -0,0 +1,58 @@ +--- +layout: default.md +title: "Gabriel Seethor's Project Portfolio Page" +--- + + +#### Overview +HomeBoss is a powerful desktop application designed specifically for home-based business owners, offering +efficient Customer and Delivery management solutions. 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. + +#### Summary of Contributions +Given below are my contributions to the project. + +- ##### Code Contributed + [RepoSense link] (https://nus-cs2103-ay2324s1.github.io/tp-dashboard/?search=gabriel4357&breakdown=false&sort=groupTitle%20dsc&sortWithin=title&since=2023-09-22&timeframe=commit&mergegroup=&groupSelect=groupByRepos) + +- ##### Enhancements Implemented + * Update details of a Customer + * Add a Delivery + * Update details of a Delivery + * Delete a Delivery + * Test Cases for all implemented features + + +- ##### Contributions to the User Guide + * Structuring the UG + * Introduction + * Table of Contents + * Editing the data file + * Feature - Update details of a Customer + * Feature - View a list of Customers + * Feature - Add a Delivery + * Feature - Update details of a Delivery + * Feature - Update status of a Delivery + * Feature - Delete a Delivery + * Formatting and styling of the UG + * Ensuring consistency of the UG + + +- ##### Contributions to the Developer Guide + * Customer Edit Feature + * Customer Edit Activity Diagram + * Customer Edit Sequence Diagram + * Delivery Add Feature + * Delivery Add Activity Diagram + * Delivery Add Sequence Diagram + +- ##### Contributions to team-based tasks + *to be added soon* + +- ##### Review/mentoring contribution + * Created issues, reviewed, approved and merged pull requests. + * Left comments on PRs to suggest improvements. + +- ##### Contributions beyond the project team + * Reported bugs during PE dry-run