Project:

HappyEverAfter is a desktop address book application used by wedding planners for keeping track of client ad vendor contact details. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.

Given below are my contributions to the project.

  • New Feature: Added the ability to undo/redo previous commands.

    • 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.
    • Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
    • Credits: {mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}
  • New Feature: Added a history command that allows the user to navigate to previous commands using up/down keys.

  • New Feature: Added the ability to open a wedding in the planner.

    • What it does: Allows the user to open a specific wedding by selecting it from the list. Once opened, the planner will display detailed information related to the selected wedding.
    • Justification: This feature is essential because it allows users to focus on one specific wedding at a time and manage its associated details without clutter.
    • Highlights: Implementing this feature required careful handling of state management to ensure that the correct wedding details were displayed and that switching between weddings was seamless.
  • New Feature: Added the ability to close the currently opened wedding.

    • What it does: Allows the user to close an opened wedding and return to the main wedding list view.
    • Justification: This feature improves user experience by giving them control over when to exit the detailed view and return to the overview of all weddings.
  • New Feature: Added the ability to create a new wedding.

    • What it does: Allows the user to add a new wedding to the planner by specifying relevant details such as names, contact information, and date.
    • Justification: This feature is a core functionality of the planner, enabling users to expand their list of weddings to manage.
  • New Feature: Added the ability to sort weddings by date.

    • What it does: Allows the user to sort the list of weddings in ascending order based on their dates.
    • Justification: This feature enhances usability by enabling users to view upcoming weddings in chronological order, making planning and navigation easier.
  • Code contributed: RepoSense link

  • Project management:

    • Managed releases v1.3 - v1.5rc (3 releases) on GitHub
  • Enhancements to existing features:

    • Updated the AB3 logic to account for weddings in the model & contacts being inside weddings (Pull requests #48)
  • Documentation:

    • User Guide:
      • Added documentation for the feature sort #76
    • Developer Guide:
      • Added user stories for MVP features #30
  • Community:

    • PRs reviewed (with non-trivial review comments): #44, #74
    • Contributed to forum discussions (examples: 1, 2, 3, 4)
  • Tools: