tp

Joanne Ang - Project Portfolio Page

Overview

SysLib is a command-line (CLI) library management software tailored for system librarians, especially those who are fast typists. It offers a wide range of features to manage library resources and events, from adding, editing, viewing, searching, deleting, to saving data file.

Summary of Contributions

Code Contributed

View the code I contributed here.

Enhancements Implemented

Enhancements:

  1. Resource classes
  2. Add feature for resources
  3. Parser for adding resources
  4. Exception class
  5. Output of messages

Details:

1. Resource classes

Implementation: Book, EBook, CD, Magazine, EMagazine, Newspaper, ENewspaper classes

Implemented the different resource classes for each resource has different attributes.

2. Add feature for resources

Implementation: AddCommand, CreateResource classes

Implemented the add feature to add resources into a list of all the resources in the library.

3. Parser for adding resources

Implementation: ParseResource, ParseAttribute, ParseBook, ParseEBook, ParseCD, ParseMagazine, ParseEMagazine, ParseNewspaper, ParseENewspaper classes & parseAddCommand(), checkFirstItem() in Parser class

Implemented the validation and error handling of user input for the add feature. Checks the user input for all attributes in all resources. Returns error messages when invalid.

Validation checks for:

Limitations of input were reduced.

4. Exception class

Implementation: SysLibException class

Catches exceptions related to SysLib and prevents program from exiting due to exceptions. Returns error messages to user so that the exception can be prevented with the right user input.

5. Output of messages

Implementation: Messages class & formatSeparatorLineDivider() in MessageFormatter class

Messages strings are stored in Messages. It consists of mainly error, warning and assertion messages. formatSeparatorLineDivider() formats the messages neatly for output to user.

Contributions to the UG

Sections contributed:

Contributions to the DG

Sections contributed:

Contributions to Team-Based Tasks

Reviewing / Mentoring Contributions

Contributions Beyond the Project Team