diff --git a/docs/UserGuide.md b/docs/UserGuide.md
index 8610971fea9..60fa8a72336 100644
--- a/docs/UserGuide.md
+++ b/docs/UserGuide.md
@@ -3,24 +3,68 @@ layout: page
title: HouseKeeping Hub User Guide
---
-Welcome to HouseKeeping Hub, the premier desktop application for **organizing client and housekeeper contacts**.
+Hello there! A very warm welcome to Housekeeping Hub, the premier desktop application tailored for the **administrative staff
+of housekeeping companies** in Singapore.
+
+Housekeeping Hub boasts specialised and robust functionality, including contact management tools for clients and housekeepers as well as a booking management system,
+our application ensures that the admin can effectively **manage an extensive contact list** and efficiently **match suitable housekeepers
+to clients** when on-call.
+
+That's not all! Our application also offers a special feature: instantly retrieve a client call list
+that contains clients whose estimated next cleaning dates are nearing - a feature sure to increase customer retention rates.
+
With the efficiency of a **Command Line Interface ([CLI](#cli))** and the convenience of a **Graphical User Interface ([GUI](#gui))**,
-our platform ensures fast and user-friendly contact management for **housekeeping companies' admins**.
-But that's not all - we also offer a robust **booking system** to help you keep track of client bookings and housekeeper availability.
+Housekeeping Hub ensures fast and user-friendly usage for every admin!
+
+Are you ready to revolutionize your administrative workflow? Read on to learn more!
+
+--------------------------------------------------------------------------------------------------------------------
## Table of Contents
* Table of Contents
{:toc}
--------------------------------------------------------------------------------------------------------------------
+
+## Our Target User
+
+Housekeeping Hub is specially tailored for a housekeeping company's admin whose role could involve:
+1. Managing a contact list of clients and housekeepers detailing their personal particulars
+2. Maintaining other important information regarding clients, including their booking dates or preferred interval between housekeeping services
+3. Maintaining booking information and availability of every housekeeper
+4. Searching for suitable housekeepers for a client, based on certain criteria like availability or area
+5. Calling and reminding clients who have yet to make a new booking after a certain amount of time to do so
+
+Our application is perfectly optimised to support the admin in accomplishing these tasks **effectively** and **with ease**!
+
+Furthermore, our application is suitable for admins of all diverse roles or backgrounds. Even admins who are **not
+tech-savvy**, or who have **limited administrative experience**, will find it a breeze to learn how to use Housekeeping Hub -
+it's that intuitive and simple!
+
+Though, as our application utilizes a **Command Line Interface ([CLI](#cli))**, it is naturally better optimised for
+those who prefer typing to mouse actions.
+
+Now that we have fleshed out our target user, we do recognise that **you**, the reader, might not be here as the user
+of our application!
+If you are here as...
+1. A housekeeping company's admin learning how to use the application, we have provided detailed information on how to get started down below - we wish you all the best!
+2. A housekeeping company's upper management, looking to implement our software into your company's workflow system, do reach out to us so that we may offer you the best service!
+3. A fellow developer, we welcome you to explore our application and share with us your valued feedback!
+
+Following this, we will delve into the purpose of this user guide.
+
+--------------------------------------------------------------------------------------------------------------------
+
## Purpose of this guide
+
This guide has been created to help you understand and utilize the features and functionalities of our software
effectively. Whether you're a new user who is not familiar with command line interface ([CLI](#cli)) or an expert looking to enhance
-your skills, this guide aims to provide you with the information you need to make the most of our product.
+your skills, this guide aims to provide you with the information you need to make the most of our application!
In this guide, you will find a quick start (guide to install and start using our product), a list of features and how to use them, and
-a glossary to help you understand some jargon. This guide is designed to provide you with clear and concise instructions
-and a reader-friendly format to enhance your experience in using our product.
+a glossary to help you understand any technical jargon. This guide is designed to provide you with clear and concise instructions
+in a reader-friendly format to enhance your experience in using our application. Below is the table of contents for quick navigation
+of our guide.
[:arrow_up_small:](#table-of-contents)
@@ -28,7 +72,11 @@ and a reader-friendly format to enhance your experience in using our product.
## How to use this guide:question:
-Let's get started! Here's a rundown of every section in this guide:
+Let's get started! For users who are familiar with our application, you may want to skip straight to the
+[command summary](#command-summary) for a quick refresh of available commands.
+
+For beginner users who are learning how to use this guide and our application, no worries!
+Here's a rundown of every section in this guide:
If you have yet to install HouseKeeping Hub, you can refer to the [installation instructions](#installation).
@@ -52,9 +100,33 @@ in the section below.
## Navigating our guide :mag:
-Words highlighted in blue in our guide can direct you to a specific section in our guide ([FAQ](#faq)),
-an external link ([download link](https://github.com/AY2324S2-CS2103T-W09-1/tp/releases)), or to an explanation of a term in the glossary ([CLI](#cli)).
-There will be [:arrow_up_small:](#table-of-contents) links, which you can click on to return to the table of contents.
+This section is to aid you in navigating our guide.
+
+Words highlighted in blue in our guide can direct you to:
+1. A specific section in our guide ([FAQ](#faq))
+2. An external link ([download link](https://github.com/AY2324S2-CS2103T-W09-1/tp/releases)), or
+3. An explanation of a term in the glossary ([CLI](#cli)).
+
+To return to the table of contents, you may click on this button, which appears at the end of every section:
+[:arrow_up_small:](#table-of-contents)
+
+Tips that can enhance your understanding of our features and/or improve our application's usability will be highlighted
+in these boxes:
+
:bulb: **Tip:**
+These are tips to help you use the application more effectively!
+
+
+Extra information about certain features will be included in these boxes:
+
+
+**:information_source: Notes about the command format:**
+Additional information specified here!
+
+
+Warnings that caution you on potentially adverse or unintended effects will be accentuated in these boxes:
+:exclamation: **Caution:**
+**Very** important information here! Please read me!
+
[:arrow_up_small:](#table-of-contents)
@@ -63,19 +135,25 @@ There will be [:arrow_up_small:](#table-of-contents) links, which you can click
## Installation :computer:
-1. Ensure you have `Java 11` or above installed in your Computer. You can download `Java 11` from [here](https://www.oracle.com/sg/java/technologies/javase/jdk11-archive-downloads.html).
+1. This application requires `Java 11` or above to be installed in your Computer. You can download `Java 11` from [here](https://www.oracle.com/sg/java/technologies/javase/jdk11-archive-downloads.html).
1. Download the latest `HousekeepingHub-v1.3.1.jar` from [here](https://github.com/AY2324S2-CS2103T-W09-1/tp/releases).
1. Copy the file to the folder you want to use as the _home folder_ for your HouseKeeping Hub.
-1. Open a [command terminal](#terminal), and type in `cd` to navigate into the folder you placed the [jar](#jar) file in.
+1. Open a [command terminal](#terminal), and type in `cd [folder_name]` to navigate into the folder you placed the [jar](#jar) file in.
1. Type in `java -jar HousekeepingHub-v1.3.1.jar` to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data for demonstration purpose.
- Once you are familiar with the app, you can use the `clear` command to remove all the sample data.
- ![Ui](./images/Ui.png)
+ Once you are familiar with the app, you can use the `clear` command to remove all the sample data.
+ :exclamation: **Caution:**
+ The `clear` command is irreversible! Please use it only when certain.
+
+
+
+
+ ![Ui](./images/Ui.png)
[:arrow_up_small:](#table-of-contents)
@@ -84,20 +162,60 @@ There will be [:arrow_up_small:](#table-of-contents) links, which you can click
## Tutorial
-1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.
- Some example commands you can try:
+After you have launched Housekeeping Hub, you should see some sample data for you to try out the features.
+
+To use a command, type the command into the command box and press Enter to execute it.
- * `list client` : Lists all client contacts.
+Let us try some simple workflows!
- * `add housekeeper n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 ar/west` : Adds a housekeeper named `John Doe`.
+Adding and deleting contacts:
- * `delete client 3` : Deletes the 3rd contact shown in the last shown list.
+1. Add a client named 'Melissa Tan' into the client list:
+ `add client n/Melissa Tan p/98362547 e/mtan23@example.com a/Jane street, block 321 ar/northeast`
+2. Delete the 3rd housekeeper that appears in the housekeeper list:
+ `delete housekeeper 3`
- * `clear` : Deletes all contacts.
+Finding and listing contacts:
- * `exit` : Exits the app.
+1. Find clients with the name 'David':
+ `find client n/david`
+2. List all clients again:
+ `list client`
-1. Refer to the [Features](#features) below for details of each command.
+Adding a booking for a housekeeper:
+
+1. Search for housekeepers who are available in the East, on 2024-03-02 pm:
+ `booking housekeeper search east 2024-03-02 pm`
+2. View the booking list of the 2nd housekeeper that appears in the housekeeper list:
+ `booking housekeeper list 2`
+ The list should be empty.
+3. Add a new booking for the 2nd housekeeper:
+ `booking housekeeper add 2 2024-05-22 pm`
+4. View the booking list of the 2nd housekeeper again:
+ `booking housekeeper list 2`
+ The list should contain the new booking you just made.
+5. Delete the booking you just made:
+ `booking housekeeper delete 2 1`
+
+Edit a client's housekeeping details:
+
+1. Add a booking date for the 2nd client that appears in the client list:
+ `booking client add 2 2024-03-11 pm`
+2. Edit the booking date for the 2nd client:
+ `booking client edit 2 bd/2024-03-17 am`
+3. Remove the 2nd client's housekeeping details:
+ `booking client remove 2`
+4. Set the 2nd client's housekeeping details again:
+ `booking client set 2 2024-03-01 15 months`
+
+Once you've familiarized yourself with the commands, you can clear all the sample data in the application with the
+`clear` command.
+
+:exclamation: **Caution:**
+The `clear` command is irreversible! Please use it only when certain.
+
+
+Congratulations on completing the tutorial! For more in depth explanations of each command, you may refer to the [Features](#features) section below.
[:arrow_up_small:](#table-of-contents)
@@ -106,6 +224,9 @@ There will be [:arrow_up_small:](#table-of-contents) links, which you can click
## Features
+Welcome to the features section! Here, we will provide detailed information on how to use each feature in the application.
+The information box below contains pertinent information to help you interpret the command formats correctly.
+
**:information_source: Notes about the command format:**
@@ -138,7 +259,7 @@ as space characters surrounding line-breaks may be omitted when copied over to t
### Viewing help : `help`
-Shows a message explaning how to access the help page.
+Shows a message explaining how to access the help page.
![help message](./images/helpMessage.png)
@@ -459,38 +580,6 @@ Examples:
--------------------------------------------------------------------------------------------------------------------
-###### Adding deferment: `booking client defer`
-
-Adds a deferment to the period before a client's next estimated housekeeping date.
-The default value for deferment is 0.
-
-This function can be used to manage clients who want to defer their next housekeeping date. For example, a client who
-will be overseas for the next 3 months might want to defer their next housekeeping service to after they are back.
-
-If the client has **no housekeeping details**, first use the `set` command to add housekeeping details for the client.
-
-Format: `booking client defer INDEX NUMBER INTERVAL`
-
-Parameters:
-
-`INDEX`: index of target client, relative to the observed client list
-`NUMBER`: quantity of `INTERVAL`(s) - non-negative integer
-`INTERVAL`: period to defer - 'days', 'weeks', 'months' or 'years'
-
-
:bulb: **Tip:**
-The specified index will work for any currently displayed list. i.e. What you see is what you get.
-The `INTERVAL` is the period to defer. It is meant to be an estimate, so
-options such as `2 weeks and 3 days` are not supported. If precision is needed, you should convert it to `NUMBER days`.
-
-
-Examples:
-* `booking client defer 2 3 months` adds a deferment of 3 months for the 2nd client
-* `booking client defer 6 1 years` adds a deferment of 1 year for the 6th client
-
-[:arrow_up_small:](#table-of-contents)
-
---------------------------------------------------------------------------------------------------------------------
-
###### Editing housekeeping details: `booking client edit`
Edits any attribute client's housekeeping details (including last housekeeping date, preferred interval, booking date and deferment).
@@ -518,6 +607,11 @@ Formats and parameters:
`INDEX`: index of target client, relative to the observed client list
`NUMBER`: quantity of `INTERVAL`(s) - non-negative integer
`INTERVAL`: period to defer - 'days', 'weeks', 'months' or 'years'
+ Edits a deferment to the period before a client's next estimated housekeeping date.
+ The default value for deferment is 0.
+
+This deferment attribute can be used to manage clients who want to defer their next housekeeping date. For example, a client who
+will be overseas for the next 3 months might want to defer their next housekeeping service to after they are back.
:bulb: **Tip:**
The index to delete will work for any displayed list. i.e. What you see is what you get.
@@ -660,7 +754,6 @@ Action | Format, Explainations, Examples
`edit pi/` | Edit client's preferred interval with `edit pi/`
Format: `booking client edit INDEX pi/NUMBER INTERVAL`
Example: `booking client edit 2 pi/2 weeks`
`edit bd/` | Edit client's booking date with `edit bd/`
Format: `booking client edit INDEX bd/BOOKING DATE`
Example: `booking client edit 2 bd/2024-04-02 am`
`edit d/` | Edit deferment with `edit d/`
Format: `booking client edit INDEX d/NUMBER INTERVAL`
Example: `booking client edit 2 d/2 months`
-`defer` | Add period to delay calling clients with `defer`
Format: `booking client defer INDEX NUMBER INTERVAL`
Example: `booking client defer 2 1 months`
`add` | Add client's booking date with `add`
Format: `booking client add INDEX yyyy-MM-dd (am|pm)`
Example: `booking client add 2 2024-04-01 am`
`delete` | Delete client's booking date with `delete`
Format: `booking client delete INDEX`
Example: `booking client delete 2`
`set` | Set client's housekeeping details with `set`. Same format as initiation, you can set last housekeeping date and preferred interval.
Format: `booking client set INDEX yyyy-MM-dd NUMBER INTERVAL`
Example: `booking client set 2 2024-04-01 15 days`