Skip to content

Latest commit

 

History

History
79 lines (55 loc) · 4.28 KB

ongjiajian.adoc

File metadata and controls

79 lines (55 loc) · 4.28 KB

Ong Jia Jian - Project Portfolio

About Me

I am currently an undergraduate of National University of Singapore. I am in year 2 of the Computer Engineering course and am expecting to graduate in mid-2021.

PROJECT: AddressBook - Level 4

Why?

AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles in NUS under the module CS2113/T. Students are expected to work with the application to create a solution to a current real-world problem. After countless hours spent on ideation, my team and I singled out healthcare as a prominent issue that needs to be addressed.

MediBook is the result of me and my team’s efforts on AddressBook.

Overview

MediBook is a form of a centralised database to store all patient and staff information within a hospital. MediBook reduces inefficientices in the current healthcare system and can work as a desktop and mobile application. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 5 kLoC.

Summary of contributions

  • Major enhancement 1: added the login feature for access to MediBook by individual account

    • What it does: allows the user to log in to his own account on MediBook.

    • Justification: As the medical information of patients are highly sensitive and private, only staff members should have access. This personalised individual access is enabled with logins and accounts.

    • Highlights:

      • After careful consideration, this enhancement is implemented as a standalone plugin; it does not affect the code of MediBook thus allowing for changes to the login system to be made with ease.

      • The security features behind the login system is in line with industry standards and took a huge effort to implement.

      • JavaFX was specially used to implement the login User Interface (UI). This includes the .fxml file and corresponding controller.

  • Major enhancement 2: added authorisation and access levels

    • What it does: allows for hiding of sensitive and irrelevant information and data.

    • Justification: Even amongst doctors in the same institution, patient data should not be shared so loosely. Authorisation and access levels enables only the patient’s direct doctor to be privy to his information, maintaining confidentiality of a patients data.

    • Highlights:

      • With access levels, the system administrator can restrict access to information that is not required by the doctor in his duties. E.g. Patient’s address should be hidden

      • Access levels prevents unauthorised users from making changes to the data

  • Minor enhancement: worked with editing text files and hashing passwords to store the login credentials of every account secure

  • Code contributed: [Code]

  • Other contributions:

    • Project management:

      • Managed releases v1.1 - v1.4 (4 releases) on GitHub

    • Enhancements to existing features:

      • added NRIC field to Person class to be used as Username for Login feature and to maintain uniqueness of users

      • edited unique Persons to be found by NRIC instead of name for increased accuracy in identifying duplicated Person as all NRIC numbers are unique

      • Wrote additional tests for existing features to increase coverage of Login component from 0% to 100%

    • Documentation:

      • Did cosmetic tweaks to existing contents of the User Guide

    • Community:

      • PRs reviewed (with non-trivial review comments):

      • Tested and reported bugs and suggestions for other teams in the class with a special commendation from the other team: #77

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.