Project: CAP5Buddy

Overview

CAP5Buddy is a desktop module tracker application used to centralise key module details. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 30 kLoC.

Summary of Contributions

Given below are my contributions to the project.

  • Enhancement: Implemented the feature to find items using multiple search parameters. This includes the following functionalities: find contact, find task.
    • What it does: This feature allows the user to filter contacts, tasks and events using multiple search parameters.
    • Justification: This feature enhances the product significantly as users might store many contacts, tasks and events, and locating specific information may be tedious.
    • Highlights: This feature required in-depth analysis of the implementation of Contact and Task. As users can provide a variable number of search parameters, defensive programming was employed to ascertain exactly which search parameters were provided before the command is executed.
    • Relevant Pull requests: #156 #257 #425 #419 #600
  • Enhancement: Implemented zoom link management feature. This includes the following functionalities: add zoom link, edit zoom link, delete zoom link
    • What is does: This feature allows users to manage a list of zoom links for various module lessons in each distinct module.
    • Justification: This feature enhances the product significantly since users are enrolled in numerous modules and might have a substantial number of zoom links to keep track of.
    • Highlights: In-depth analysis of Module and its behaviour is required since ZoomLink and ModuleLesson is coupled with module. This is important as it prevents unexpected regressions when zoom link commands are modified.
    • Relevant Pull requests: #80 #96 #428 #541 #553 #555
  • Enhancement: Implemented contact list management feature. This feature includes the following functionalities: add contact, delete contact, edit contact, clear contact, list contact
    • What it does: This feature allows users to keep track of module related contacts while managing all their contact details.
    • Justification: This feature enhances the product significantly as module contacts are vital information that users access on a regular basis. As users are enrolled in numerous lessons, the number of contacts to track can be overwhelming.
    • Highlights:
      • This feature requires development in all the components of Cap5Buddy: Logic, Model, Storage and Ui. As such, in-depth analysis of how the components interacted with each other was required. Also, it provides flexibility for users as not all contact fields are compulsory when creating contacts.
    • Relevant Pull requests: #228 #249 #250 #251 #257 #258 #383 #422 #454 #592
  • Code contributed: RepoSense link
  • Project management:
    • Set up the GitHub team organization and repository
    • Performed GitHub team repo setup (enable issue tracker, set up product website etc)
    • Managed releases v1.2, v1.3 (2 releases) on GitHub
    • Managed and closed milestones V1.1, V1.2, V1.3.
  • Enhancements to existing features:
    • Updated the GUI color scheme for contact card (Pull request #582)
    • Refactored Model package to suit the implementation of CAP5Buddy (Pull request #197)
    • Wrote additional tests for existing features to increase coverage (Pull requests #292, #295, #571, #598, #621)
  • Documentation:
    • User Guide:
      • Added documentation for contact list features, zoom link features and find task feature
    • Developer Guide:
      • Updated documentation for the Logic component
      • Added implementation details of the contact list features, zoom link features and find task feature.
      • Added user stories, use cases
  • Community: