Data Model - carsonmcdonald/Python-Flask-neo4j-Heroku-Example GitHub Wiki
It is important when looking at the code and especially the Cypher queries that you understand the data model used in the app. The data model is made up of four entities: user, post, tag and bookmark. There are a number of relationships between each of these items and I have created a diagram that describes the entire thing to make it easier to understand:

In the source for the app you will find the data model represented by an initial set of data:
static/initialdata/
postnodes.dat.gz
usernodes.dat.gz
tagnodes.dat.gz
postchildparent.dat.gz
postparentchild.dat.gz
posttouser.dat.gz
tagtopost.dat.gz
usertopost.dat.gz
This initial set of data is loaded using the load.py script.
There is a second script called load-gremlin.py that is similar to load.py but uses the neo4j Gremlin plugin to load data in GraphML format. I have not included the GraphML version of the data in the source because it was over 60M in size. It may be helpful to know however that if you have graph data in that format you can load it. Also note that the Gremlin version uses auto-indexing since you can't supply an index in the GraphML file.
On Heroku the loading process can be run as a one off admin process. Using the GraphML file on Heroku would probably be ideal if size constraints are not an issue. Take note however that it can take a really long time to load data into neo4j and you don't get any direct feedback on progress if you use the Gremlin plugin.
All the data was generated from the Programmers Stack Exchange dump provided by the Stack Exchange CC data dump. To keep the load time sane it is limited to only the first 10,000 posts.