Giter Club home page Giter Club logo

book_reviews's Introduction

Book Reviews

Overview

The website features 5000 books that are stored on the PostgreSQL database. Users can look up and review the books, as well as read general information and reviews from other users. The application utilizes the Goodreads API for fetching extra information. Also, the web application offers its own API.

Overview Video

Watch the Overview Video

Features

  • Registration: Users are able to register for the website, providing first and last names, a username and password.
  • Login: Users, once registered, are able to log into website with their username and password.
  • Logout: Logged in users are able to log out of the site.
  • Import: From books.csv, import.py imports the data entries into PostgreSQL according to the ERD in db-books-ERD.png Alt text
  • Search: Once a user has logged in, they are be taken to a page where they can search for a book. Users are able to type in the ISBN number of a book, the title of a book, or the author of a book. After performing the search, the website displays a list of possible matching results, or some sort of message if there were no matches. If the user typed in only part of a title, ISBN, or author name, the search page finds matches for those as well!
  • Book Page: When users click on a book from the results of the search page, they are be taken to a book page, with details about the book: its title, author, publication year, ISBN number, and any reviews that users have left for the book on the website.
  • Review Submission: On the book page, users are able to submit a review: consisting of a rating on a scale of 1 to 5, as well as a text component to the review where the user can write their opinion about a book. Users should are not able to submit multiple reviews for the same book.
  • Goodreads Review Data: The book page also displays (if available) the average rating and number of ratings the work has received from Goodreads.
  • API Access: If users make a GET request to the website’s /api/<isbn> route, where is an ISBN number, the website returns a JSON response containing the book’s title, author, publication date, ISBN number, review count, and average score. For example:
{
    "title": "Memory",
    "author": "Doug Lloyd",
    "year": 2015,
    "isbn": "1632168146",
    "review_count": 28,
    "average_score": 5.0
}

Proceed to download

  1. Clone the repository

  2. In your terminal window, navigate into the project

  3. Run pip install -r requirements.txt to installe the necessary Python packages

  4. Set the environment variables:

    • set FLASK_APP=application.py
    • set DATABASE_URL="link or path to yor database
    • KEY = is your API key, will give you the review and rating data for the book with the provided ISBN number (register at goodreads.com)
  5. Run create.sql against your database to create the necessary tables

  6. Run python import.py to import a spreadsheet in CSV format of 5000 different books to your database

  7. Finally execute flask run command in your terminal to start the server

book_reviews's People

Contributors

nikita-kotsehub avatar

Watchers

 avatar

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.