Ng Yan Jia's Project Portfolio Page
Project: BookFace
-
Overview: BookFace replaces a paper-based system or manual tracking of books and patrons, providing greater speed/efficiency to librarians.
-
Summary of Contributions:
- Code contributed: Link to code
- New Feature: Implemented the loan feature. #111, #115, #123, #152, #161
- What it does: Allows the user to loan books to a patron.
- Justification: The user, presumably a librarian, would want to have a feature that allows them to loan out books to patrons who visit their library so that he/she can keep track of books that are loaned out.
- Highlights: The user can specify return dates that books are supposed to return by, and has a default date of 14 days.The loan
functionality was difficult to implement due to the high number of bugs that came up relating to
- The difficulty of implementing the
PrettyTimeParser
library as it had no documentation or user guide, and commands it supported had to be tried out manually, and it did not parse certain date formats correctly. - It was an entirely new feature that had associations between the
Person
and theBook
class.
- The difficulty of implementing the
- Credits:
PrettyTimeParser
was used for its Natural Language Processing feature which supports a variety of formats for parsing.
- Enhancements implemented: Most of the loan feature including return date functionality
- Contributions to the UG: Added documentation of
return
,loan
,find user
,find book
,list users
,list books
features. #161, #66 - Contributions to the DG: Update of Model diagram, addition of
loan
andreturn
implementation (as well as UML diagrams inside) #129 - Contributions to team-based tasks: Renaming the product, slight refactoring of codebase, added
PrettyTimeParser
(external library), some reminder of incoming deadlines in group chat, tagging of some issues with correct tags (eg. v1.3 milestone) - Review/mentoring contributions: Examples of PR review: PR review 1, PR review 2
- Contributions beyond the project team: Reported 24 bugs for PE-D
- Tools: Integrated a third party library (
PrettyTimeParser
) to the project