Introduction
Hi, I am Liu Xuan, a year 2 Computer Science student, studying at National University of Singapore.
I am working on a software product with my project teammates, Rachel, Mei Yen and Sun Yiqun. This project portfolio will specify and illustrate which part I was working on.
Overview
Equipment Manager is a Command Line Interface Software Product, which helps engineers to better manage their equipments. This application allows users to arrange and organize their equipments, assign the equipment maintenance work into a person and a specified date, and have a best routing plan.
Summary of contributions
-
Major enhancement: constructed a feature that helps users to have a collection of their equipments, named WorkList.
-
What it does: allows the user to create a work list, and put some equipments into a work list.
-
Justification: This feature improves the product significantly because it can help users to effectively allocate equipment maintenance work to their staff.
-
Highlights: This enhancement affects the whole model and structure. It required an in-depth analysis of the relationships between the WorkList and the Equipment. In addition, it also required more commands to be added into this software. The implementation too was challenging as it required changes to the model and the commands. This feature also helps users to better organize their equipments and assign the maintenance work to some person.
-
DeleteWorkListCommand: [#182]
-
PutCommand: [#109]
-
RemoveCommand: [#181]
-
ListWorkListCommand: [#65]
-
Credits: Code from
AddWorkListCommand
andDeleteWorkListCommand
was referenced in the implementation ofAddCommand
andDeleteCommand
respectively -
Credits: Code from
ListWorkListCommand
was referenced in the implementation ofListEquipmentCommand
-
-
Code contributed:
-
Click here to view my code on the CS2103T Project Code Dashboard.
-
-
Other contributions:
Contributions to the User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Removing an equipment from a work list: remove
Removes an equipment from a working list in the Equipment Manager
Format: remove i/WorkListID s/SERIAL_NUMBER
Please make sure that the respective Equipment and WorkList exist in the equipment manager. |
Example:
-
remove i/1 s/A008866X
Putting an equipment into a work list: put
Adds an equipment into a working list in the Equipment Manager
Format: put i/WorkListID s/SERIAL_NUMBER
Please make sure that the respective Equipment and WorkList exist in the equipment manager. |
Example:
-
put i/1 s/A008866X
Creating a new work list: add-w
Create a worklist in the Equipment Manager by giving the worklist an ID
Format: add-w d/DATE a/ASSIGNEE i/ID
The user can enter multiple assignees, but only one date and id. |
ID number beginning with 0 is not valid, for example, 002 should be 2. |
Example:
-
add-w d/09-05-2019 a/Mary i/13
Deleting a work list: delete-w
Deletes the specified work list from the work list.
Format: delete-w INDEX
Example:
-
list-w
delete-w 12
List all work list: list-w
Shows a list of all work list in the Equipment Manager
Format: list-w
Example:
-
list-w
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. |
WorkList feature
To help users understand how this feature, WorkList, works in Equipment Manager, this section will give an overview on the WorkList details and how users can interact with WorkList based on the commands implemented in the design of Equipment Manager. It also provides some design considerations to give users an insight of how the current solutions are worked out.
Overview on WorkList details
Attributes |
Description |
Things to Note |
Date |
The tentative maintenance date on the equipments in the WorkList. |
|
Assignee |
The name of the person who is assigned to conduct the maintenance work. |
|
WorkListId |
The id of a WorkList |
All WorkLists should have unique id and there should not be duplicated id. |
Current Usage of WorkList Details
In order to allow users to user WorkList to help them organize their equipments and assign their work, we have implemented several commands as follows with the usage of WorkList details and also some Equipment details.
An example of how the attributes of WorkList are used:
-
When user execute the
AddWorkListCommand
orDeleteWorkListCommand
, the added WorkList details stored in Equipment Manager, and the deleted WorkList details will be deleted from Equipment Manager. -
When user uses command like
PutCommand
, Equipment Manager will help users to put the selected Equipment into the specified WorkList, such that they will know those equipment are in the WorkList with one specified assignee and date. -
When user uses command like
RemoveWorkListCommand
, Equipment Manager will remove the selected Equipment from a specified WorkList, it could be the case that users put the equipment into a wrong WorkList, they want to put the equipment into a different WorkList or they just finished maintaining that equipment so they want to remove it from the WorkList.
Current Implementation
Using AddWorkListCommand
mentioned in previous section as an example,
the add WorkList mechanism is facilitated by VersionedEquipmentManager
which extends the Equipment Manager
.
The results of this command will be displayed under WorkList Details panel.
The following sequence diagram shows how the add WorkList operation works:
AddWorkListCommand
Below is an example of the step-by-step mechanism of add-w
command.
Step 1. The user launches the application.
Step 2. The user executes add-w d/09-05-2019 a/Mary i/13
command.
Step 3. After EquipmentManagerParser
detects add-w
as the command word, a AddWorkListCommandParser#parse()
is called.
Step 4. AddWorkListCommand#execute()
is then called.
Step 5. The parser will parse all the attributes and add into WorkList models.
Step 7. The model now contains details of WorkList, and returns to GUI for display on WorkList details panels.
Design Considerations
Aspects: What should be the relationship between the WorkList and Equipments.
-
Alternative 1 (current choice): The WorkList is a independent class and can contains a list of Equipment objects.
-
Pros: This is more organized and it is clear that WorkList contains some Equipments.
-
Cons: Might be confusing the users that why there are so many relationships and these classes are interacting with each other.
-
-
Alternative 2: Equipment is our major work and WorkList is just contains some Serial Numbers just for displaying purposes.
-
Pros: Easy to implement and users are able to know which part they should focusing on more, which is Equipment in this case.
-
Cons: It is hard to do more. If in the future, we intend to do some features like display the equipments in some certain WorkList, then it will be quite hard to implement such a feature.
-