Nanxi's Project Portfolio Page
Project: SmartLib
SmartLib is a desktop app for managing private book loaning services owning less than 10,000 books, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SmartLib can systematically manage your books and borrowers’ information in a more efficient manner than traditional GUI apps.
Given below are my contributions to the project.
- New Feature: Added the ability to add a reader into the SmartLib registered reader base.
- What it does: allows the user to add a reader and stores his/her personal information such as email, phone number, address etc into the SmartLib’s registered reader base.
- Justification: This feature is essential for the product because a user can then provide book rental services to these readers and keep track of borrow and return of the books.
- Highlights: This enhancement is very useful for the user’s customer service and business activities. For example, the user can tag a reader as vip and provide privileged services to this reader.
- Credits: AB3’s prior implementation of
add
guided the implementation of theaddreader
command.
- New Feature: Added the ability to delete a reader from the SmartLib’s registered reader base.
- What it does: Allows the user to delete a reader and all his/her stored information from the SmartLib’s registered reader base, by the reader’s index on SmartLib’s displayed reader list.
- Justification: This feature is essential for the product because a user can then delete a reader if he/she no longer wish to have any services from the user.
In addition, if the user make any mistake during
addreader
, he/she can rectify by deleting and then adding the correct information again. - Highlights: This enhancement has also taken care of the situation when a reader is deleted before he/she returns the borrowed books. Hence, the user can only delete readers who have no unreturned books.
- Credits: AB3’s prior implementation of
delete
guided the implementation of thedeletereader
command.
-
Code contributed: RepoSense link
- Project management:
- Helped manage releases
v1.1
-v1.4
(5 milestones) on GitHub - In charge of code quality and documentation comments
- Helped manage releases
- Enhancements to existing features:
- Refactor the borrow command to accept book barcode and reader name as parameters to prevent mixing of books of the same title (Pull request #293).
- Refactor the return command to accept book barcode only to increase efficiency and prevent mixing of books of the same title (Pull request #177)
- Wrote additional tests for
Book
class to increase coverage (Pull requests #141, #146). - Wrote additional tests for
findrecord
andfindbook
features to increase coverage (Pull request #326). - Improve the
findbook
feature to enable searching books through book title, publisher, author, isbn, or genre (Pull request #158()) - Improve the code quality by adopting SLAP principle and Single Responsibility Principle (Pull request #313)
- Documentation:
- Community:
- Reported bugs and suggestions for other teams in the class (examples: PE-D)