First cut at a web app using AngularJS