PROJECT: DocX

This portfolio serves to document my contribution in a Software Engineering team project for CS2103. The team comprises of 5 members and we were tasked to develop a working application within 6 weeks.

To comply with the module requirements, the project builds on from an existing code base - AddressBook Level 4, and the user must be able interact with the application via Command Line Interface (CLI). The final product that my team has developed is DocX, which will be detailed below.

Overview

DocX is a desktop application designed for receptionists in clinics. The app provides features for patient management, doctor management, medical history management, appointment management and prescription management. It is targeted at clinic receptionists who are comfortable with using Command Line Interface (CLI).

Summary of contributions

  • Major enhancement: added patient management feature

    • What it does: allows the user to record and manage patients visiting the clinic. It also provides both simple and advanced features that can cater to both new and experienced users.

    • Justification: In a busy clinic with many patients, the user must be able to manage patients efficiently. The app provides an easy way to record a patient’s personal details, and various search methods to quickly retrieve a patient’s file. The patient’s info, along with his upcoming appointment status, are then displayed in a concise, yet neat way for the user to efficiently manage patients and their upcoming appointments.

    • Highlights: The challenges and the highlights for this enhancement comes from mainly 2 areas: Firstly, the patient management system aims to be user-friendly enough for new users to be able to learn and use basic commands easily. At the same time, the app wants to provide certain advanced features to cater to more experienced users. Hence, careful consideration was required for the basic features while intensive testing was required for the more advanced features. Secondly, the patient class serves as the main entity in the project. As such, additional features implemented by other group members would require frequent code and design tweaks of the patient class to adhere to their new features.

  • Minor enhancement: enhanced the user display of both patient and doctor.

    • What it does: allows unrestricted view of pid and did, and viewing of patient’s appointment status

    • Justification: This enables other components, such as appointment and medical history, to view and use the info for their commands accordingly.

  • Code contributed: https://nus-cs2103-ay1819s2.github.io/cs2103-dashboard/#=undefined&search=wayneswq

  • Other contributions:

    • Project management:

      • Set up project repository and labels for Issue Tracker.

      • Integrated AppVeyor, TavisCI, Netlify, Reposense, Codacy and Coveralls to the team repository.

      • Managed release v1.1 on GitHub and issue tasks to the team.

    • Significant modification of Address Book’s code base for use in Deadline Manager:

      • Rename Address Book 4 application to DocX and all major refactoring #130

    • Community:

      • Reviewed Pull Requests (with non-trivial review comments): #117, #178

      • Reported major bug that can crash the app: #223

      • Fixed reposense for the team #98

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.

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#adding-a-patient-add-p[tag=add-p]

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#listing-all-patients-list-p[tag=list-p]

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#editing-a-patient-edit-p[tag=edit-p]

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#deleting-a-patient-delete-p[tag=delete-p]

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#search-patient-by-name-search-p-name[tag=search-p-name]

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#search-patient-by-pid-search-pid[tag=search-pid]

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#search-patient-by-appointment-status-search-p-status[tag=search-p-status]

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#advanced-search-patient-by-all-info-search-p-advanced[tag=search-p-advanced]

Unresolved directive in wayneswq.adoc - include::../UserGuide.adoc#selecting-a-patient-select-p[tag=select-p]

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.

Unresolved directive in wayneswq.adoc - include::../DeveloperGuide.adoc#Design-Model[tag=Model Component]

Unresolved directive in wayneswq.adoc - include::../DeveloperGuide.adoc#patient-management-features[tag=Patient Features]