Kenneth's Project Portfolio Page
Project: bookmark
bookmark is a desktop book management application used for managing user added books to manage book records such as last read page (bookmark), added goals and notes. A user will interact with bookmark through a GUI created with JavaFx and invoke commands through a Command Line Interface style.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- New Feature: Added the ability to sort books by name, genre, bookmark or reading progress.
- What it does: Allows the user to sort books by a specified field in ascending order.
- Justification: This feature improves the product significantly because a user can order their books based on their chosen preference, which makes their book list more organised and easier to navigate.
- Highlights: This enhancement involved updating of user preferences in the
preferences.json
file, so that books would remain in sorted order even after exiting and restarting the application. Subsequent books that were added or edited would be placed in the correct sorting order in the book list. The implementation was challenging as it required an in depth understanding of howuserPrefs
were generated from thepreferences.json
folder, an aspect that was considered only by the sort feature. - Code contributed for this enhancement: #109, #119
- Enhancement to existing feature: Enhanced the
find
command to allow finding of books by name, genre, tag and completion status. Prior to the enhancement, only finding of books by name was supported.- What it does: Allows the user to find books by name, genre, tag and completion status.
- Justification: This feature improves the product significantly because a user can find books by a specific field, which makes it easier to find specific books as well as a certain subset of books e.g. all books that contain the same genre or all books that contain the same tag.
- Highlights: This enhancement involved the creation of several predicate classes packaged within the
seedu.bookmark.model.book.predicates
package that are used to filter the book list according to user input. The chosen implementation makes the code extremely maintainable: more filtering mechanisms can be easily added to produce additional functionality within thefind
command. - Wrote additional tests for the
find
feature to increase coverage from 67% to 68%. - Code contributed for this enhancement: #96, #109
- Project management:
- Helped maintain the issue tracker, ensuring that all issues created were appropriately and promptly resolved with corresponding pull requests.
- Documentation:
- Community: