Jason's Project Portfolio Page
Project: lesSON
lesSON is a desktop flashcard application for Computing students in University who struggle with memorisation and consolidation of knowledge. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.
Given below are my contributions to the project.
- New Feature: Practice Date Scheduling #93
- What it does: Add a nextPracticeDate field to each card, and make sure the deck is sorted by that field. This puts all cards in the deck in a schedule for the user.
- Justification: The user can easily know when to practise their cards. This is also better than the previous method of sorting arbitrarily.
- Highlights: Taking advantage of comparators to make implementing sorting by nextPracticeDate simple
- New Feature: Spaced Repetition System #93
- What it does: Combines set difficulty and practice date features to make cards set a new practice date according to the new difficulty.
- Justification: By tying practice date to difficulty, it makes practising the cards more meaningful because users will be able to practise the harder cards more.
- Highlights: Uses a hidden lastPracticeDate field to calculate a new practice date proportional to the duration between the last two practices. See the developer guide for details on its mechanism.
- New Feature: Random Command #135
- What it does: Allow user to practise with a random card instead of a specific index
- Justification: For users that want to test their understanding by practising randomly
- Highlights: Random command creates a special index r which can be referenced by solve and set commands
-
Code contributed: RepoSense link
- Enhancements to existing features:
-
Documentation:
- User Guide:
- Created initial mockups of the UI for user guide
- Continued updating of ui mockups in v1.3 #120
- Wrote description for set difficulty to explain spaced repetition part of set command #121
- Updated introduction to have less jargon #129
- Updated layout of user guide by adding installation section #129
- Wrote an overview for the user interface #129
- Wrote a tutorial for new users #129
- Added
random
feature #136 - Created more descriptive ui mockups, with annotations #223
- Developer Guide:
- Added
spaced repetition
feature to implementation section, with relevant details explaining the mechanism behind the spaced repetition system. #101 - Updated API links for classes such as Main.java, Ui.java, etc. #203
- Added
filter by tag
feature to implementation section, along with its sequence diagram #211 - Added
random
feature to implementation section, along with its respective sequence diagram #211 - Standardised numbering for all features #224
- Fixed various DG bugs #224
- Fixed setting up page phrasing #230
- Fixed devops page links #230
- Deleted old ab3 tutorials #230
- Fixed ppp page styling #230
- Added
- User Guide:
- Community: