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:
    • Set up team org and team repo
    • Set up Github Issue Tracker for user stories and task allocation
    • Update build status on README #55
    • Update project side-wide settings #56
  • Enhancements to existing features:
    • Updated GUI to reflect archival status of tasks #194
    • Wrote additional tests for existing features to increase coverage (Pull request #237, #257, #273)
    • Added storage for tags #172
  • Documentation:
    • User Guide: #86 #170
      • Added documentation for the features addL, deleteL and listL
      • Updated command table with addL, deleteL and listL
      • Added short section summary for Contacts, Tasks and Tags #236
      • Added images to display command results #278
    • Developer Guide:
      • Added implementation details of the addL feature #153
      • Added use cases and glossary terms #85
  • Community:
    • PRs reviewed (with non-trivial review comments): #126 #165
    • Contributed to forum discussions (examples: 1)
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)
  • Tools:
    • Integrated CodeCov into the project