Skip to content

Latest commit

 

History

History
137 lines (113 loc) · 8.91 KB

iamrence.adoc

File metadata and controls

137 lines (113 loc) · 8.91 KB

Terence Goh - Project Portfolio

PROJECT: SSENISUB

Ui

Overview

This project portfolio serves to document my contributions to SSENISUB, a CS2103 (Software Engineering) project, as part of my Computer Science curriculum in National University of Singapore (NUS).

SSENISUB is a business management application which is used for managing employees' information within an organisation. Its name is inspired from the word "business", and is simply a palindrome of it. It is morphed from the given addressbook-level4 application as its base. The user interacts with it mainly using a Command Line Interface (CLI). In conjunction with the CLI, a Graphical User Interface (GUI) is used to make it more user-friendly, supported by coloured text and symbols. This application is written in Java with about 15 kLoC, and its GUI is created with JavaFX, CSS and HTML.

My main responsibility in SSENISUB is to implement commands (feedback and rate) that a manager would want to have to support a continuous review and tracking of his/her employees' performance throughout their time in the organisation. This is used to support making informed management decisions.

I also played a key role in creating an identity for SSENISUB by designing an icon and making it the face of the application.

Summary of contributions

  • Code contributed: [RepoSense for IamRENCE]

  • Major enhancement 1: added the ability to give ratings to staff stored inside the application

    • What it does: Allows the user to update a rating of a staff to keep track of his/her performance in the organisation.

    • Justification: This feature improves the product significantly because a user is provided with a way to keep track of his/her employees' performance, which is especially important during the year-end performance review. It potentially affects how much bonus or credit is given to the staff in the organisation.

    • Highlights: This enhancement looks similar to the add and edit command, but has to be made to execute asynchronous to these commands. In future releases, where users of different levels of authorisation are allowed to use different commands, this command would only be accessible to managers (or direct superiors). The reason is that they have the right to and are in the best position to give any rating to their staff.

  • Major enhancement 2: added the ability to give feedback to staff stored inside the application

    • What it does: Allows the user to give professional feedback to staff in the organisation, so that the staff knows what he/she is doing well in and to find out what areas of improvement he/she can engage in.

    • Justification: This feature, like the rate command, improves the product to a large extent because a user is provided with a way to inform his/her employees what to look out for in their performance so that they can improve themselves. Coupled with the rate command, a manager can make more informed reviews of his/her employees' performance. At the same time, employees can use the feedback assigned to them as motivation for continuous improvement, or as a wake up call for any bad performance. This can boost the organisation’s productivity as a whole.

    • Highlights: Just like the rate command, the feedback command is run non-parallel to the add and edit command due to future user authorisation implementations. Another highlight of this command is that users cannot enter profanities (even if it is entered in leetspeak). Designing an efficient way to check for profanities proved to be a very tough task: Whether to base the runtime on input length or the number of profanities to be rejected. A detailed analysis had to be done to make a choice.

    • Credits: [Simple Profanity Filter by PimDeWitte]

  • Other contributions:

    • Project management:

      • Checked v1.1 - v1.4 (4 releases) before they got released them on GitHub.

    • Enhancements to existing features:

      • Updated the application icon (Pull request #42).

      • Wrote additional tests for existing features to increase coverage from 93.4% to 93.6% (Pull request #58).

    • Bug fixes:

      • Fixed bugs commands that allowed for inputs that otherwise should have been rejected (Pull request #58).

      • Fixed overall UI/code bug where "Address Book"/"AddresBook" is displayed or used instead of our application "SSENISUB" (Pull request #107).

    • Documentation:

      • Updated existing contents of the User Guide: #101, #102, #109.

      • Updated existing contents of the Developer Guide: #29, #109.

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

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.