Skip to content

atee001/LibraryDatabase

Repository files navigation

Library System

Authors: Andrew Tee Rohan Behera Cameron Tsai

Project Description

  • Why is it important or interesting to you?

    • The ability to catagorize thousands of books is interesting as we are able to track a huge amount of data. This is a real life application of how software can benefit someone's life. A typical library catalog allows users to search for books by title, author, publisher, etc. For our project we will be developing a simple library database where the user can checkout books, find new books, and manage their account balance.
  • What languages/tools/technologies do you plan to use? (This list may change over the course of the project)

    • We plan to use C++, vim as a text editor, and Linux as the Operating System. The user will be able to interact with the program through a terminal window using a set of predefined commands.
  • What will be the input/output of your project?

    • Input: Search query for books, funds, inputing books.
    • Output: Account information, displaying books, availibility of books.
  • What are the two design patterns you will be using? For each design pattern you must explain in 4-5 sentences:

    • We will use strategy and composite for the searchQuery. The composite pattern is the searchOR and searchAND which contains an aggregate of the interface SearchStrat. The strategy pattern is the searchByAuthor, searchByGenre, and searchByTitle. The SearchAND and SearchOR is considered a composite since the class is a composite of Search interface pointers. The leafs are the SearchByAuthor, SearchByGenre, and SearchByTitle. The strategy pattern is allowing the user to dynamically choose which searchStrategy they want. The factory pattern is used to display the search interface to the user and the conditions for an invalid search query.

Class Diagram

Final Project New (3).pdf

Screenshots

User Interface: Screen Shot 2021-06-01 at 10 04 09 AM Screen Shot 2021-06-01 at 10 06 08 AM Screen Shot 2021-06-01 at 10 22 19 AM Screen Shot 2021-06-01 at 10 25 16 AM Screen Shot 2021-06-01 at 10 29 03 AM Librarian Interface: Screenshot (391) SearchBox: Screenshot (394) Removing Book from Library: Screenshot (396) Displaying all Library Books:

Screenshot (397)

Installation/Usage

Click master branch. Click code and then under clone and HTTPS copy the link. Open a terminal window on your computer and type the command git clone --recursive then a space and then paste the link. Type cd final-project-rbehe002_atee001_-ctsai081 to get into the directory. Type cmake3 . and then make to compile. Then type ./driver user.txt to run the program.

Testing

Our project was test/validated with the GoogleTest C++ framework.

About

Library System made using design patterns

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •