Skip to content

Commit

Permalink
Merge pull request nus-cs2103-AY2021S1#73 from tohyuting/add-yuTing-U…
Browse files Browse the repository at this point in the history
…serAndDeveloperGuide

Update UserGuide and DeveloperGuide
  • Loading branch information
zhengweii authored Sep 25, 2020
2 parents feffa75 + 1c38dc1 commit 800f5ca
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 63 deletions.
31 changes: 19 additions & 12 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,27 +236,34 @@ _{Explain here how the data archiving feature will be implemented}_

**Target user profile**:

* has a need to manage a significant number of contacts
* prefer desktop apps over other types
* can type fast
* prefers typing to mouse interactions
* is reasonably comfortable using CLI apps
* John is a manager of a medical supplies company for 10 stores across the country
* He is a tech-savvy manager that prefers typing compared to clicking since he is always in a rush to source for supplies
* He has to retrieve suppliers contacts so that he can contact them to restock medical supplies when they run low at various stores.
* These contacts are stored in an excel sheet, separated by different countries.
* He also has to keep track of how much supplies each store has by calling every store to check at the end of the week and note down on separate excel sheets the sales of each store.
* He wants things to be efficient by reducing the number of applications (referring to email, excel sheets, reports etc.) needed and automate as many components as possible (reminder for low stocks, auto placing of order if feasible because of login details and all).
* He wants to access the most popular items and their suppliers' contact quickly. This helps him get promoted faster by ensuring a higher sales for each product.

**Value proposition**: manage contacts faster than a typical mouse/GUI driven app
**Value proposition**:

CLI-nic will keep track of details for each product as well as the product suppliers/stores contact details. In addition, CLI-nic helps John to retrieve and identify key information quickly. John can also create purchase order to keep track of how much orders has been placed so far, and the estimated delivery date. He can call the store to confirm if the stocks have been delivered on the estimated date. However, CLI-nic does not allow John to contact the suppliers and he has to call or email them individually. There will also not be any real-time updates for the number of stocks held by suppliers and John has to update them manually. Stocks at the stores will not be updated real-time as well. Instead, employees of each store will have to update John at the end of every week. Lastly, CLI-nic does not allow users to immediately place an order to suppliers or schedule a delivery to the stores.

### User stories

Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*`

| Priority | As a …​ | I want to …​ | So that I can…​ |
| -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- |
| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App |
| `* * *` | user | add a new person | |
| `* * *` | user | delete a person | remove entries that I no longer need |
| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list |
| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident |
| `*` | user with many persons in the address book | sort persons by name | locate a person easily |
| `* * *` | potential user | save contacts of my suppliers and stores in same location | easily refer to the contacts and give them a call for updates |
| `* * *` | potential user | save products in the same location as suppliers and stores | easily refer keep track of stocks in various stores and their suppliers |
| `* * *` | new user | access the command list/user guide | easily refer to instructions for commands and usage instructions |
| `* * *` | standard user | add a new supplier/product/store contacts entry | add entries to the list of suppliers/stores/inventory |
| `* * *` | standard user | delete a supplier/supply/client contacts entry | remove entries that are not needed anymore |
| `* * *` | standard user | find a supplier/product by name | locate relevant items without having to go through all the lists |
| `* * *` | standard user | add remarks to a supplier entry | note down details that are specific to the supplier |
| `* * *` | standard user | keep track of the estimated days to deliver the products | so that I can ensure that products are delivered as promised and update the stocks in each stores by myself
| `* * *` | standard user | list all my products/suppliers/stores | so that I can contact them and retrieve details regarding products/suppliers/stores easily |


*{More to be added}*

Expand Down
92 changes: 45 additions & 47 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,21 @@ and efficient Graphical User Interface interaction.
1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.<br>
![Ui](images/Ui.png)

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.<br>
1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will display instructions on various commands.<br>
Some example commands you can try:

* **`Create`** : Create a purchase order
* **`view supplier supplierA`** : Displays all the information associated with supplierA e.g. address, contact, email, products sold by the supplier etc.

* **`add`**` p/PANADOL SUSP id/1 t/FEVER` : Adds product named `PANADOL SUSP` with product id of 1 with a `FEVER` tag to CLI-nic.

* **`delete`**` delete supplier 12` : Removes supplier at index 12 from the list of suppliers.

* **`clear`** : Deletes all contacts.

* **`exit`** : Exits the app.

* **`find PANADOL warehouse`** : Displays all the warehouses managed by the manager that has a product named PANADOL.


1. Refer to the [Features](#features) below for details of each command.

Expand All @@ -40,10 +51,10 @@ and efficient Graphical User Interface interaction.
**:information_source: Notes about the command format:**<br>

* Words in `UPPER_CASE` are the parameters to be supplied by the user.<br>
e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`.
e.g. in `list TYPE`, `TYPE` is a parameter which can be used as `list products`.

* Items in square brackets are optional.<br>
e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`.
e.g `[LIST_TYPE] INDEX` can be used as `delete store 12` or as `delete 1`.

* Items with ``​ after them can be used multiple times.<br>
e.g. `[t/TAG]…​` can be used as `t/friend`, `t/friend t/family` etc.
Expand All @@ -55,12 +66,16 @@ and efficient Graphical User Interface interaction.

### Viewing help : `help`

Shows a message explaning how to access the help page.
Displays a list of available commands and their utility description.
Narrows down to a specific command and its actual input format and samples if specified.

![help message](images/helpMessage.png)

Format: `help`
Format: `help [COMMAND]`

Examples:
* `help` Display entire list of commands and their description
* `help add` Displays the detailed description, input format and an input example of add command.

### Adding a person: `add`

Expand All @@ -76,7 +91,6 @@ Examples:
* `add n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01`
* `add n/Betsy Crowe t/friend e/[email protected] a/Newgate Prison p/1234567 t/criminal`


### **Creating a purchase order : `create`**
* Create a purchase order to track the purchase of medical products from a supplier to a store.
* **Format**: `create sid/SUPPLIER_ID s/STORE_ID id/PRODUCT_ID…​ qty/PRODUCT_QUANTITY…​ date/EXPECTED_DELIVERED_DATE`
Expand All @@ -87,64 +101,48 @@ Examples:
* **Examples**:
* `create sid/01 s/123 id/1 2 4 8 qty/100 200 400 800 date/2020-12-12` : Creates a purchase order for the delivery of 100, 200, 400 and 800 of products with ID 1, 2, 4 and 8 respectively from supplier ID of 01 to store ID of 123 by December 12, 2020.

### Listing all persons : `list`

Shows a list of all persons in the address book.

Format: `list`
### View a specific supplier / warehouse: `view`

### Editing a person : `edit`
Shows a particular supplier/warehouse with their relevant information e.g. products associated with the supplier/warehouse, address etc.

Edits an existing person in the address book.

Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`

* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, …​
* At least one of the optional fields must be provided.
* Existing values will be updated to the input values.
* When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative.
* You can remove all the person’s tags by typing `t/` without
specifying any tags after it.
Format: `view TYPE NAME`
* The TYPE specified should be one of these values: supplier or warehouse
* NAME specified is case-insensitive

Examples:
* `edit 1 p/91234567 e/[email protected]` Edits the phone number and email address of the 1st person to be `91234567` and `[email protected]` respectively.
* `edit 2 n/Betsy Crower t/` Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags.
* `view supplier supplierA` Displays all the information associated with supplierA e.g. address, contact, email, products sold by the supplier etc.
* `view warehouse warehouseB` Displays all the information associated with warehouseB e.g. address, all the products stored in the warehouse etc.

### Finding medical products / suppliers: `find`
### Finding medical product associated with warehouses / suppliers: `find`

Finds medical products / suppliers whose information contains any of the given keywords.
Finds all suppliers or warehouses managed by the manager that sells the relevant medical products.

Format: `find TYPE KEYWORD`
Format: `find PRODUCT TYPE`

* `TYPE` takes in either `product` / `supplier`.
* `KEYWORD` is case-insensitive.
* The search is case-insensitive.
* Searches only the name and additional information of the products and suppliers.
* Only full words will be matched e.g. `Han` will not match `Hans`.
* PRODUCT and KEYWORD specified is case-insensitive.
* The TYPE specified should be one of these values: warehouse / supplier

Examples:
* `find product panadol` returns all medical products containing `panadol` in its name or additional description.
* `find supplier Kent Ridge` returns all suppliers that are located in `Kent Ridge`.

### Removing a purchase order/store/product/supplier : `delete` [Coming soon]
* `find PANADOL warehouse` displays all the warehouses managed by the manager that has a product named PANADOL.
* `find masks supplier` displays all the suppliers that have stock for the input product.

Remove entries that are not needed anymore.
### Deletes a particular warehouse or supplier : `delete`

**Format**: `delete [LIST_TYPE] INDEX`
Delete entries of warehouses or suppliers that are not needed anymore.

* Deletes from the purchase order list by default at `INDEX`
* The `LIST_TYPE` specified should be one of these values: **order/store/product/supplier**
* The `INDEX` **must be a positive integer**, not exceeding the total number of items
**Format**: `delete TYPE INDEX`

* The TYPE specified should be one of these values: warehouse / supplier.
* The INDEX must be a positive integer, not exceeding the total number of items.

**Examples**

* `delete 1`: Removes the 1st order from the list of orders as no `LIST_TYPE` is specified.
* `delete store 12`: Removes 12th store from the list of stores.
* `delete warehouse 1` Removes the warehouse at index 1.
* `delete supplier 12` Removes supplier at index 12 from the list of suppliers.

### Clearing all entries : `clear`

Clears all entries from the address book.
Clears all entries (Suppliers and Warehouses) from the CLI-nic.

Format: `clear`

Expand All @@ -156,7 +154,7 @@ Format: `exit`

### Saving the data

AddressBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
CLI-nic data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

<br />

Expand All @@ -165,7 +163,7 @@ AddressBook data are saved in the hard disk automatically after any command that
## FAQ

**Q**: How do I transfer my data to another Computer?<br>
**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous AddressBook home folder.
**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous CLI-nic home folder.

--------------------------------------------------------------------------------------------------------------------

Expand Down
5 changes: 1 addition & 4 deletions docs/team/yuTing.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ title: Yu Ting's Project Portfolio Page

## Project: CLI-nic

CLI-nic is a desktop application used to help medical product sales managers keep track of medical products and storage.
The user interacts with it using a CLI, and it has a GUI created with JavaFX.
It is optimized for these managers to update product conditions and access critical product information quickly via fast typing.
It is written in Java, and has about 10 kLoC.
CLI-nic is **a desktop application to help medical product sales managers keep track of medical products and storage**. It is optimized for these managers to **update product conditions and access critical product information quickly via fast typing**. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

Expand Down

0 comments on commit 800f5ca

Please sign in to comment.