Single-page interface, using JSON API and AngularJS (first-pass, naive translation)
Use ngResource