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 undo/redo previous commands, together with Eline.

    • What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command.
    • Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. This is especially the case when the user accidentally clears the entire address book.
    • Highlights: This enhancement affects existing commands and commands to be added in the future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it interacts with many components of the app.
    • Credits: Eline and I implemented the feature based on the Proposed Features section of AB3. I also wrote the tests for the feature.
  • New Feature: Added the ability to delete module roles using the edit command.

  • Code contributed: RepoSense link

  • Project management:

    • Managed releases v1.3, v1.5, v1.5.1, v1.6 on GitHub.
    • Refined the color scheme of GitHub issue labels.
  • Enhancements to existing features:

    • Added the ability to further filter the previous find results using find chained
    • Allowed the find command to perform a partial match on names.
    • Made the error messages of find and delete more specific.
    • Included the exact fields edited in the edit command's success message.
  • Documentation:

    • User Guide:
      • Added documentation for the feature delete module role.
      • Updated the documentation for the find command.
      • Updated the repetition syntax.
    • Developer Guide:
      • Added the sequence diagrams for the find command.
      • Updated the diagrams for undo/redo.
      • Updated the Model's class diagram to include the VersionedAddressBook class.
  • Community:

    • 40 PRs reviewed
    • Contributed to forum discussions (examples: 1, 2, 3)