Teo Chuan Kai - Project Portfolio Page
Overview
Libmgr is a desktop app for managing the inventory of libraries, optimised for use via a Command Line Interface (CLI). Designed for fast typists, it can help to augment the day-to-day tasks of a librarian and can help them to get tasks done in an efficient manner.
Summary of Contributions
Code Contributed
Click to view code contribution on RepoSense
Enhancements Implemented
-
Added subclasses that extend the main
Itemclass by silin, which include theAudio,Book,Magazine,VideoandMiscellaneousclasses. (#62) -
Added the
TextUIclass, handling inputs from the user and displaying messages from the application. (#15) -
Extended on silin’s
AddCommandand all child classes (AddAudioCommand,AddBookCommand,AddMagazineCommand,AddMiscellaneousCommand,AddVideoCommand) (#87). It allows users to creating new items of different categories (audio, book, magazine, video, miscellaneous) and insert them into the catalogue. -
Implemented
RemoveCommandclass (#31). Provides method to remove a specific item from the catalogue. -
Added
UnreserveCommand(#92). Provides functionality to make available an item that has been previously reserved by some user, in the case where a previous reservation has been invalidated or cancelled, it allows the referenced item to be loaned out by other users. -
Implemented
Parserclass to handle user commands (#174). Identifies the specific command issued by the user and Separates the attributes or flags and the related values supplied by the user. It also handles invalid entries such as empty or duplicate attributes. -
Implemented
StorageandJsonFactoryclasses (#176). Thestorageclass acts as an interface thatlibmgruses to perform reading and writing operations to and fromdata.json. Within this process, theJsonFactoryis used to serialize and deserialize the contents of the catalogue.
Contributions to the User Guide
- Created base format of the Markdown document including different section templates, table of contents and FAQ. (#84).
- Added usage for
rm,resandunrescommands. (#104). - Added command usage summary table (#171).
Contributions to the Developer Guide
- Created base format of the Markdown document including different sections and table of contents. (#191).
- Designed high-level architecture diagram for the program (#191).
- Added the following diagrams (#191).
- Application launch and overall component interaction sequence diagrams and accompanying descriptions.
- Data, storage and UI components
- Sequence and object diagram for usage of add command
add b t/1984 i/91 a/George Orwell - Sequence diagram for operations involved when
data.jsonis read from or written to.
Contributions to team-based-tasks
- Implemented skeleton code for the team project which included
ui,commandsanddatapackages. - Helped in maintaining the issue tracker.
- Managed
v1.0andv2.0releases. - Incorporated
Jackson DatabindandJackson Datatype JSR310to simplify serialization and deserialization of items within the catalogue. - Added assertions and logging.