Ryan Guai's Project Portfolio Page
Project: YellowBook
YellowBook is for university students who are involved in many projects and have to organize their project contacts and tasks. 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.
Given below are my contributions to the project.
- New Feature: Implemented tags and the tag list.
- What it does: Each tag has a name and a count of how many contacts/tasks are associated with it. The tag list displays all the user’s tags.
- Justification: Users of YellowBook need a way to organise their contacts and tasks into the respective projects that they belong to. This supports other functionalities such as filter to allow users to access the relevant contacts/tasks when working on a particular project.
- Highlights: Duplicate tags cannot be added to the tag list.
- New Feature: Added the ability to add/delete tags from contacts/tasks. #113 #135 #166 #123
- What it does: allows the user to add/delete tags from contacts/tasks.
- Justification: This feature improves the product significantly because it allows the user to label people/tasks with the context of which project it belongs to. This allows the user to look for contacts/tasks from a specific project without having to look through the entire list.
- Highlights: This enhancement required me to set up an entirely new Tag class and a unique list of Tags that responded dynamically to user input, in addition to the commands themselves. It required an in-depth analysis of design alternatives. The implementation was challenging as I had to consider how to support adding tags to both contacts and tasks concurrently.
-
New Feature: Added the ability to list all existing tags. #177
-
Code contributed: RepoSense link
- Project management:
- Enhancements to existing features:
- Documentation:
- Community:
- Tools:
- Integrated CodeCov into the project