Coder Social home page Coder Social logo

vshelke / bookpro Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 16.0 208 KB

๐Ÿ“š Book shopping comparision tool.

Home Page: https://book-pro.herokuapp.com/

License: GNU Lesser General Public License v2.1

Python 62.90% HTML 36.47% Dockerfile 0.62%
django comparison-tool herokuapp portfolio python

bookpro's People

Contributors

comets1 avatar dependabot[bot] avatar dibiex avatar disisisid avatar idlesolution avatar jakes44 avatar leandrovianna avatar naveenkhasyap avatar notepad104 avatar omkar-dsd avatar pattu777 avatar ravitripathi avatar s-surineni avatar vshelke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bookpro's Issues

Add price range filter

Add a new price filter widget in the template find_books/results.html to be able to filter the books
according to the price range.
The placement of the filter can be near the top search bar in results.html page or any other place you find it perfect.

Note:- You can use any library you like or can come up with a custom implementation to learn.

Improve search results

Currently when a book is searched there are many related book that come up in the results and the relevant ones are pushed back due to sorting by price.

Eg:-
screenshot_2018-10-22_at_12 12 23_am

Come up with a solution where the exact results are shown first and the related results are shown in a subsequent section with heading Related Books

Type:

  • Bug
  • New Feature
  • Improvement

Pointers to start with:

  • In this file the search function is responsible for getting the data from sources.
  • Check the all_items and relevant variables values and render them accordingly in the template find_books/results.html in different sections.

Add new integration for bookswagon.com

Overview

BookPro integrations are python classes inherited from thread class. These classes make request to the given endpoint and parse a list of books in a dictionary which is later used for further processing of results. These integrations help the BookPro to extend its search area to other websites.

The already implemented integrations for some major sites are available here.

Assigned to

@Naveenkhasyap

Bookswagon Integration specs

data = {
    'title': '',
    'author': '',
    'offer_link': '',
    'link': '',
    'image': '',
    'price': None,
    'ISBN': '',
    'provider': ''
}

Steps

  • Create file in find_books/integrations/bookswagon.py
  • Complete the class BooksWagon(Thread) in bookswagon.py
  • Complete the parse_product function to pull the details specified in data dictionary from the soup.
  • Append the parsed items in self.items
  • In find_books/integrations/__init__.py put from .bookswagon import BooksWagon
  • Import the class in find_books/views.py and use it in the search function to test the results.
  • Run and check if results are shown.

When click in a book, open information of a different book

Describe the bug
At related book section, when I click on the cover of a book, appear information of a different book.

To Reproduce
Steps to reproduce the behavior:

  1. Do a search.
  2. In the list, click on a book of "Related books" section.
  3. Appear information about a different book, this is the error.

Expected behavior
I expected that appear information about the book I clicked.

Desktop (please complete the following information):

  • OS: Debian
  • Browser: Firefox 62

Add new integration for booksmela.com

Overview

BookPro integrations are python classes inherited from thread class. These classes make request to the given endpoint and parse a list of books in a dictionary which is later used for further processing of results. These integrations help the BookPro to extend its search area to other websites.

The already implemented integrations for some major sites are available here.

Booksmela Integration specs

  • url = https://www.booksmela.com/catalogsearch/result/?q=<QUERY_HERE> without angle brackets.
  • Refer BeautifulSoup Implementation
  • data dictionary
data = {
    'title': '',
    'author': '',
    'offer_link': '',
    'link': '',
    'image': '',
    'price': None,
    'ISBN': '',
    'provider': ''
}

Steps

  • Create file in find_books/integrations/booksmela.py
  • Complete the class BooksMela (Thread) in booksmela.py
  • Complete the parse_product function to pull the details specified in data dictionary from the soup.
  • Append the parsed items in self.items
  • In find_books/integrations/__init__.py put from .booksmela import BooksMela
  • Import the class in find_books/views.py and use it in the search function to test the results.
  • Run and check if results are shown.

Add new integration for snapdeal.com

Overview

BookPro integrations are python classes inherited from thread class. These classes make request to the given endpoint and parse a list of books in a dictionary which is later used for further processing of results. These integrations help the BookPro to extend its search area to other websites.

The already implemented integrations for some major sites are available here.

Snapdeal Integration specs

  • url = https://www.snapdeal.com/search?keyword=<QUERY_HERE> without angle brackets.
  • more parameters for url
    • noOfResults=30
    • sort=rlvncy
  • Refer BeautifulSoup Implementation
  • data dictionary
data = {
    'title': '',
    'author': '',
    'offer_link': '',
    'link': '',
    'image': '',
    'price': None,
    'ISBN': '',
    'provider': ''
}

Steps

  • Create file in find_books/integrations/snapdeal.py
  • Complete the class Snapdeal(Thread) in snapdeal.py
  • Complete the parse_product function to pull the details specified in data dictionary from the soup.
  • Append the parsed items in self.items
  • In find_books/integrations/__init__.py put from .snapdeal import Snapdeal
  • Import the class in find_books/views.py and use it in the search function to test the results.
  • Run and check if results are shown.

Dockerize the django app.

Tasklist:

  • Created a Dockerfile which can build and run the project.
  • Added docker build and run instructions to the README.md file.

Note: Keep the Dockerfile in the root folder and use python:3.6.6-slim as base image.

Support isbn search

Is your feature request related to a problem? Please describe.
Search by free text returns too many results. In my opinion, when user is about to comparing
the price, the user has already found the book he or she want

Describe the solution you'd like
add an option "By ISBN" in the search field.

Re:clarifying README for Windows install

I would like to have the instructions developing in docker clarified for how to develop. Please add what docker is and a link to its download to the README, as well as issues that may occur when attempting to develop in a windows environment. When attempting to setup my environment to develop using docker, I got the error that my source path did not exist when attempting to use the [docker run] command.

Add Google style Python docstrings to functions

The code in the repository has to be documented in accordance with the Google style docstrings.

You can take any one of the files below and start documenting.

Areas Covered:

  • find_books/views.py(@Hax7 )
  • find_books/integrations/amazon.py
  • find_books/integrations/flipkart.py
  • find_books/integrations/infibeam.py

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.