#Overview
semester.config is a desktop application for managing your tasks. While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).
#Summary Of Contributions
Code Contributed
My code contributions can be found here.
Enhancements implemented
I implemented 3 main features:
- ModuleCode attribute for Task which will be useful for users;
- Undo Command,
- Redo Command as well as the VersionedTaskTracker which supports these commands
Enhancement 1: Added the ModuleCode attribute for Task
- What it does: Allows the user to add and edit the ModuleCode as an attribute of the Task
- Justification: Allows the user to know the module that the Task belongs to
Enhancement 2: Implemented the Undo Command
- What it does: Allows the user to undo the last command which altered the state of the application
- Justification: This allows the user to undo any mistakes that were made i.e. clearing the application
- Highlights: It was difficult to implment the functionality where only commands which altered the application could be undone as there was no way to differentiate between state modifying commands and non-state modifying commands. This was overcome by creating a NonModifyingCommand Enum to differentiate between the commands as well as overriding the toString() methods of each Command such that they could be checked against the NonModifyingCommand Enum.
Enhancement 3: Implemented the Redo Command as well as the VersionedTaskTracker
- What it does: Allows the user to redo the last command that modified the application state
- Justification: This allows the user to redo a command after an Undo Command was issues.
- Highlights: This enhancement follows the behaviour that most moderrn desktop applications follow, where if a new command that alters the application is used after a Undo Command, the redundant states will be purged.
Contributions to the UG
- Added documentation for the features
edit
,clear
,undo
andredo
- Proofread and fixed issues with the UG before submission
Contributions to the DG
- I was in charge of the Model component and did the initial version of the Model component UML diagram.
- Added use cases for “Editing a deadline”, “Setting a priority tag to a deadline” and “Adding a note to a deadline”
- Proofread and fixed issues with the DG before submission
Contributions to team-based tasks
- Refactored ReadOnlyAddressBook to ReadOnlyTaskTracker in all usages
- Refactored AddressBook to TaskTracker in all usages
- Refactored UniquePersonList to UniqueTaskList in all usages
- Refactored ModuleName to TaskName in all usages
- Approved and merged PRs where possible