Kenneth Chow's Project Portfolio Page
Project: uMessage
Overview
uMessage - Level 3 is a desktop address book application. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Summary of Contributions
Given below are my contributions to the project.
Code Contributed: RepoSense link
Features implemented:
- Implemented framework for Meetings
-
Overview: Added the
Meeting
class which contains a Meeting Name, Link, StartTime and Duration. The above properties are encapsulated by theTitle
,Link
,StartTime
andDuration
classes respectively. Updated Storage to include Meetings by adding:JsonAdaptedMeeting
,JsonMeetingsBookStorage
andJsonSerializableMeetingsBook
- What it does: Builds the foundation for the meetings tab. To subsequently support features 2-5 below.
- Justification: Necessary so that when a user adds a meeting, the relevant information will be parsed and stored correctly
- Highlights: This feature requires understanding of the flow of logic, starting from when the user inputs the command to the creation and storage of meetings.
-
- Implemented adding of meetings
- Overview: Added
AddMeetingCommand
andAddMeetingCommandParser
- What it does: Allow the user to add meeting into the MeetingsTab
- Justification: Necessary feature for MeetingsTab
- Highlights: This feature requires understanding of the ArgumentTokenizer and the flow of logic between the execution of the parser and command.
- Overview: Added
- Implemented deleting of meetings
- Overview: Added
DeleteMeetingCommand
andDeleteMeetingCommandParser
- What it does: Allow the user to delete meeting into the MeetingsTab
- Justification: Necessary feature for MeetingsTab
- Highlights: Same as feature 2
- Overview: Added
- Implemented editing of meetings
- Overview: Added
EditMeetingCommand
andEditMeetingCommandParser
- What it does: Allows the user to edit meetings in the MeetingsTab
- Justification: User can change the details of a meeting in the MeetingsTab without the trouble of needing to delete that meeting and adding it again.
- Highlights: Same as feature 2
- Overview: Added
- Implemented finding of meetings
- Overview: Added
FindMeetingCommand
andFindMeetingCommandParser
- What it does: Allow the user to find meetings in the Meetings Tab
- Justification: Users can efficiently locate the desired meeting
- Highlights: Same as feature 2
- Overview: Added
Enhancements implemented:
- Implemented functionality for Dynamic User Input
- Overview: Added a listener into the
CommandBox
class. RefactoredAddressBookParser
to detect dynamically inputted commands vs user entered commands - What it does: Allow users to search for contacts/meetings as they input a character into the command line
- Justification: Improves the efficiency of searching for a contact/meeting without the need of typing and entering
the command
find PERSON/MEETING
- Highlights: This enhancement requires the understanding of JavaFx elements and how to add different listeners to the TextField
- Overview: Added a listener into the
- Implemented default Emergency Contacts in Address Book
- Overview: Added the
EmergencyContact
class. RefactoredAddressBook
to load emergency contacts upon creation. - What it does: Ensures that the address book contains emergency contacts that is immutable. This means that
commands such as
edit
,delete
,add
andclear
should not affect the emergency contacts. - Justification: Users will not be able to change the authenticity of a pre-installed Emergency Contact.
- Highlights: This enhancement requires the understanding of how the person contacts are loaded into the AddressBook and the flow of address book commands
- Overview: Added the
Contributions to the UG:
- Fixed errors related to the user guide found after PE-D #209
- Added explanation about Global Tags #228
- Created a table containing the summary of commands #209
Contributions to the DG:
- Added Implementation for Dynamic User Input #125
- Created the DynamicInputFind PUML Diagram
- Added Implementation for Meeting #253
- Created the StartTime PUML Diagram
- Added use cases for Meeting #253
Community
*PRs reviewed (with non-trivial review comments):
#76,
#87