Chrystal Quek's Project Portfolio Page
Project: Productiv
Productiv is a desktop application for product managers to organise their product-related information. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 20 kLoC.
Given below are my contributions to the project.
Code contributed: RepoSense
New features and Enhancements
- New Feature: Added the ability to switch modes.
- What it does: Allows the user to
switch
to the different modes of the app. The user can also click on the tabs in the navigation bar. Subsequent commands are executed with respect to the current mode. -
Justification: This feature improves the user experience significantly because the user can just choose to see only deliverable, meeting or contact related information. This makes the application less cluttered and more organised.
The user can also remember less commands, e.g. the
add
command word can be used to add a deliverable, meeting or contact, depending on the mode the user is currently in. - Highlights: This feature was very difficult to implement and required significant restructuring of the entire application. I had to make the UI change whenever there was a switch in mode and ensure that the subsequent commands were passed to the correct
LogicManager
s for execution.
- What it does: Allows the user to
- Major enhancement: Updated Person to user-facing Contact that is more useful for product-management.
- What it does: Allows the user to CRUD contacts in Productiv.
- Justification: Helps users keep track of the developers and stakeholders that are involved in the development of the product.
- Highlights: Refactored Person to user-facing Contact. A Contact can have a
Role
(developer or stakeholder) and also aDescription
. After careful consideration, decided to remove attributes that would not be important for product-management such asAddress
andTag
.
-
Major enhancement: Improved list UI. Created a table format for list UI and made sure to only display fields that are more important to the user.
- Enhancements to existing features:
Project management
- Organised and lead some weekly team meetings.
- Facilitated task delegation.
- Ensured that deadlines were met.
Contributions to team-based tasks
- Created skeleton for switching modes: #32, #106
- Necessary general code enhancements
- Enabled assertions in Gradle: #94
- Clarified and followed up with reviewers of PE-D on behalf of team: #4, #3
- Standardized App feedback messages: #124
Community
- PRs reviewed (with non-trivial review comments): #105, #70, #34
- Total PRs reviewed: 20+, Total comments given: 80+
- Reported bugs and suggestions for other teams (during PE-D): #11, #7
Documentation
- User Guide:
- Developer Guide:
- Added implementation details of the
switch
feature. Included UML diagramsSwitchModeSequenceDiagram
,SwitchModeActivityDiagram
andSwitchModeMouseInputSequenceDiagram
: #241 - Updated almost the entire Appendix, including Instructions for Manual Testing and Effort. Also introduced a neater structure to the Appendix: #229
- Added implementation details of the