An introduction to AngularJS