A comprehensive overview of AngularJS