Introduction

Hello! I am Rachel Tan!

I am a Year 2 Computer Science student in National University of Singapore. In this Project Portfolio, I will be sharing with you one of the projects I have embarked on for CS2103T Software Engineering module. I will showcase my main contributions to the team in making Equipment manager a successful application.

PROJECT: Equipment Manager

Overview

Equipment Manager is a Preventive Maintenance (PM) planner application that allows users, specifically the engineers, to keep track of the PM schedule of all resuscitation equipment in Singapore. Equipment Manager is designed to allow engineers assign the equipment which they are going to carry out maintenance work on, to their own work schedule.

When they are carrying out maintenance work on multiple equipments based on their work schedule, they are able to have a visual representation on the locations of all equipment. In order to carry out maintenance work efficiently, Equipment Manager provides engineers with an efficient route to take for visiting multiple locations, minimizing the chance that the resuscitation equipment will fail and cause costly unscheduled downtime.

Terminology

Some technical terms have been used as it will better deliver the idea of Equipment Manager features. To aid you in reading this portfolio without any confusion, this section provides you with a quick summary of the technical terms being used in this portfolio.

Technical Terms

Meaning

Preventive Maintenance

A maintenance work that is regularly performed on a piece of equipment to lessen the likelihood of it failing. It is performed while the equipment is still working so that it does not break down unexpectedly.

UI

User Interface (UI) allows the user to interact with the application through inputs and outputs of data.

basic function

It is the basic features in Equipment Manager: add, edit, delete and list equipments.

Summary of Contributions

In this section, I have put together a summary of my coding, documentation and other helpful contributions to the team project.

  • Enhancement 1: I create a UI specifically for displaying Client details and added a select-c command.

    • What it does: This enhancement allows user to have a quick look on the distinct number of client Equiment Manager has, under Client details panel. With a selection on the desired client, users can get a view on all the equipment and its details the client owns.

    • Justification: Having a list of distinct client displayed provides option and improve overall planning process as explained below:

      • As a client can own zero to infinite equipment, knowing how many equipment a client owns, allows user to be aware that there are equivalent number of equipment to carry out maintenance work at the client’s address.

      • In addition to the ability to track each equipment individually, by displaying a list of distinct client, it gives user the options to track down several equipment in a group based on how many equipment the client owns.

      • Planning process would be greatly reduced as user can now target the equipment in groups based on a client location instead of having to sieve out individual equipment details that may not be sorted together.

    • 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.

  • 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.

    • Justification: With all the equipment and client details, this enhancement allows users to carry out features of Equipment Manager. For example:

      • In the event, user wants to have a visual respresentation of an equipment, the address where the equipment is located at is retrieved and displayed on google map.

      • It helps users to be more organized with their work plan because the application allows assignation of each selected equipment with its details into their work agenda under My Work List panel.

      • Overall, it allows users to keep track of equipment details and provide visual representation of the equipment locations

    • 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.

commands: add-e, edit-e, filter, list-e, delete-e, display, select, put
  • Codes contributed: Collated code

  • Other contributions:

    • Project management:

      • Morphed the code from address book to equipment manager. #16, #19

      • Morphed the test cases from address book to equipment manager. #72, #63

    • Enhancements to existing features:

      • Changed the condition to check for duplicate equipments #59

      • Updated command word and prefixes #58

      • Updated the GUI color scheme #33, #34

    • Documentation:

      • Did cosmetic tweaks to existing contents of the User Guide and Developer Guide: #90, #88

      • Updated images, diagrams and contents of User Guide and Developer Guide: #90, #73, #37, #36

    • Community:

    • Tools:

      • Set up coverall badges, appveyors and travis bot for the team.

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.

Adding an equipment: add-e

Adds an equipment to the Equipment Manager. The result of adding an equipment will be reflected on the panel labelled under Equipment details and Client details.
Format: add-e n/NAME p/PHONE pm/DATE a/ADDRESS s/SERIAL_NUMBER t/TAG

Refer to [EquipmentPara] to understand each equipment’s parameter when adding an equipment detail.
Equipment that has overdue preventative maintenance dates are allowed to be added for tracking purposes.
As seen in UI Result after adding 2 equipment owned by the same client below, under Equipment details panel, duplicated client details such as name, phone, address could be added and displayed because the details refer to a client’s details who owns multiple equipment as long as the serial numbers of equipment are different.
Under Client details panel, duplicated client names will not appear in the panel because the Client details panel will only show distinct number of clients in the Equipment Manager.

Example:

The following shows user adding 1 equipment that is owned by the client called Serangoon CC.

  • add-e n/Serangoon CC p/64738499 pm/11-06-2019 a/10 Serangoon North Ave 2, Singapore 555877 s/A0293838X t/northeast

SerangoonCC
Figure 1. UI Result after adding an equipment own by Serangoon CC

The following shows user adding 2 equipment that are owned by the same client called Pending CC. Under Equipment details panel, 2 equipment of the same name Pending CC are displayed. Only the serial number is different which indicates 2 different equipment owned by Pending CC. Under Client details panel, Pending CC is added to the panel after entering the add-e command.

  • add-e n/Pending CC p/65060900 pm/22-04-2019 a/8 Pending Rd, Singapore 678295 s/A23234567X t/northwest
    add-e n/Pending CC p/65060900 pm/22-04-2019 a/8 Pending Rd, Singapore 678295 s/61672453X t/northwest

PendingCC
Figure 2. UI Result after adding 2 equipment owned by the same client

Selecting a client: select-c

Selects the client identified by the index number used in the displayed client list panel. All the equipment owned by the client will be displayed under Equipment details panel.
Format: select-c INDEX

  • Selects the client at the specified INDEX and loads the client’s equipment in the Equipment details panel.

  • The index refers to the index number shown in the Client details panel.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • select 2
    Selects the 2nd client in the equipment manager.

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.

Equipment feature

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

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.

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 equipment parameters as mentioned in the previous section.

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.

  • When user uses command like SelectCommand, Equipment Manager will need to use all the equipment details in order to reflect more detailed information on equipment in the Equipment Details Page.

Current Implementation

Using AddCommand mentioned in previous section as an example, the add equipment mechanism is facilitated by VersionedEquipmentManager which extends the Equipment Manager. The results of this command will be displayed under Equipment Details panel.

The following sequence diagram shows how the add equipment operation works:

AddCommandSD
Figure 3. Sequence diagram for AddCommand

Given below is an example usage scenario of how the adding of equipment details mechanism behaves at each step after carrying out add-e.

Step 1. The user launches the application.

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.

Step 4. AddCommand#execute() is then called.

Step 5. The parser will parse all the attributes and add into equipment and client models respectively.

Step 7. The model now contains details of equipment and client, and returns to GUI for display on Equipment details and Client details panels respectively.

With that, you may refer to [Display feature] to see how Equipment Manager will then use the address details to provide visual representation of the location of client that owns the equipment.

Design Considerations

Aspects: What attributes are important for equipment details to serve the purpose of Equipment Manager.
  • Alternative 1 (current choice): Equipment details contain client details whom own the equipment and equipment unique serial number.

    • Pros: This allows users to know that each equipment has unique serial number and each client can own multiple equipment. Do not have to make major enhancement, save time on backend work.

    • Cons: Might be confusing to user if user is not clear how Equipment Manager works as it may seem like there is duplicated equipment.

  • Alternative 2: Equipment details only has serial number and create a seperate class to store store name, phone, address, as client details.

    • Pros: By reading the structure, it is clearer to user that the attributes describe equipment or client.

    • Cons: More backend work needs to be change, takes up a lot of time.

Use Case: Select Client

MSS

SelectClientUC
Figure 4. Use case diagram for Select Client
  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

  • 2a. The client name is listed in CLient details panel

    Use case ends.

  • 2b. The given index is empty.

    Use case ends.

  • 3a. The client does not own any equipment (as of now). Zero equipment listed.

    Use case ends.

PROJECT: PowerPointLabs