Shi Hui Ling's Project Portfolio Page
Project: Baymax
Baymax is a desktop appointment book application that helps small clinics manage patient and appointment information. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 15 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to delete an appointment
- #159
- What it does: allows the user to delete an appointment based on its
Index
in the displayed appointment list, or based on aDateTime
and a patient specified. - Justification: This is a basic feature of a CRUD application such as Baymax. Users should be able to delete appointments for cases where a patient cancels an appointment.
- Highlights: The implementation of this was very challenging as it required first figuring out / setting up the functionalities for finding an appointment by its matching
DateTime
andPatient
, and finding aPatient
by a suppliedName
orNric
(originally – this was reduced to justName
to simplify the command). These required adding newPredicate
classes and new methods inAppointmentManager
andModelManager
, as well as making use of existing methods inUniqueList
(such asgetByPredicate
). These were helpful for commands added in the future.
- New Feature: Added the ability to find appointment(s) by keywords matching their remark or tags
- #175
- What it does: allows the user to enter a search string and obtain a list of appointments that contain the search string in their remark or tag fields
- Justification: This feature allows logical filtering of appointments of a certain “type”, e.g. blood tests, X-rays, even appointments belonging to a certain doctor.
- Highlights: this required understanding and making use of methods in
StringUtil
and streams used inUniqueList
- New Feature: Added the ability to mark appointments as missed and done
- #172 #186
- What it does: allows the user to change the status of an appointment to
MISSED
orDONE
. - Justification: This feature is important as it allows users to keep track of past appointments that were missed (the default is
DONE
), and to correct appointments that were accidentally marked asMISSED
- Enhancement to New Feature: Added functionality to
listapptsof
Command to take inname
andnric
as additional ways to specify the patient- #167
- What it does: allows user to specify the patient whose appointments they want to view by supplying either
name
ornric
in addition toindex
in the displayed patient list - Justification: This is so that users do not have to navigate to a displayed patient list everytime they want to use the
listapptsof
Command, as it is quite likely that they can remember the name of thePatient
they’re looking for
-
Code contributed: RepoSense link
- Bugs fixed:
- Fixed bugs from Practical Exam Dry Run: not deleting appointments of a patient when the patient is deleted, and many bugs pertaining to wrong error s displayed #256
- Fixed UI bugs pertaining to wrong error messages displayed (exceptions not thrown properly) #186 #301
- Performed manual testing to find bugs
- Enhancements to existing features:
- Wrote additional tests for Appointment Command package, and edited a few other tests and testutils as well #283
- Documentation:
- User Guide:
- Added documentation for the GUI terminology, command format and syntax #165
- Added documentation for parameters of commands #165
- Added documentation for command summary section #165
- Did cosmetic tweaks to various headings, numberings etc. #165
- Reviewed and updated UG to correctly reflect commands and features #256
- Developer Guide:
- User Guide:
- Community: