Nicholas' Project Portfolio Page
Project: PartyPlanet
PartyPlanet is a cross-platform desktop application that helps users plan birthday celebrations. The user primarily interacts with it using a command-line interface, inside a GUI created with JavaFX. It is written in Java with around 10k LOC.
A full list of code contribution can be found here: RepoSense
Given below are my contributions to the project.
New features
- Added feature to undo/redo previous commands.
#107
#189
- What it does: Allows the user to
undoprevious commands (which change the state of the address book/event book). Prior undo commands can be redone withredo - Justification: A user could make mistakes when writing/using commands, especially since we condensed the available commands to the essentials. As such, PartyPlanet should provide an easily available way to undo this. Keyboard shortcuts were also implemented.
- Highlights: This enhancement required the creation of a
StateHistoryclass to track theStateof the address and event books at the same time. - Credits: Code used is referenced weakly from the AB4
undoandredo, but they differ significantly asStateHistoryhas to be customized for PartyPlanet.
- What it does: Allows the user to
- Added event book and feature to add events (
eaddcommand) commits 4408fd8, 858ae4a, 551afbd, 9394207- What it does: Allows the user to store a book of events in PartyPlanet, and to
eaddan event to PartyPlanet - Justification: A user would want to keep track of upcoming celebrations, or celebrations that need to be planned.
- Highlights: This enhancement affected the existing
LogicandModel, and required implementation and integration ofEventBookandEventfrom scratch. Finally, testing stubs had to be updated to reflect changes. - Credits: Code used for
eaddis referenced from theaddcommand, andEventBookandEventare based off ofAddressBookandPerson.
- What it does: Allows the user to store a book of events in PartyPlanet, and to
- Added feature to request help for specific commands (
help COMMAND): #74- What it does: Allows the user to request help for a specific command with an optional parameter
COMMAND, to be displayed directly in the UI, instead of redirecting to the UG. - Justification: Our command syntax is dense, with many optional parameters.
helpgives a brief overview of all available commands with syntax, and the user can specify a command to get detailed help on, directly available in the UI. This speeds up workflow and minimizes cross referencing to resources outside the application. - Highlights: This enhancement relies heavily on
MESSAGE_USAGE_CONCISEandMESSAGE_USAGEin each individual command. - Credits: Code used is based on the AB3
helpcommand, but then significantly modified after.
- What it does: Allows the user to request help for a specific command with an optional parameter
Feature enhancements
- Created a
Dateclass and refactoredBirthdayandEventDateto inherit from it: #145 - Refactored DETAIL to REMARK and repackaged and reorganized
NameandRemarkclasses: #311 - Wrote tests for
UndoandRedo: #317
Documentation
- UserGuide:
- DeveloperGuide:
- Added User Stories #36 and Use Case UC7 #60, Updated Product Scope #69
- Updated UML diagram for
Modelcomponent after refactor #311 - Added Appendix: Effort #332 and sections for
help,undoandredo, including all UML Diagrams.