Brandon Kheng's Project Portfolio Page
Project: Teaching Assistant’s Personal Assistant (TAPA)
TAPA is a desktop contact management application used to manage students’ contact and progress. 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.
-
Code contributed: RepoSense link
- Undo Command (New Feature):
- What it does: Undoes the most recently executed command.
- Justification: Performing tasks on a CLI can be punishing if a user were to execute the wrong command or execute a command with a typo. In these scenarios, having a command that reverts erroneous changes saves time and reduces frustration.
- Highlights: This implementation of the undo feature requires storing previous states of TAPA. As such, the
ModelManager
had to be extended, and new classes constructed, to keep track of the state of TAPA after each successfully executed command. Special care also had to be taken to ensure that certain commands (includingclear
andundo
itself) could not be undone as they would disrupt the tracking of TAPA’s states. - Implementation: #120
- History Command (New Feature):
- What it does: Displays a list of previously executed commands.
- Justification: In the event that the user needs to undo a chain of previously executed commands, but cannot remember when they executed the command, or how many commands they would need to undo, the history command provides an easy way to view their previously executed commands.
- Highlights: This implementation of the history feature requires keeping track of previously executed commands, as well as updating the list of commands as the user executes new commands. As such, the
ModelManager
had to be extended to cater for these. - Implementation: #120
- Confirm Clear Command (Extension):
- What it does: After the user executes the clear command, TAPA requests for the user’s confirmation before clearing all details stored in TAPA.
- Justification: Due to the severity of accidentally clearing all details stored in TAPA, this confirmation feature acts as a safeguard to ensure the user knows the effect of the clear command and intends to clear TAPA.
- Highlights: This extension of the clear command requires the user to interact with TAPA to confirm their decision. Thus, unlike for most other commands, the UI component of TAPA had to be studied and then extended. In this implementation, the confirmation feature interacts with the UI component of TAPA to achieve its purpose. Furthermore, the
confirm
input should not be recognised as a command during normal operations. As such,LogicManager
andMainWindow
had to be extended to cater for these needs. - Implementation: #61
- Edit Command (Extension):
- What it does: Edits the specified details of a student in TAPA.
- Justification: As TAPA evolved its use cases from AB3, the edit command had to be updated to suit the current needs of TAPA, and function properly with the new parameters involved.
- Implementation: #64
- Enhancements to existing features:
- Contribution to team-based tasks:
- Worked with the team to:
- Ideate and design TAPA.
- Brainstorm and plan user stories and use cases.
- Evolve AB3 into TAPA by updating or replacing outdated segments of code.
- Maintain the issue tracker by assigning and labelling issues.
- Provide timely updates to our TA.
- Address and fix PE-D bugs.
- Worked with the team to:
- Community:
- PRs reviewed (with non-trivial review comments):
- Reported a total of 10 bugs and suggestions for other teams in the class (reported here).
- Documentation: