tp

View project on GitHub

Yap Kesin - Project Portfolio Page

PROJECT: HappyPills

About the project

Our team consists of 4 software engineering students were tasked to build a basic command line interface desktop application for our Software Engineering project.

Our team chose to develop a note management application called HappyPills. HappyPills is specially designed for Doctors to record patient’s details, past medical records and future appointments. HappyPills allows users to store all information in a single place and users can always have quick access to the saved information.

Summary of Contributions

This section shows a summary of my coding, documentation, and other helpful contributions to the team project.

Major enhancement: I implemented PatientMap to store all patients’ details.

  • What it does:
    • The PatientMap uses HashMap from Java Collection framework to store the patient objects.
    • The PatientMap maps the Patient object to the Patient’s NRIC. Each Patient’s NRIC (key) is associated with a patient object(value) which consists of the patient’s details.
  • Justification:
    • The data structure (HashMap) was used to look up an NRIC quickly, the HashMap has O(1) performance for every NRIC search, it will be faster when there are large number of patients’ information.
    • HashMap will also helps to ensure that there will be no duplicated NRICs.
  • Highlights:
    • There were challenging design decisions involved in the selection of the underlying data structure because the enhancement affects all the patients commands. The implementation was also challenging as required changes to the existing patient commands.
    • To ensure our application maintains its robustness under extremely heavy load conditions, I did in-depth analysis of different design alternatives.

Major enhancement: I implemented the ability for user to filter patient records.

  • What it does:
    • The list pr NRIC command will display a list of past patient records with index for the searched patient.
    • The find pr NRIC INDEX command find a particular patient record with given index.
    • The edit pr NRIC INDEX [/sym or /diag or /date or /time] command edit a particular patient record with given index and tag.
    • The delete pr NRIC INDEX command delete a particular patient record with given index.
  • Justification:
    • In the case that the Patient Record grows, it will be difficult to find records. The find pr NRIC INDEX command allows users to easily find and filter the notes that they require. It also allows users to edit wrongly added detail or update the existing records.
  • Highlights:
    • The list pr NRIC will provide all the index of the past records. User can always view the date/time of the patient record with the corresponding index.
    • Array indexing was used to store the list of patient record for the particular patient instead of HashMap and Keyword is because patients do not usually visit the doctor unless they are sick.
    • Arraylist have advantage such as auto indexing and resizing of the array making the space of the app low and manageable.

Code contributed: Reposense Report

Other contributions:

  • Project management:
    • Handled v1.0 and v2.1 release on GitHub
    • Handled the creation of JAR file
    • Created tags on GitHub Issues
    • Maintaining the issue tracker on GitHub
  • Enhancements to existing features:
    • Refactor messages used to a common Messages class in Ui
    • Wrote more JUnit tests to test the parser
  • 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.

Main
Patient Commands

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.

Architecture
Section 1
Section 2
Section 4.1
Section 4.4
Section 4.5
Appendices