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:
    • Updated the GUI for the application and added the listEvents command #54
      • What it does: The application can now display events concurrently with persons and entering the command listEvents displays all events in the application to the user.
      • Justification: This feature allows the user to see events in the current order in which they are stored as data and has been extended to sort events permanently.
    • Added the Date and Time attributes for Events and the Date attribute for Person #106, #129
      • What it does: Events can now store a starting date and time while each person can store their date of birth.
      • Justification: This feature allows the user to view the start date and time of every event in the application as well as view the date of birth of all persons in the application. These attributes have been used to create and display an event’s statistics about its attendees’ gender distribution and age.
      • Credits: Reused code from Hong Liang (team member) and re-abstracted the code to form the date package so that it can be used by both the Event and Person class.
    • Created the GUI display for statistics and created the makeStats command to open the statistics GUI display #131
      • What it does: Opens a new window showing a coloured pie chart of a statistic.
      • Justification: This feature allows the user to see the statistics of an event visually.
    • Added the findEvents command #128
      • What it does: Displays all events that match the keywords that have been inputted.
      • Justification: This feature helps the user to better locate the events that they are looking for if they are already managing many events.
    • Implemented automated testing for DateTest, StartTimeTest, FindEventsCommandTest, ListEventsCommandTest and DeleteEventTest #231,
  • Documentation:
    • User Guide:
      • Added documentation for the findEvents command.
      • Removed documentation for the tag field in addPerson and editPerson features.
      • Updated documentation for findPersons command.
      • Standardised the overall user guide for V1.4.
    • Developer Guide:
      • Added documentation for V1.1 and the listEvents command.
      • Did the manual testing and effort sections for V1.4.
  • Contributions to team-based tasks:
    • Setting up the GitHub team org/repo.
    • Organizing and facilitating bi-weekly team meetings as the Team Lead.
    • Distributing workload amongst team members.
    • Updated the README for V1.4.
  • Community:
    • PRs reviewed (with non-trivial review comments): #57, #99, #108, #133, #240,
    • Reported bugs and suggestions for other teams in the class (examples: #125, #129, #164, #165)