Giter VIP home page Giter VIP logo

priceous's Introduction

priceous Build Status Coverage Status

Web-aggregator for whisky prices in ukrainian whisky shops

License

Copyright © 2016 mishadoff

Distributed under the Eclipse Public License either version 1.0

priceous's People

Contributors

mishadoff avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

priceous's Issues

HTTPS support

In 2019 it's a must. Users don't want to see Not Secure near your logo.

  • lets encrypt
  • yeah, lets

Automatic deploy on merge to master

When code is updated and merged back to master (either through PR or directly) we should build and redeploy artifacts to the server on OVH. Secrets store in Github Secrets

Reflect excise field in the UI

Since we have a lot of stores which sold items without excise it should be clear to the user what he is buying. Restaurants and Cafes require excise on the alcohol

Stats

Add solr collection with stats, where we can gather history stats for each scrapping process
Basic stats shall include

  • Total scrapping time
  • Total items count
  • Scrapping started
  • Scrapping finished
  • Per provider:
    • Start/Finish/Scrapping times
    • Total count
    • Data Coverage

Externalize appenders

Right now we writing to SOLR, which is obvlious, but would be good to produce CSV or XLS with daily updates

feature "Product page"

Default links from the search page route to the store, which is ok. But we should provide some icon to open a consolidated product page on our side. It should show description and other props as well.

Format notification email after scraping

When scrapping is finished we get an email with scraping results and possible errors. Would be good to have the email formatted as a table with a list of stores and their results.

History of price changes

Would be good to track price changes for the specific products. For example how much was the bottle of Glenfiddich 12 year ago?

Tracking can be registered two ways:

  • By store specific ID (Goodwine_12345)
  • By query (glenfiddich 12 0.7)

Result of tracking should be stored to separate solr collection and it should be a block at the stats page

[MVP 0.1] Whiskey Search

Epic task to release first minimum viable product which allows users to track prices for whisky for most popular online whisky shops in Ukraine.

  • Rest endpoints for /search functionality
  • Clean, shippable and generic code for all providers
  • Deploy everything to OVH
  • Scheduler for daily updates (and trackable via admin interface, forced update)
  • Monitoring (logs)

Implement caching

Query results can be cached for the same queries. When new data is available, we should invalidate cache.

Paging strategies

We have experienced a number of ways sites utilize paging for the products.
Let's implement the most common strategies, which can be reused by providers.

Feature "notify when price lowers"

When accounts available one of the user-specific features could be notify when price changes. For example you want to try out a new whisky but 1000 is a big price for it. You can get email or push (if mobile) about price drop.

feature "Random product"

It's kinda unclear do we need it or not but it's good for testing to have random button "Мне повезет"

Feature request: integrate with whiskybase

Whiskybase is a popular resource for whisky lovers which provides ratings, description, etc.
Would be good to provide options for users to see the whiskybase score, and possibly a link

Fix small corrections on search status bar

Sometimes we can see something like this:
"Найдено 1 товаров за 0.0 секунд."

  1. Change the plural/singluar form, especially having awesome cl-format function
  2. Revisit approach to show search time. Is it really needed?

Parallel scrapping configuration per store

Some stores work better with thread pool with size 20, some with 10, some do not allow more than 3 parralled connections, so would be good to have this configuration per provider.

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.