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:
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.
-
-
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. Inv1.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:
-
Wrote the documentation for the
Model
component of the system. -
Described the 'Generate Loan Slip' feature and its design considerations.
-
-
Community:
-
Tools:
-
Integrated a third party library (iText 7) to the project in this Pull Request
-
-
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. |
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
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.
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. |