Building data products with Python

The following is a repository containing the code for a wine reviews and recommendations web application, in different stages as git tags. The idea is that you can follow the tutorials through the tags listed below, and learn the different concepts explained in them. We will use Python technologies such as Django, Pandas, or Scikit-learn. The tutorials also include instructions on how to deploy the web using a Koding account.


The following tutorials will guide you through each of the previous Git tags while learning different concepts of data product development with Python.

A Wine Review Website using Django and Bootstrap

Adding User management

Providing wine recommendations using K-Means


  • stage-0: an empty repo.
  • stage-0.1: a Django project with one app called reviews. The app defines model entities.
  • stage-0.2: admin site up and running for our model entitities Wine and Review.
  • stage-0.3: views and templates are available.
  • stage-0.4: add review form added.
  • stage-0.5: template reuse.
  • stage-1: added Bootstrap 3 for Django.
  • stage-1.1: add_review now requires login. Added login templates and menu sesion links.
  • stage-1.2: a user reviews page created.
  • stage-2: user management done.
  • stage-2.1: Scripts to load CSV available + data loaded.
  • stage-2.2: An empty wine suggestions view has been added.
  • stage-2.3: Suggestions view now shows wines not reviewed by the user.
  • stage-2.4: Added cluster model object and manually created three clusters.
  • stage-2.5: Suggestions view now makes use of cluster information.
  • stage-3: K-means clustering based recommendations provided.