Marcus's Project Portfolio Page
Project: FlashBack
FlashBack is a desktop flashcard application to help improve the performance of students via improved accessibility and organisation of notes, together with interactive sessions that enhance memory retention. The user interacts with it using a CLI. It is written in Java and it has a GUI created with JavaFX.
Given below are my contributions to the project.
- Code contributed: RepoSense Link
- Enhance Delete Feature: Enhanced the ability find flashcards by given user input.
- What it does previously: Allows the user to delete a person in AddressBook.
- What it does now: Allows the user to delete a flashcard in FlashBack.
- New feature: Added the ability to undo an undoable command. #65
- What it does: Allows user to reverse a command that changes flashcard.
- Justification: In the event that users accidentally execute a wrong command that modifies flashcards, this feature allows user to undo the action.
- Highlights: This feature mainly involves creating a versionedFlashBack that stores the states of FlashBack.
- Credit: Implementations adapted from SE-EDU on Github
- New feature: Added the ability to redo a command. #88
- What it does: Similar to undo, except it reverses the undo command.
- Justification: Similar to undo, this features allows user to redo a command when the users accidentally undo a command.
- New feature: Added the ability to define an alias for a command. #111
- What it does: Allows the user to define an alias for a command.
- Justification: For advanced users who wish to rename their command to something else so that there are able to use the application more effectively. Example: delete -> rm, list -> ls, etc. for users who are familiar to Unix-like operating system.
- Highlights: This feature requires the implementation of a new class that handles the mapping of aliases and commands. As the alias mapping is saved in preferences.json file, it is possible for users to change the mapping directly to something invalid, for example add -> delete. Hence an additional check is also added when loading the preferences.json into FlashBack.
- Documentation:
- User Guide:
- Developer Guide:
- Other Contributions: