Project: HealthContact

Overview:
HealthContact is a desktop application built for the receptionist of a family clinic who arranges telemedicine services for patients. It helps to manage and keep track of patient data, appointments and bills, especially for clinics who do not have apps to expedite the process.

Given below are my contributions to the project.

  • Code contributed: Link to tP Code Dashboard

  • Enhancements implemented:
    • Implemented FindPatientCommand, FindAppointmentCommand, FindPatientCommandParser and FindAppointmentCommandParser
      • FindPatientCommand filters patients by name, address, email, phone, remarks and tags
      • FindAppointmentCommand filters appointments by name, medical test, slot and doctor
      • Both commands are case-insensitive and allow the user to filter by one or multiple fields in a single command
      • Both commands are implemented using many Optional predicates and lambda functions
      • Filter input is much more flexible than AB3, allowing the user to input partial words, numbers and special characters
      • Learnt to use regular expressions to restrict the user input to only the appropriate characters for each field
      • Came up with methods to handle edge cases like checking for multiple occurrences of the same prefix in one command
    • Implemented SetPaidCommand and SetUnpaidCommand to set bills’ payment statuses
      • User enters index of bill to set the payment status to paid or unpaid respectively
    • Added tests to check how the commands handle normal and edge cases:
      • FindPatientCommandTest, FindPatientCommandParserTest, FindAppointmentCommandTest and FindAppointmentCommandParserTest
      • SetPaidCommandTest, SetPaidCommandParserTest, SetUnpaidCommandTest and SetUnpaidCommandParserTest
    • Modified AB3’s CommandTestUtil and ModelManagerTest due to usage of Optional predicates for the Find commands
    • Fixed AB3’s bug in Email class by modifying the regex for the constraints of the email field
  • Contributions to the User Guide:
    • Added documentation and screenshots for FindPatientCommand, FindAppointmentCommand, SetPaidCommand, SetUnPaidCommand, Save the data and Edit the data file
    • Added the Quick Start guide and FAQ section
    • Added the Target User Group and Value Proposition descriptions
    • Added navigation for all features in the Features list
    • Modified and standardised headings, command word section, format section and screenshot descriptions for consistency
  • Contributions to the Developer Guide:
    • Added the Find Feature section and Set Payment Status Feature section
    • Added the Find feature section in the Appendix: Effort section
    • Added the Non-Functional Requirements section and the Glossary section
    • Added the Target User, Target User Profile, Product Scope and Value Proposition sections
    • Edited all user stories and added use cases UC-01 to UC-09
  • Contributions to the team-based tasks:
    • Milestone and Release management
    • Maintained the issue tracker and helped teammates to link some PRs to issues
    • Triaged and managed all 58 issues from PE Dry Run
    • Debugged and fixed more than half of the bugs from PE Dry Run
    • Organised team meetings and led discussions on the project
    • Led the team by assigning tasks, reminding teammates to complete them and checking through their work
    • Managed and scribed the project Google document and made team submissions like demo screenshots and PE Dry Run bug report
  • Review/mentoring contributions: