AngularJS a great tool for building highly rich client-side web applications. HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop. As being a framework, it dictates us to follow some rules and a structured approach and simply offers so many features- Two-Way data binding, REST friendly, MVC-based Pattern, Deep Linking, Template, Form Validation, Dependency Injection, Localization, Full Testing Environment, Server Communication.