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: