Project: GoMedic

GoMedic is a cross-platform desktop application written in Java and designed for doctors and medical residents to manage contacts and patient details. We aim for GoMedic to be used by someone who can type fast and take advantage of the optimized features for Command Line Interface.

GoMedic is bootstrapped using SE-EDU Address Book 3 and inherits some of its features such as clear, parameter formatting, etc.

Given below are some of my notable contributions to the project.

  • New Feature: Implement the Doctor model
    • What it does: Allows the user to save the details of other doctors (for use cases such as saving the contact details of the user’s colleagues)
    • Justification: This feature is one of the core features of GoMedic, allowing the user to store important details of doctors within GoMedic. These include the name, contact number, and department of the doctor. With this information, the user is also able to make use of the doctor’s detail in GoMedic to quickly generate a referral letter to him or her, through the Referral command (which is done by my teammate, Simon)
    • Highlights: Along with the Doctor model, commands that support the usual CRUD methods for doctors are created, such as the add, edit, delete and list command
    • Notable PRs: PR #82, PR #122, PR #127, PR #134
    • Credits:
      • SE-EDU AB3 for creating the project template, the architecture used for adding these new commands are very similar to CRUD commands for Person in SE-EDU AB3.
  • New Feature: Implement the UserProfile model and profile command to update UserProfile
    • What it does: Allows the user to customize his or her own profile on GoMedic. This includes allowing the user to define his or her name, position, department and organization that they work for.
    • Justification: This feature introduces a form of customization in GoMedic, which was previously not available in AB3. This can allow the app to feel more personalized for the user.
    • Highlights: This user profile is displayed on the side window in GoMedic. The UI for the side window is implemented by my teammate, Simon.
    • Notable PRs: PR #167
  • Ui Enhancement: Implement UI component that displays the details of Doctors stored in GoMedic in a tabular form.
    • What it does: Creates a tabular view of the Doctors that users add into GoMedic.
    • Credits: This command heavily uses JavaFX. The format for this tabular view of Doctor closely follows the format and implementation done by my teammate, Simon, who referenced this blog when creating his TableView for Activity .
  • Enhancements to existing features:
    • Refactored AB3’s Person and UniquePersonList classes
      (Notably in PR #82, PR #140). Some notable points include:
      • Updating Person implementation so that it can be extended by GoMedic’s Doctor and Patient classes.
      • Refactoring UniquePersonList to make use of Java generics to increase versatility and reusability of the class.
      • Increasing test coverage for these classes.
  • Overall Code Contribution: RepoSense link

  • Project management:
    • Opened issues that sought to improve to code quality (E.g. Issue #116, Issue #157)
    • Reviewed and approved team members’ PRs for merging (more details in the Community section)
  • Documentation:
  • Community:
    • Reviewed PRs of fellow teammates (Some with non-trivial review comments, E.g. PR #83, PR #112)
    • Improved code quality and reusability of some classes that are shared and jointly used by several team members. (E.g. PR #140, PR #141)
    • Reported bugs and suggestions for other teams during PE-D.