Jonas Ng's Project Portfolio Page
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
andUi
. 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.
- This feature requires development in all the components of Cap5Buddy:
- 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:
- 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
- Updated documentation for the
- User Guide:
- Community: