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.

PROJECT: Equipment Manager

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.

    • AddWorkListCommand: [#79] [#97]

    • DeleteWorkListCommand: [#182]

    • PutCommand: [#109]

    • RemoveCommand: [#181]

    • ListWorkListCommand: [#65]

    • Credits: Code from AddWorkListCommand and DeleteWorkListCommand was referenced in the implementation of AddCommand and DeleteCommand respectively

    • Credits: Code from ListWorkListCommand was referenced in the implementation of ListEquipmentCommand

  • Code contributed:

    • Click here to view my code on the CS2103T Project Code Dashboard.

  • Other contributions:

    • Enhancements to existing UI:

      • Adding Labels for both Equipments and WorkLists. (Pull requests [#114], [#193])

    • Refactor ParseEmail to ParseDate

      • Refactor the name ParseEmail to ParseDate to better fit our product. (Pull requests [#84])

    • Community:

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 or DeleteWorkListCommand, 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:

AddWorkListCommandSD
Figure 1. Sequence diagram for 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.