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 to listPersons to distinguish it from the listEvents command.

    • Misc: Updated the help URL in the application to the product’s user guide URL. (Pull request #75)

  • Documentation:
    • User Guide:
      • Added documentation for the listPersons (Link) and listEvents (Link) features.
    • Developer Guide:
      • Added implementation details of the sort persons feature. Link
      • Added use cases UC02, UC03, UC04, UC05 Link

  • 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: