Project: FlashBack

FlashBack is a desktop flashcard application. 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

  • New features: Added the ability to view a specific card given the index. #52
    • What is does: displays the question and answers of a specific card in the view pane.
    • Justification: In the list view, the user can only see parts of the question (if the question is long) and cannot see the answer. This feature allows users to see the completed question with its answer.
    • Highlights: This feature mainly involves design the UI for the view pane.
  • New features: Added the ability to review the deck of flashcards. #74
    • What is does: allows the user to review all the cards one-by-one with detailed question and answer. All commands in review mode only contain 1 character, so the user do not have to type long commands.
    • Justification: In the main window, in order to see the question and answer of all the cards, users have to type a lot of view command, which is very time-consuming. This feature is implemented to solve this problem. In addition, users can track their progress if they remember the answer correctly. This is then reflected in stats command.
    • Highlights: This feature is quite hard to implement since it requires designing a completely new window that connected to the flashcard list that is currently displayed in the main window.
  • New features: Added UI components: TextArea Command Box. #74
    • What is does: allows the user to see most of their commands so that they can easily spot mistakes in their commands if any, which can help to increase User Experience.
    • Justification: A command, especially add and edit command tends to be long. Previously, when using TextField, all the command was in a single line, and it was impossible for user to see the whole content of their command.
    • Highlights: This features required the implementation of a new custom TextArea that disallows users to enter multiline commands.
    • Credit: jewelsea on Github
  • Enhancements to existing features:
    • Changed the whole GUI design and color. #26, #55
    • Refactored method names and variables from AB3 code. #55, #104
  • Contributions to the UG:
    • Added the documentation for view command and review mode. #71, #74
    • Added screenshots of the application for each user input. #71
    • Added page breaks to UG. #168
  • Contributions to the DG:
    • Added the User Stories section. #36, #53
    • Update UML class diagrams for UI, Storage and Logic classes. #91
    • Added implementation details including class diagram and sequence diagram for Review feature .#91
    • Added use case for Review feature. #91
    • Added instruction for manual testing for view and review feature. #104
    • Added effort section for Refactor from AB3 to FlashBack, View feature, Review Mode and UI improvement. #104, #181
    • Added page breaks to DG. #177
  • Review contributions:
  • Contribution to Team-Based Tasks:
    • Changed the product name and icon.
    • Actively looked for bugs in teammates’ code.
    • Managed the deadlines for team members.
    • Enabled assertion.
    • Managed release for FlashBack v1.2.1 and FlashBack v1.4 on Github.
  • Contribution beyond project team: