Skip to content

Latest commit

 

History

History
135 lines (96 loc) · 5.62 KB

HoHolYin.adoc

File metadata and controls

135 lines (96 loc) · 5.62 KB

Ho Hol Yin - Project Portfolio

PROJECT: LiBerry


About the Project

With a common belief to improve literacy in the world, my team decided to create a library management system called 'LiBerry' that is free and easy to use. 'LiBerry' is designed for small communities with a lack of expertise and resources to manage a library.

This library management system is able to:

  • Add books to the library

  • Remove books from the library

  • Register borrowers

  • Mark a book as loaned to a borrower

  • Calculate loan periods and fines for any overdue loans

This is what the main page of our system looks like:

Ui
Figure 1. Graphical user interface for LiBerry

Summary of contributions

This section shows a summary of my coding, documentation, and other helpful contributions to the team project.

  • Major enhancement: The ability to automatically generate loan slips in pdf for every loan.

    • What it does: Allows the librarian to print the generated loan slip for the borrower.

    • Justification: Since our target group is small impoverished communities, it is unlikely they will have internet access to check the status of their loans. Therefore, it will be suitable to provide them with a printed version of the loan.

    • Highlights: This feature is challenging to implement as it will require us to create a new pdf document from scratch. On top of that, this document will have to be suitably styled as a loan slip using information from the loan.

    • Credits: This feature is made possible with the 'iText 7' library. However, it was still required of me to understand the API well and in depth such that I can apply it appropriately to the context of our project.

LoanSlip
  • Minor enhancement:

    • Implemented the ability to add books

    • Implemented the ability to delete books

    • Implemented the ability to display information about a book

  • Code contributed:

  • Other contributions:

    • Project management:

      • Managed the release of v1.3 on GitHub. In v1.3, we have the following additional features:

        • Pay fines

        • Renew loans

        • Generate loan slip

        • Edit Borrower details

        • Search overdue books and books that are on loan

    • Enhancements to existing features:

      • Optimised the generation of a new serial number when a new book is added

        • Done through Pull Request #118. This enhancement allows the system to efficiently locate and allocate the smallest available serial number to the new book.

      • Made the Book Object immutable in preparation for the undo/redo feature in the future

        • Done through Pull Request #147. This modification allows the system to track the different states of the system throughout its usage. This is required in order to implement the undo/redo function.

    • Documentation:

    • Community:

      • Reviewed(with non-trivial comments) a Pull Request from another group

      • Contributed to forum discussions as a group (Shared a tip on how to check code coverage when running tests)

      • Reported bugs and suggestions for other teams in the class.

    • Tools:

      • Integrated a third party library (iText 7) to the project in this Pull Request

Contributions to the User Guide

This section outlines my contributions to the team’s User Guide. The following are excerpts from the 'LiBerry' User Guide. These excerpts show the additions I made for the 'Add Book' and 'Loan' feature. In the 'Loan' feature, my contributions include only the loan slip portion.

Add Book Feature

Adding a book: add

Adds a new book to library records.
Format: add t/TITLE a/AUTHOR [sn/BOOK_SN] [g/GENRE]

Tip
A book can have any number of genres (including 0)
Tip
You do not need to specify the serial number if you wish so.
LiBerry will then auto-generate a valid serial number for the new book.

Examples:

  • add t/Harry Botter and the Baby’s Potty a/Raylei Jolking sn/B02010 g/children

  • add t/Inferno a/Tande g/classic g/epic

Loan Book Feature

Loaning book(s): loan

Loan book(s) by their serial number
Format: loan sn/BOOK_SN…​

Examples:

  • loan sn/B00041
    Loans the book with serial number B00041

  • loan sn/B00201 sn/B02929 sn/B00203
    Loans the books with serial numbers B00201, B02929 and B00203

Upon loaning a book, a printable loan slip in pdf format will be generated.

LoanSlip
Figure 2. Printable PDF version of a Loan Slip

Contributions to the Developer Guide

This section highlights my contributions to the Developer Guide. The following are excerpts from the 'LiBerry' Developer Guide. These excerpts show the additions I have made for the 'Add Book' and 'Generate Loan Slip' feature.