Cool! Doing this from scratch is great for learning.
I wrote the same article and demo a month ago, albiet a more comprehensive and complete approach using Mezzanine (a Django based CMS). The article focuses on how most of the features needed for something like this come out of the box with Mezzanine:
http://blog.jupo.org/2013/04/30/building-social-apps-with-me...