Wang Cheng's Project Portfolio Page
Project: Flashlingo
FlashLingo is a desktop application to facilitate the learning of new languages through flashcards. 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.
- New Feature: Added the ability to start and end review sessions.
- What it does: it allows users to manage review sessions where they can review their flashcards to improve their memory retention.
- Justification: The implementation of ‘start’ and ‘end’ review session capabilities allows users to actively review words, thereby enhancing their memory retention.
- Highlights: This upgrade impacts both current and future commands, demanding an in-depth analysis of design options. Integrating the Singleton pattern posed challenges, necessitating complex adjustments to existing commands.
- New Feature: Added the ability to reveal the translation of the particular flash card
- What it does: It shows/hides the translation of the particular flash card.
- Justification: The implementation of ‘reveal’ allows users to test their grasp of words, hence enhancing their memory retention.
- Highlights: Unlike other commands,
reveal
command has default value when the parameter is omitted. In addition, in order to achieve the same effect of pressing buttons, it requires seamless coordination between command and UI.
-
Code contributed: RepoSense link
- Documentation:
- User Guide:
- added documentation for the features
yes
,no
,start
andstop
: #185 - modified introduction section to briefly explain scientific basis of this application
- included Application Features to introduce how the application can be used in a high-level manner: #306
- added glossary section to explain the jargon used in the user guide: #304
- added documentation for the features
- Developer Guide:
- added implementation details of the features
start
andstop
commands: #175 - wrote planned enhancement
- added implementation details of the features
- User Guide:
- Contributions to team-based tasks:
- Milestone v1.3 creation
- Bug issues assignment
- Ensuring coding standard is followed
- Community: