Skip to content

Commit

Permalink
Merge 85b29a6 into 6b13f29
Browse files Browse the repository at this point in the history
  • Loading branch information
racheltanxueqi committed Apr 15, 2019
2 parents 6b13f29 + 85b29a6 commit 443259c
Show file tree
Hide file tree
Showing 12 changed files with 108 additions and 50 deletions.
139 changes: 101 additions & 38 deletions docs/DeveloperGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -250,25 +250,27 @@ This section describes some noteworthy details on how certain features are imple

//tag::equipment[]
=== Equipment feature
To provide users with the best understanding on the attributes of equipment in *Equipment Manager*,
To provide users with the best understanding on the parameters of equipment in *Equipment Manager*,
this section will provide a brief overview on the equipment details as well as how the details of an equipment are
used for multiple features in the design of Equipment Manager. Not forgetting sharing some design considerations to make the best choice for *Equipment Manager*.

==== Overview on Equipment details

|===
| *Attributes* | *Description* | *Things to Note*
| Name | The client's name who owns the equipment. |
| Phone | The contact number of the client that owns the equipment. |
| Date | The due date for which maintenance work on the equipment should be carried out by then. |
| Address | The address of the client that owns the equipment. |
| Serial Number | The serial number of an equipment | All equipment have unique serial number and there should not be duplicated serial number.
| *Equipment Parameters* | *Description* | *Things to Note*
| NAME | The client's name who owns the equipment. | Name should only contain alphanumeric characters and spaces, and it should not be blank.
| PHONE | The contact number of the client that owns the equipment. | Phone numbers should only contain numbers, and it should be at least 3 digits long
| DATE | The due date for which maintenance work on the equipment should be carried out by then. | Should only contain numbers and hyphens, no blanks allowed. The correct format is dd-MM-yyyy. For example, 03-05-2019 which means 3 May 2019.
| ADDRESS | The address of the client that owns the equipment. |
| SERIAL_NUMBER | The serial number of an equipment | All equipment have unique serial number and there should not be duplicated serial number.
| TAG | Tag provides user with desired labels without any restriction on labelling format in *Equipment Manager*. An equipment can any number of tags (including 0).
|===


==== Current Usage of Equipment Details
In order to allow users to keep track of the Preventive Maintenance schedule and carry out features provided by Equipment Manager, we have implemented the following commands with the usage of the attributes of an equipment as mentioned in the previous section.
In order to allow users to keep track of the Preventive Maintenance schedule and carry out features provided by Equipment Manager, we have implemented the following commands with the usage of the equipment parameters as mentioned in the previous section.

*An example of how the attributes of equipment are used:*
*An example of how the parameters of equipment are used:*

* When user execute the `AddCommand` or `EditCommand`, there are equipment details stored in *Equipment Manager*.
* When user uses command like `DisplayCommand`, *Equipment Manager* will need to use the address details to provide visual representation of the location of client that owns the equipment.
Expand All @@ -288,7 +290,7 @@ Given below is an example usage scenario of how the adding of equipment details

Step 1. The user launches the application.

Step 2. The user executes `add-e n/Pending CC d/01-05-2019 p/99887766 a/Pending Rd s/XDH1429387 t/north-west` command.
Step 2. The user executes `add-e n/Pending CC pm/01-05-2019 p/99887766 a/8 Pending Rd, Singapore 678295 s/XDH1429387 t/north-west` command.

Step 3. After `EquipmentManagerParser` detects `add-e` as the command word, a `AddCommandParser#parse()` is called.

Expand Down Expand Up @@ -323,7 +325,7 @@ because attributes of client and equipment are being shared in order to for feat
In Equipment Manager, there are `Name`, `Phone`, `Address` attributes stored under *Equipment details* that identify client details.

* A client can have 0 to numerous equipment which are identified by unique serial number but an equipment cannot be shared by multiple clients.
** There is a `CountEquipment` method in *Equipment Manager* that counts the number of equipment that each client owns. Since *Equipment Details* panel showcases by each equipment, having a summarized details of each client, allows user to be more aware that the client might own more than 0, 1 or more than 1 equipment.
** By using `select-c` to select the desired client name in *Client details* pabel, we can view a list of equipments that are owned by the client.
* Each address tells user where 0 to numerous equipment, which each client owns, are located at.

==== Current Usage of Client details
Expand Down Expand Up @@ -574,8 +576,8 @@ showing our thinking process for the UI in designs considerations section.
==== Current implementation
===== Launch the Application

.On start of the Equipment Manager application
image::applaunchUI.png[%autowidth]
.On start of the Equipment Manager application, UI with labels
image::ui_labelled.png[width="790"]

The figure above depicts the interface the user see when the user launches the application.
The user should be greeted by 9 different regions:
Expand All @@ -585,26 +587,26 @@ The user should be greeted by 9 different regions:
| [1] *Menu Bar* | Allow users to click `File` > `Exit` to exit the application and click `Help` to navigate to our User Guide page.
| [2] *Command Box* | User enters the command in the command box. Refer to *User Guide* to learn all the available commands.
| [3] *Message box* | The message box that shows the result after a command has been executed.
| [4] *Status Bar* |
| [4] *Status Bar* | Show the total number of equipment in the *Equipment Manager*.
| [5] *Google Map* | Google map serves as a visual representation for where equipment are at as well as showing user the possible routes to take.
| [6] *Equipment Result Panel* | This panel shows summarized details on equipment
| [6] *Equipment details* panel | This panel shows summarized details on equipment
| [7] *Equipment Details Page* | This is a HTML page where it shows more detailed information on an equipment.
| [8] *Client Result Panel* | This panel shows specifically information related to client such as the name and how many equipment the client owns.
| [9] *Work list Result Panel* | This panels shows the work schedule of a person when the user assigns equipment whom the user want to carry out preventive maintenance work.
| [8] *Client Details* panel | This panel shows specifically information related to client such as the name and how many equipment the client owns.
| [9] *My Work List* panel | This panels shows the work schedule of a person when the user assigns equipment whom the user want to carry out preventive maintenance work.
|===

===== Showcase Client details
To avoid cluttering to many information in *Equipment Result Panel*,
we decided to categorise information related to clients into *Client Result Panel*
such as showing the name of the client and how many equipment the client owns as seen in the figure below.
===== Showcasing Client details
To avoid cluttering to many information in *Equipment details* panel,
we decided to categorise information related to clients into *Client details* panel
such as showing all the unique client names in Equipment Manager as seen in the figure below.

.Outcome of a showing client details when using `add-c` feature
image:: AddClientDetailsUI.png[%autowidth]
.Client name listed under Client details panel
image::AddClientDetailsUI.png[%autowidth]

===== Showcase Equipment details and locations
Similarly, there are many information to be shown in *Equipment Result Panel*.
===== Showcasing Equipment details and locations
Similarly, there are many information to be shown in *Equipment details* panel.
Hence, as seen in the figure below, we created a HTML page to show more information
on equipment. This means there are some information not shown in *Equipment Result Panel* but will instead be shown in *Equipment Details Page*.
on equipment. This means that there are some information not shown in *Equipment details* panel but will instead be shown in *Equipment Details Page*.

.Incorporating HTML in panel to show more equipment details
image::equipmentdetailsUI.png[%autowidth]
Expand All @@ -615,7 +617,7 @@ One of our main feature of *Equipment Manager* is the ability to have a visual r
image::clientlocationsUI.png[%autowidth]

As seen in the above figure, entering `display` command will allow a visual representation of all equipment locations in the *Equipment Manager* data storage onto *Google Map*.
This is one of our main feature of *Equipment Manager* where we provide users to view either 1 equipment location at a time by entering `select` INDEX or simply by clicking onto the an equipment in *Equipment Result Panel*.
This is one of our main feature of *Equipment Manager* where we provide users to view either 1 equipment location at a time by entering `select` INDEX or simply by clicking onto the an equipment in *Equipment details* panel.

==== Design Considerations
===== Aspects: Information to be displayed on respective panels
Expand Down Expand Up @@ -1018,9 +1020,40 @@ _{More to be added}_
[appendix]
== Use Cases

(For all use cases below, the *System* is the *Equipment Manager* and the *Actor* is the `user`, unless specified otherwise)
For all use cases below, the *System* is the *Equipment Manager* and the *Actor* is the `user`, unless specified otherwise.

[discrete]
// tag::selectClientUC[]
=== Use Case: Select Client

*MSS*

image::SelectClientUC.png[%autowidth]

1. User selects the client name under Client details panel
2. The client name under Client details panel is selected
3. Equipment details panel shows a list of equipment that is owned by the client name
+
Use case ends.

*Extensions*

[none]
* 2a. The client name is listed in CLient details panel
+
Use case ends.

[none]
* 2b. The given index is empty.
+
Use case ends.

[none]
* 3a. The client does not own any equipment (as of now). Zero equipment listed.
+
Use case ends.
// end::selectClientUC[]

=== Use case: Delete equipment

*MSS*
Expand Down Expand Up @@ -1059,8 +1092,6 @@ Non-functional requirements specify the constraints under which system is develo
. Should come with automated unit tests and be able to handle errors and exceptions.
. Should be user-friendly for someone who have never used a CLI or software before to keep track of preventive maintenance schedule or route planning.

_{More to be added}_

[appendix]
== Glossary

Expand Down Expand Up @@ -1109,26 +1140,58 @@ These instructions only provide a starting point for testers to work on; testers
.. Re-launch the app by double-clicking the jar file. +
Expected: The most recent window size and location is retained.

_{ more test cases ... }_
=== Equipment feature

. Adding an equipment (identified by serial number)

=== Deleting an equipment
.. Prerequisites: Add an equipment using the `add-e n/Clementi CC p/67762517 pm/01-05-2019 a/220 Clementi Ave 4, Singapore 129880 Rd s/X14DH9283` command. Note that this equipment has serial number X14DH9283.
.. Test case: `add-e n/Clementi CC p/67762517 pm/01-05-2019 a/220 Clementi Ave 4, Singapore 129880 Rd s/X14DH9283` +
Expected: Duplicated equipment serial number, this equipment already exists in the equipment manager.
.. Test case: `add-e n/Clementi CC`
Expected: Invalid command format. Error details shown in message box.
.. Other incorrect edit commands to try: `add` (without giving the correct parameters)

. Deleting a equipment while all equipment are listed
. Editing an equipment
.. Prerequisites: Starts off with an empty equipment list. To check, use `list-e` command. If it is not empty, use `clear` command to clear all datas.
.. Test case: `edit-e 1 n/Pending CC` +
Expected: The equipment index provided is invalid.
.. Test case: `add-e n/Clementi CC p/67762517 pm/01-05-2019 a/220 Clementi Ave 4, Singapore 129880 Rd s/X14DH9283` + `edit-e 1 n/Pending CC p/65060900 a/8 Pending Rd, Singapore 678295` +
Expected: Equipment successfully modified.
.. Test case: `edit-e 0 n/Pending CC` +
Expected: Invalid index given.
.. Other incorrect edit commands to try: `edit`, `edit-e 1` (without giving the parameters)

.. Prerequisites: List all equipment using the `list` command. Multiple equipment in the list.
. Deleting an equipment while all equipment are listed

.. Prerequisites: List all equipment using the `list-e` command. Multiple equipment in the list.
.. Test case: `delete-e 1` +
Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated.
Expected: First equipment is deleted from the list. Details of the deleted equipment shown in the status message. Timestamp in the status bar is updated.
.. Test case: `delete-e 0` +
Expected: No equipment is deleted. Error details shown in the status message. Status bar remains the same.
.. Other incorrect delete commands to try: `delete`, `delete x` (where x is larger than the list size) _{give more}_ +
Expected: Similar to previous.

_{ more test cases ... }_
=== Client feature

. Selecting a client name

.. Prerequisites: App launch will provide list of equipment and client details displayed under *Equipment details* and *Client details* panel respectively.
.. Test case: `select-c 1` +
Expected: First client is selected from the client list. Equipments that are owned by this client will be listed under the *Equipment details* panel.
.. Test case: `select 1` +
Expected: First equipment is selected from the equipment list, resulting in equipment details displayed in *Equipment result page* but this is not the correct command to select client from client list.


=== Saving data

. Dealing with missing/corrupted data files

.. _{explain how to simulate a missing/corrupted file and the expected behavior}_
.. Prerequisites: You must know where the data files are stored. By default, this will be at the data/ directory at the path of the jar file.

.. Test case: Delete the data directory and launch the app
+
Expected: A sample folder is present when the app launches (although it is not committed to storage until a persistent change is made).

