Project: LibTask

LibTask is a desktop application used by NUS libraries 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 Feature:
    • Added the ability for users to view their previous commands
      • What it does
        • Allows users to make changes to their previous commands if needed.
      • Justification
        • It will speed up the process should the user wish to key in multiple similar commands
        • Will also allow them to check if any of the fields were incorrectly entered.
      • Highlights
        • This command changes the way users can interact with LibTask, making it more efficient for librarians who have to do similar work repeatedly.
        • As TextInputControl consumes functions keys, this feature was designed to be called by the “u” key. This was a change from the original plan of using arrow keys.
        • It was also the only feature that would edit the CommandBox which required additional work to implement.
        • Credits
    • Added the ability for users to search for a book by its category tag, author or name.
      • What it does
        • Allows users to quickly find certain books using a search query
      • Justification
        • It will make it easier for a librarian to find all books that are part of the same category or author.
        • Allows the librarian to quickly find all books related to a topic.
      • Highlights
        • Requires more work than patron find, to ensure that only one argument is parsed into the software since it can be one of 3.
        • Required the creation of 3 predicates to check for the validity of each prefix.
  • Code contributed: RepoSense link
  • Project management:
    • Approved and reviewed PR’s for merging
    • Created issues for PR’s to recommend changes
    • Worked with team members to resolve merge conflicts in a timely manner.
  • Enhancements to existing features:
    • Added the ability to traverse previous commands #66
    • Added the Book find command#110
    • Added test cases for Book find#132
    • Add test cases for previous commands#66
  • Documentation:
    • User Guide:
      • Add Book find and the previous Command feature to the User Guide#139
      • Changes to how the Book find feature were updated in the User Guide$129
      • Glossary updates for the User Guide#108
    • Developer Guide:
      • Add use cases, NFR and Glossary to the DG#30 #144
      • Add Book Find feature to the use cases in the DG#121
      • Add in manual test cases and implementation details for Book find #214
  • Review/mentoring contributions:
    • PR reviewed (with non-trivial review comments): #138 #116
  • Community:
    • Bugs reported for other team can be found here
  • Tools:
    • Gradle
    • Intellij
    • Assertions