Project: AddressBook Level 3

AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles. 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.

  • New Feature: Added the ability to group a contact.

    • What it does: Allows the user to group a contact.
    • Justification: This is a core features which improves the product significantly because it will help our target audience, university students, organise their contacts into their various project groups so that they do not mix up contacts with similar names. This allows university students to neatly organise their contacts.
    • Highlights: This enhancement affects existing commands and commands to be added in the future. For example, the relationship between group and person is that a group has a list of group members and a person has a list of groups that they are in.
  • New Feature: Added the ability to find a free time slot for group meetings.

    • What it does: Allows the user to find a common time slot within their group.
    • Justification: This feature improves the product significantly because users are now able to find a common meeting time slot, which solves one of the pain points, being difficulty in coordinating meetings.
    • Highlights: This feature involved careful planning and coordination between members of how we wanted to implement the concept of time and consequently how I would implement the feature to find a common time slot.
  • Code contributed: RepoSense link

  • Project management:

    • Managed releases v1.3.0 - v1.4.1 (6 releases) on GitHub
    • Review and merge Pull requests
  • Documentation:

    • User Guide:

      • Added documentation for the features #142
      • Listing Meeting Time From a Group listtime
      • Finding Free Time of a Group findfreetime
      • Viewing Help: help
      • Clearing all Data: clear
    • Developer Guide:

      • Add sequence diagram for grouping a contact #296
      • Add sequence diagram for FindFreeTime command
      • Add activity diagram for FindFreeTime command