Benjamin Sim's Project Portfolio Page
Project: Duke The Market
Duke The Market is a desktop application used for managing customer contacts and events in department stores. 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.
-
Code Contributed: RepoSense link
-
Enhancements Implemented:
- New Feature: Added the ability to sort persons when listing them (Pull requests #53, #83)
-
What it does: Allows the user to sort all persons in the application by their name, gender or date of birth.
-
Justification: Sorting persons improves the user’s productivity as he can easily locate people in the person list.
-
Highlights: This feature required redesigning the original
list
command. Furthermore, designing how the sorting operation would function was challenging as it required detailed analysis of how data was handled and presented on the GUI.
-
- New Feature: Added the ability to sort events when listing them (Pull request #113)
-
What it does: Allows the user to sort all events in the application by their event title or date.
-
Justification: Sorting events improves the user’s productivity as he can easily locate events in the event list.
-
Highlights: This feature required redesigning the
listEvents
command created by another team member.
-
-
Testing: Added substantial unit tests and integration tests for the sort persons feature, increasing test coverage from 48% to 50%. (Pull request #192)
-
Testing: Added some unit tests for the sort events feature. (Pull request #192)
-
Refactoring: Refactored the original
list
command tolistPersons
to distinguish it from thelistEvents
command. - Misc: Updated the help URL in the application to the product’s user guide URL. (Pull request #75)
- New Feature: Added the ability to sort persons when listing them (Pull requests #53, #83)
- Documentation:
- Team-Based Tasks:
- Updated product name on product website. (Pull request #14)
- Managed milestones v1.1, v1.2, v1.3, v1.4 (Created and closed milestones, created issue tracker labels, etc.)
- Handled product releases for v1.2 and v1.3 (including uploading and testing of JAR files) (Link)
- Perfomed various miscellaneous team tasks such as updating the JAR filename, enabling assertions, updating team’s GitHub repo URL on the product website. (Pull request #75)
- Community: