Based on AngularJS with Ruby on Rails by David Bryant Copeland