Tan Yu Qi's Project Portfolio Page
Project: LibTask
LibTask is a desktop application used by librarians to keep track of books, overdue books, and contact details of patrons who have borrowed them and those who requested them. 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. This project is based on AddressBook - Level 3.
Given below are my contributions to the project.
- New Features:
- Added the ability to edit the different fields of a book #65
- What it does:
- Allows users to edit a book currently in the list. It references the book based on the index shown on the list.
- Justification:
- This feature improves the product significantly because a user can make mistakes when adding a new book and the application should provide a convenient way to rectify them.
- Highlights:
- This enhancement was challenging as it required a clear understanding of how the existing AB3 system works, and how to best use the existing code base to create this feature.
- In addition, it required a separate parser for the command and a robust integration between the command logic and the Book class.
- What it does:
- Added the ability to list all the books currently in the database #69
- What it does:
- Allows users to list all the books currently in the database.
- Justification:
- This feature improves the product significantly as it gives the user an option to list all the books and see everything in one glance.
- Highlights:
- This enhancement was challenging because it required a clear understanding of how the Book objects are rendered out.
- What it does:
- Added the ability to find all books related to a particular patron #96
- What it does:
- Allows users to get a list of books related to a particular patron.
- Justification:
- This feature will improve the product significantly as it will help users to filter the books that are related to a particular patron of concern.
- Highlights:
- This enhancement was rather similar to the
patron findcommand. However, the command takes in a patron index instead of keywords. - Furthermore, it is challenging as it requires the creation of a predicate to obtain the books that belong to the particular patron of concern.
- This enhancement was rather similar to the
- Credits:
- Worked with Yong Liang to implement this enhancement.
- What it does:
- Added the ability to edit the different fields of a book #65
-
Code contributed: RepoSense link
- Project management:
- Frequently reviewed pull requests of other team members and wrote commits in a clear and orderly manner.
- Resolved merge conflicts when it arises before merging.
- Communicated with team members and ensured deliverables are delivered for each iteration.
- Enhancements to existing features:
- Documentation:
- Community:
- Tools:
- Assertions
- Gradle
- Intellij