Gabriel's Project Portfolio Page
Project: Doc’IT
Doc’it provides a centralised platform for authorised staff from small family clinics to view, update, and onboard patient records, solving the inefficient paper records and files used today. With Doc’it, small family clinics can reduce man-hours in managing paper files, translating this ‘saved’ time into better frontline care services Doc’IT is a desktop address book application. Users key in CLI-themed commands in the command box, and the results of the commands are dislayed in the GUI created with JavaFX. It is written in Java, and has about 10 kLOC.
Given below are my contributions to the project.
- New Feature: Create Appointmentclass to represent a patient’s appointment.- What it does: Allows users to record a patient’s appointment after a patient is created.
- Justification: This feature allows users to represent multiple appointments of patients with each having their own date and time.
- Highlights: The implementation of Appointmentclass required creation ofAppointmentBook,ReadOnlyAppointmentBookandUniqueAppointmentListinStorageto support saving and loading ofAppointment. Changes required inModelManagerto instantiateAppointmentBookwithAddressBook, i.e. to instantiate list of appointments with list of patient. Appointments had to be listed in a separate list fromPatientclass, yet have a link to the patient that has the appointment. This feature required an in-depth analysis of design alternatives. The design choice was to buildAppointmentclass to composePatientand aLocalDateTimeto represent the date and time of the appointment. This design required the use of OOP composition and polymorphism principles. The implementation required careful thought in how theAppointmentclass will be loaded and stored to memory as a list of appointments, while referencing a patient object. The design choice was to useIndexof aPatientto store the appointment instead of aPatientobject for easier loading from and storing to JSON. (#58, #85, #87)
 
- New Feature: Implement Add, Edit, Delete operations for Appointmentclass.- What it does: Allows users to add, edit and delete a patient’s appointment after the appointment is created.
- Justification: Allows users to create, modify and delete appointments. Users can modify appointments to reflect changes in appointment details.
- Highlights: This implementation required the creation of ParserandCommandclasses to supportAppointment-related commands and addition of methods inAppointmentBookclass. ModifiedAddressBookParserclass to acceptAppointmentcommands. CreatedXYZCommandParserclasses (e.g.AddAppointmentCommandParser). CreatedXYZCommandclasses to create, modify or delete theAppointmentas commanded (e.g.AddAppointmentCommand). Added methods inAppointmentBookto update the list of appointments. (#135, #85)
 
- New Feature: Implement date-time parsing for Appointmentclass.- Justification: Allows date and time that to be reformatted in the UI, and be used to implement sort and archive features.
- Highlights: Required to implement ParserUtil#parseDateTimefor adding, editing appointments, and loading appointments from JSON. (#132)
 
- New Feature: Implement stricter parsers for Datetime,Name,Address,MedicalHistory
- New Feature: Change command result box to wrap text
    - Highlights: The implementation in UI property removes the need to include a newline in command results in multiple places. #236
 
- 
    New Feature: Wrote tests for Appointment-related classes to increase coverage by 4% in total (#265, #286)
- 
    Code contributed: RepoSense link 
- Project management:
    - Ensured scheduling and tracking, including setting up labels for issues for the team’s use, and beginning milestones
- Managed Appointmentcomponent and gave technical advice regardingAppointment-related classes and tests
- Kept track of deadlines, updating team member’s of current progress and reminding the team of upcoming deadlines
 
- Documentation:
    - User Guide:
- Developer Guide:
        - Added implementation details of the Appointments with valid Patientfeature.
- Added Adding an Appointment and ‘Deleting a patient that has an appointment’ test cases under Instructions for Manual Testing and made note of the similar test case for Edit Appointments.
- Added ‘Deleting an Appointment’ test cases
- Updated Appointment Use Cases to v1.4
            - Remove User lists commandsbecause Doc’it displays full list by default
- Added Use case: UC06 - Edit an appointment
 
- Remove 
- Added Glossary, Glossary credits to User Guide.
- Relevant PRs: #322, #319
 
- Added implementation details of the 
 
- Community: