Code Monkey home page Code Monkey logo

cs4347.002-helium's Introduction

Cs4347.002-Helium Library Application

Requirements and Installation

The application has been tested with Python 3.10.7 on Windows 10, so that is the recommended setup. You will also need a web-browser, such as Firefox or Chrome, and the packages listed in requirements.txt. Once you have installed Python, you can get the requirements by opening a command prompt in the project folder and running pip install -r requirements.txt

Running and Operating

Run start.bat to start the server. Then, copy and paste the URL it gives you into your browser (Likely http://localhost:5000) You can also reset the database to it's initial state on server startup by opening a command prompt in the project folder and running python main.py db-reset instead of running start.bat.

The Application

This SQL programming project involves the creation of a database host application that interfaces with a backend SQL database implementing a Library Management System. Users of the system are understood to be librarians.

Book Search

Given any combination of ISBN, title, and/or Author(s).

Book Search

Book Loans

Checking Out

Checking Out

Checking In

Checking In

Borrower Management

Create Borrower

Create Borrower

Fines

Assessed at $0.25/day late. Fines can only be paid for books that have been Checked in.

Fines

cs4347.002-helium's People

Contributors

adammcadamson avatar pureasbestos avatar victoriadawn avatar kryptonc-02 avatar

Watchers

 avatar  avatar  avatar

cs4347.002-helium's Issues

B5: Book Availability

Include Book Availabilty in [GET] /book/search response.

Our assumption is that there is only one copy of any book in the database. We can change that if we like, we'll just need a new attribute (num_copies), and to check the count of open book_loans against it.

B4b: [POST] /book/checkout endpoint

[POST] /book/checkout endpoint

  • Checkout book with book data from /book/search and a BORROWER(Card_no)
  • Borrowers can only checkout 3 books (must check for borrower and date_in==NULL).
  • Useful error on failed checkout

B3a: [GET] /fines/all endpoint

[GET] /fines/all endpoint (Frontend Dependency)

  • Return all fines as an array. (The frontend can handle everything else)

/book/search Pagination

Right now, we return the first X number of books that match the query. We probably want to enable full pagination.
It might be easiest to implement with the limit/offset SQL clauses.

If we go that route:

  • Implement Limit/Offset Pagination
  • Add offset query parameter

B: Data Cleanup

Known Issues:


  • & -> &
  • > -> >
  • &lt; -> <
  • Escape '

  • Book Cover_url Attribute

to get book cover for:

0373835426 9780373835423 Witchcraft / Last Chance Cafe / Bayou Reunion Jayne Ann Krentz,Amanda Stevens,Rebecca York http://www.openisbn.com/cover/0373835426_72.jpg Harlequin 352

replace
http://www.openisbn.com/cover/0373835426_72.jpg

with
https://images.isbndb.com/covers/54/23/9780373835423.jpg

To generate the url, use last 4 of ISBN13 (i.e. ISBN13 = 9999999994321):
https://images.isbndb.com/covers/43/21/9999999994321.jpg

Or more generally:
https://images.isbndb.com/covers/ISBN13[9:10]/ISBN13[11:12]/ISBN13.jpg

B3b: [GET] /book/search endpoint

[GET] /book/search endpoint (Frontend Dependency)

  • Search for book by ISBN, title, and/ or Author(s)
  • Handle queries from a single text search field and be case insensitive.
  • Substring matching

B2: /borrower/create endpoint

[POST] /borrower/create endpoint

  • Create borrowers with name, SSN, address required.
  • Autogenerate new card_no primary keys for each borrower
  • Reject on same SSN and return useful error message

B3c: [GET] /book/checkin endpoint

[GET] /book/checkin endpoint (Frontend Dependency)

  • Search for BOOK_LOANS tuples by any of BOOKS.book_id, BORROWER.card_no, and/or any substring of BORROWER name.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.