My roommate needed help with building a web scraper. As a result of various
constraints, we ended up using Heroku. There was, however, a database row limit
that we had to work around. It turned out to be a nice opportunity to play with
the new PostgreSQL 9.5 INSERT ... ON CONFLICT DO UPDATE, also known as UPSERT,
functionality. The goal of this article is to introduce UPSERT to you via a
practical example.

tl;dr: in the first year of medical school, I built an application that helps
fellow students and myself with studying anatomy. The answers of the last exam,
submitted by students while revising, have been visualized with Gource. Please
check out the YouTube video for the result: