This is an example of an e-commerce website to sell designs for 3D printing using Authentise design streaming.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is a very simple example of an e-commerce website to sell designs for 3D printing using Authentise design streaming.

It's a work in progress, has a lot of restrictions and is meant to be a starting point for people building their own stores.

In addition to Authentise, the services used are: Stripe, Mailgun, and Heroku.

Learn more about Authentise design streaming at

Please leave your comments and suggestions. Feedback and pull requests are very welcome.

Special thanks to Jennie Lees. Most of this code was written under her watch and pretty much all this wonderful step-by-step tutorial has been written by her. Visit her portfolio:

Running locally

First, get it ready to run locally:

  • Signup for Go to Your account >> Account Settings >> API Keys. You will need this keys soon.

  • Sign up for Mailgun free account at You’ll need a few pieces of information from the Mailgun control panel before moving forward:

  1. API Key
  2. Sandbox Domain URL (should look like "" Both of these pieces of information can be found on the landing page of the Mailgun control panel.
$ psql
  • Now create the database typing:
create database store;
  • To exit postgres just type:
  • If you don't have a Github account, create one. If you don't know Git, do a quick online tutorial to figure out how it works. Help:

  • Fork this repo, and then clone it locally. Help:

  • On Terminal, go to your forked repo.

  • Also on Terminal, run the following code to install required dependencies: $ sudo pip install -r requirements.txt

  • Now export the variables for your Authentise, Mailgun and Stripe TEST keys:

$ export STRIPE_SECRET_KEY="your_stripe_TEST_secret_key"
$ export STRIPE_PUBLISHABLE_KEY="your_stripe_TEST_publishable_key"
$ export AUTHENTISE_API_KEY="your_authentise_key"
$ export MAILGUN_API_KEY="your_mailgun_api_key"
$ export MAILGUN_SANDBOX_DOMAIN_URL="your_mailgun_sandbox_domain_url"
  • On static/images replace the file cover.png with the image background for your home. Ideally, it should be at least 1800 px wide.

  • On, setup your shop name and tagline: Enter here your shop name and tagline shop_name = "Shop name" shop_tagline = "Best shop tagline ever"

  • Run on Terminal, to create the database: $ python

  • Push your changes to your repo:

$ git commit -a -m "My custom store"
$ git push

Deploying it

$ heroku login
Enter your Heroku credentials.
Authentication successful.
  • Install the Python package gunicorn
$ pip install gunicorn
  • Now you are going to create a 'Procfile' with the following content 'web: gunicorn app:app --log-file=-'. If you know how to do it, good. If you don't, here's a suggestion:
vim Procfile

You should be in the VIM editor now. Press the key 'i' in your keyboard.

Paste or type the followin line:

web: gunicorn app:app --log-file=-

Press the key 'ESC' on your keyboard.

Type ':w' and then ':q'

To make sure it's done, display the file content doing:

$ cat Procfile

Check this works with 'heroku local':

$ heroku local
  • If everything is fine, add 'Procfile' to the git repo.
$ git add Procfile
$ git commit -m "Getting ready for Heroku"
  • You are ready to create a new Heroku app. This creates a new app and sets up the Git remote heroku for you to push code to.
$ heroku create
  • Export the needed credentials as variables:
$ heroku config:set  STRIPE_SECRET_KEY="your_stripe_TEST_secret_key"
$ heroku config:set  STRIPE_PUBLISHABLE_KEY="your_stripe_TEST_publishable_key"
$ heroku config:set  AUTHENTISE_API_KEY="your_authentise_key"
$ heroku config:set  MAILGUN_API_KEY="your_mailgun_api_key"
$ heroku config:set  MAILGUN_SANDBOX_DOMAIN_URL="your_mailgun_sandbox_domain_url"
  • To deploy, push the code via Git:
$ git push heroku
  • When the deploy is done, you should see the URL of your new Heroku app:
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote: -----> Compressing... done, 37.2MB
remote: -----> Launching... done, v3
remote: deployed to Heroku
remote: Verifying deploy.... done.

You can then visit that URL in your browser.

  • You can rename your app to customize your URL:
$ heroku rename my_store_name

Now your URL will be ''.