_{ more test cases ... }_
.. Test case: Insert a non-json file/corrupted json file in the data directory and launch the app
+
Expected: The valid json files have folders with their corresponding names present. The non-json file/corrupted json file remains unaffected.
2 changes: 1 addition & 1 deletion docs/UserGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ Type the command in the Command Box and press kbd:[Enter] to execute it. +

* *`help`*: opens up user guide
* *`list-e`*: lists all equipment details
* **`add-e`**`n/Clementi CC p/6776 2517 d/01-05-2019 a/220 Clementi Ave 4, Singapore 129880 Rd s/X14DH9283` : adds a contact named `Clementi CC` to the *Equipment Manager*.
* **`add-e`**`n/Clementi CC p/67762517 pm/01-05-2019 a/220 Clementi Ave 4, Singapore 129880 Rd s/X14DH9283` : adds a contact named `Clementi CC` to the *Equipment Manager*.
* **`delete-e`**`3`: deletes the 3rd equipment detail shown in the current list
* *`exit`*: exits the app

Expand Down
Binary file modified docs/diagrams/AddCommandSD.pptx
Binary file not shown.
Binary file added docs/diagrams/SelectClientCommandSD.pptx
Binary file not shown.
Binary file added docs/diagrams/~$FilterCommandSequenceDiagram.pptx
Binary file not shown.
Binary file modified docs/images/AddClientDetailsUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/AddCommandSD.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/SelectClientUC.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/clientlocationsUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/equipmentdetailsUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 6 additions & 11 deletions docs/team/rachel.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ In this section, I have put together a summary of my coding, documentation and o
** Highlights: This enhancement was done as I realized the possible lack of flexibility and confusion since user was initially only given the choice to view all the equipment individually under equipment details panel but is interested to know how many clients there are and how many equipment they actually owns.
Under time constraint, I made use of the existing `filter` command and panel labelled under *Equipment details* to incorporate the ability to view all equipment the selected client owns.

** Codes contributed: https://nus-cs2103-ay1819s2.github.io/cs2103-dashboard/#search=E0191632&sort=searchPath&since=2019-02-10&until=2019-04-05&timeframe=day&reverse=false&repoSort=true[Click here] to view my code on the CS2103T Project Code Dashboard.

* *Enhancement 2*: I enhanced the a Person model from initial Address Book 4 application to *Equipment model* in our own *Equipment Manager* application.
** What it does: All the `commands` carried out by user require details of an Equipment and/or Client. Specifically, equipment will now have a serial number and a due date to carry out preventive maintenance. The name, phone, address and where the equipment is located at (address) refer to client's details.
Expand All @@ -56,11 +55,12 @@ Under time constraint, I made use of the existing `filter` command and panel lab
** Highlights: This enhancement provides the ability for my team mates to use the relevant details of equipment and client to build a feature for *Equipment Manager*. An in-depth analysis of design alteratives was necessary to ensure all enhancement of equipment or client details played a part in providing user with details to keep track of the equipment.
The implementation was challenging as this enhancement requires many changes in all logic, ui, storage, model components as well as writing new system testings for it.

** Codes contributed:

[TIP]
`commands`: add-e, edit-e, filter, list-e, delete-e, display, select, put

* Codes contributed: https://nus-cs2103-ay1819s2.github.io/cs2103-dashboard/#search=e0&sort=displayName&since=2019-02-10&until=2019-04-15&timeframe=day&reverse=false&repoSort=true[Collated code]


* *Other contributions*:

** Project management:
Expand Down Expand Up @@ -89,30 +89,25 @@ The implementation was challenging as this enhancement requires many changes in
|_Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users._
|===

include::../UserGuide.adoc[tag=quickstart]

include::../UserGuide.adoc[tag=add-e]

include::../UserGuide.adoc[tag=select-c]

include::../UserGuide.adoc[tag=glossary]

include::../UserGuide.adoc[tag=commandsummary]

== Contributions to the Developer Guide

|===
|_Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project._
|===

include::../DeveloperGuide.adoc[tag=design]

include::../DeveloperGuide.adoc[tag=equipment]

include::../DeveloperGuide.adoc[tag=client]

include::../DeveloperGuide.adoc[tag=uidg]

include::../DeveloperGuide.adoc[tag=selectClientUC]


== PROJECT: PowerPointLabs

---
Binary file not shown.

0 comments on commit 443259c

Please sign in to comment.