Wu Zihao's Project Portfolio Page
Project: uMessage
uMessage - A desktop app that helps university students manage contacts, academics and CCAs that communicate and hold meetings on various platforms. It is optimized for keyboard users.
Given below are my contributions to the project.
- New Feature: Search optimisation (#107)
- What it does: When searching, the person / meeting that matches the most number of keywords will be placed first. Names / titles are matched first, followed by tags and other fields.
- Justification: This feature improves the product by listing the most relevant information to the user when searching. This is a key feature of the product.
- Highlights: The feature is implemented using a Comparator. This enhancement required an in-depth analysis of design alternatives, as the displayed list needs to be sorted as well. This is achieved by wrapping the filtered list into a sorted list which takes the comparator.
- New Feature: Display contacts in alphabetical order (#120)
- Justification: This feature helps the user locate the index of contacts easily, which makes edition and deletion faster.
- Highlights: The implementation makes use of the sorted list defined in the previous feature. A comparator for alphabetical list is put to the sorted list when executing a
ListCommand
.
- New Feature: Use tabs to replace the menu bar (Multiple commits under #132)
- What it does: Arrange the contents of the app into three windows: Contacts, Meetings, and Help.
- Justification: This feature enables the user to navigate different contents in the app easily (by clicking on the tab).
- Highlights: This enhancement required substantial changes in the GUI. In order for different windows to work independently, they need to be implemented separately, with different sets of commands.
- Enhancements to existing features:
- Improved the display of GUI (PRs #237, #146, #94)
- Wrote tests for
model.meeting
package and search optimisation comparators (PR #222) - Wrote tests for the designed sequences of contact and meeting list (PR #222)
- Wrote tests for meetings’ storage (PR #262)
- Wrote tests for
ListMeetingCommand
andFindMeetingCommand
(PR #262)
-
Code contributed: RepoSense link
- Project management and Team-based tasks:
- Proposed how to evolve AB3 and came up with a work division for the team
- Created group PR to the upstream repo
- Handled communication with the tutor / grader about project deliverables
- Documentation:
- User Guide:
- Developer Guide:
- Community: