Yu Jiali'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 a
loadcommand that allows users to load their words and translations from Excel files to Flashlingo.- What it does: Reads data from file, creates and stores new
FlashCardobjects. - Justification: This feature significantly improves the product to make it more functional to our target users. It allows them to load customized flash cards conveniently and start to learn them immediately, which is more efficient than adding them one by one.
- Highlights: As the data is stored in a complex structure, any exceptions or invalid data need to be handled thoroughly. Moreover, duplicated data should be avoided.
- Credits: Third-party library apache-poi-ooxml is used to read data from Excel.
- What it does: Reads data from file, creates and stores new
-
Code contributed: RepoSense link
- Enhancements to existing features:
- Improved CSS styling of GUI, such as font and layout
- Introduced dark theme, enabled theme preference saving and loading
- Refactored
storage,modelandlogiccomponents to fit with Flashlingo and flash cards - Added more defensive coding in
storageto prevent data and app corruption
- Documentation:
- User Guide:
- Drafted UI,
listandstopcommands, refactored title and layout - Added documentation for
switch,loadandhelpcommands - Wrote FAQ section in detail
- Updated and cropped all images, improved overall word usage and format
- Drafted UI,
- Developer Guide:
- Drafted project scope, NFRs and manual testing
- Adapted the storage design from AB-3 to Flashlingo
- Added documentation for
loadandswitchcommands implementation - Wrote planned enhancement section and updated NFRs
- User Guide:
- Contributions to team-based tasks:
- Milestone v1.1, v1.2, v1.2b and v1.3b creation, issues assignment
- In charge of project docs, including v1.2, v1.3 features demo and postmortem
- Task assignment, in-team coordination, task presenter including PE-D bug fix report and tester feedback
- Effective Refactor of code from AB-3 to Flashlingo
- Documented FAQ in User Guide, project scope and NFRs in Developer Guide
- Community:
- PRs reviewed (with non-trivial review comments): #185, #232, #311
- Contributed to forum discussions
- Reported bugs in other team’s products: PE-D