Yap Yuhang's Project Portfolio Page
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
Doctormodel- 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
Referralcommand (which is done by my teammate, Simon) - Highlights: Along with the
Doctormodel, commands that support the usualCRUDmethods for doctors are created, such as theadd,edit,deleteandlistcommand - 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
CRUDcommands forPersonin SE-EDU AB3.
- SE-EDU AB3 for creating the project template, the architecture used for adding these new commands are very similar to
- New Feature: Implement the
UserProfilemodel andprofilecommand to updateUserProfile- 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
Doctorclosely follows the format and implementation done by my teammate, Simon, who referenced this blog when creating hisTableViewforActivity.
- What it does: Creates a tabular view of the
- Enhancements to existing features:
- Refactored AB3’s
PersonandUniquePersonListclasses
(Notably in PR #82, PR #140). Some notable points include:- Updating
Personimplementation so that it can be extended by GoMedic’sDoctorandPatientclasses. - Refactoring
UniquePersonListto make use of Java generics to increase versatility and reusability of the class. - Increasing test coverage for these classes.
- Updating
- Refactored AB3’s
-
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:
- User Guide:
- Wrote the doctor related features section.
- Wrote the profile command instructions section. (The summary of the parameter constraints in this section was done by my teammate, Seng Leng)
- Reviewed and corrected grammar and formatting issues of team members’ sections of the UG (E.g. Corrected teammate’s formatting error in PR #307, Gave suggestion on UG formatting issue in PR #36)
- Developer Guide:
- Revamped the Storage Component
segment of the original AB3 DG. This included updating the Class Diagram, as well as adding more details about the implementation of the
Storageclass in general. - Wrote the section about the implementation of the profile command execution.
- Wrote Use Case 9.
- Wrote the manual testing instructions for listing records, changing user profile, editing a doctor’s record
- Revamped the Storage Component
segment of the original AB3 DG. This included updating the Class Diagram, as well as adding more details about the implementation of the
- User Guide:
- Community: