Giter Site home page Giter Site logo

checkjebon's Introduction

Checkjebon.nl

Comparing food prices across multiple supermarkets is made a lot simpler using Checkjebon.nl. Simply scan your receipt, or enter your shopping list manually and you can instantly compare how much you would spend at each supermarket on the exact same products. You can query for generic products like milk or be more exact and specify the brand and amount.

The project can freely be used on https://www.checkjebon.nl/

This will bring up the amount due per supermarket for the shopping list.

After setting up your shopping list and selecting your preferred supermarket, simply check off items as you collect them from the store.

You can share your current shopping list with family members or friends at any time, or use the sharing functionality to use the shopping list created on your desktop or tablet to your phone as you go out to get groceries.

Supported supermarkets

Checkjebon.nl is aimed at the Dutch market, and currently aims to provide accurate and recent prices for:

Some supermarkets do not provide prices for their products online or are not yet indexed on a daily basis, and therefor are currently not included in the data set:

  • Boni - No online assortment.
  • Boon's Markt (MCD) - No online assortment.
  • Butlon - Not yet indexed.
  • Crisp - No online assortment without an account.
  • Dagwinkel - Not yet indexed.
  • EkoPlaza - Not yet indexed.
  • Flink - Not yet indexed.
  • GORILLAS - No online assortment without an account.
  • Hanos - No online assortment without an account.
  • Makro - Not yet indexed.
  • Marqt - No online assortment.
  • LIDL - No online assortment.
  • Nettorama - No online assortment.
  • Odin - Not yet indexed.
  • Poiesz - Not yet indexed.
  • Sligro - No online assortment without an account.

Product selection algorithm

For any product added to the shopping list, Checkjebon.nl tries to take a best guess at what you actually meant. Sometimes this may result in not seeing what you expect, simply because other products come up cheaper. In general, first an exact match by name is attempted. If there was no exact match, a fuzzy search will be applied, compiling a list of all products that contain the words from the shopping list item. The fuzzy search finds products based on if they contain all the letters from your shopping list item in the same order as they are given, but not necessarily right next to each other. For example, milk will find skiM mILK as well as whole MILK. When an amount in liter or kilogram is given, all products below the given amount are filtered out unless this returns zero results, in which case the filter is undone. Finally, products are first ordered by the string length of the fuzzy search (so whole MILK=>4 goes before skiM mILK=>6) in an attempt to find the closed possible match, those results are then ordered by price, and finally the top item from that list is returned.

The algorithm works better when supplying exactly what you are looking for. Note that generic names like milk are not well suited for this even though in in day to day live that would be enough to write down since you will make the choice between skim milk or whole milk once you get to the cooling compartment. The same goes for products like butter (salted butter, whipped butter, cream butter, etc).

When no prices are found for a specific product for any of the given supermarkets, a price estimate is used based on the average price for that product among other supermarkets.

Receipt scanning

When scanning receipts, Tesseract.js is used in order to detect text. After that, some processing is done to align the recognized text with true product names. Adjust any errors where necessary.

Privacy

When entering your shopping list, you data never leaves your computer. All processing is done in the browser. This means no one can keep track of your purchases or build an advertisement profile based on your searches. Upon opening Checkjebon.nl, all available prices will be downloaded. You will notice that reloading the page will not empty your shopping list; this is stored in your browser using the localStorage API.

Open data

Product price data is updated frequently and may be reused in other projects. For example, you can get a price alert when a product you don't buy often is discounted, such as cleaning supplies or personal care products, or more expensive products with long expiration dates such as (soft) drinks or bake-off pizzas. Data journalists may use the data to see trends or verify claims from supermarkets.

checkjebon's People

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.