Following users

### ***DO NOT MERGE***

I recommend we do not merge this branch because there is significant functionality introduced that diverges from our app. I am including it here for reference.

There are substantial (!) Rails concepts that we need to both understand before moving forward. I would suggest starting your own branch from master and going through the code yourself. Afterwards we can go through it together and discuss.

Feel free to decline the pull request but keep this branch on GH.