Marcus Chua's Project Portfolio Page
Project: WhereTourGo
WhereTourGo (WTG) is a desktop app for managing your tour contacts, optimized for use via a Command-Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Given below are my contributions to the project.
- New Feature: Added
Rating
field for to tier contacts.- What it does: Allows users to assign between 1 and 5 ‘stars’ to each contact. They can also filter for contacts using ratings. Ratings are implemented as an optional field for contacts which would otherwise be labeled as unrated.
- Justification: This feature allows the users to further customise their experience and have a quick reference point of their previous experiences with a contact.
- Highlights: This feature required changing other features to support it, such as
edit
,add
andfilter
. The GUI design also had to be tweaked to accommodate the ratings field for each Contact card. Furthermore, the implementation underwent numerous iterations to accurately handle the optionality of this field.
- New Feature: Added
export
command to quickly share contact details.- What it does: Allows users to select individual contacts, or the entire contact list to be exported into a text file. The exported file will be available to users in the data directory.
- Justification: This feature allows users to quickly retrieve the information which they may require on-the-go during a tour.
- Highlights: This feature required changes to many components in the
Storage
class and intricate changes to the initialisation process for the application.
- New Feature: Reimplemented
filter
command to filter by multiple fields.- What it does: Filtering can be done by
rating
instead of previously where it was solely for categories. - Justification: This feature allows users to achieve more flexibility with the
filter
command. - Highlights: This feature required major changes to the filtering predicate and extensive testing to cover all possible edge cases.
- What it does: Filtering can be done by
-
Code contributed: RepoSense link
- Project management:
- Tracked team progress to meet deadlines
- Reviewed and merged Pull Requests of other teammates
- Organised issues on GitHub, managing issue tracker
- Managed quality and progress of User Guide and Developer Guide
- Managed the different pages of the project. (index.md, README etc.)
- Enhancements to existing features:
- Revamped the predicate and parser for Filter command to take in multiple fields.
- Adjusted regex expressions for various information fields to restrict the input lengths.
- Changed the GUI by changing the product icon, redesigning colour scheme and replacing all the fonts.
- Documentation:
- User Guide:
- Developer Guide:
- Community: