Song Mengfei'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 update the proficiency level of reviewed flash cards.
- What it does: It receives the user’s feedback on the flash card and updates the proficiency level of the flash card accordingly.
- Justification: The implementation of
Yes
andNo
commands 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.
- Added the ability to filter flash cards by their language or review date.
- What it does: It lists all flash cards with the specified language or the review date before the given date.
- Justification: The implementation of
Review
andLanguage
command allows users to view all flash cards in the flash card list. - 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.
- Added the ability to update the proficiency level of reviewed flash cards.
-
Code contributed: RepoSense link
- Enhancements to existing features:
- Update
FindCommand
to support searching byKEYWORD
#83 #89 - Update
AddCommand
,AddCommandParser
and their test. Users can add flash cards with optional parametersWordLanguage
andTranslationLanguage
#161 #302 - Update
EditCommand
,EditCommandParser
and their test. Users can edit a flash card with at least one and at most four parameters#216 #305 - Update existing test file #173
- Fix checkstyle issues
- Update
- Documentation:
- User Guide:
- Developer Guide:
- Contributions to team-based tasks:
- Ensuring coding standard is followed
- Issue creation and assignment
- Community:
- PRs reviewed (with non-trivial review comments):#318