AngularJS is a javascript framework using the MVC pattern.
You could use it to implement any functionality you have listed above.
E.g. There is the concept of a "router" in which you can define the routes (login page, billing, product search) for your application including information about if somebody is allowed to see the page or not (keyword: resolve-tag). In your views you could then define where people get when they click on links/buttons.
AngularJS works well with JQuery and JQueryUI, so you would need to adopt your views a little bit in order to make use of AngularJSs capabilities e.g. two-way model-binding, repeaters, evaluation statements and so on. If you dont want to do that you could use AngularJS to do the logic part and just send AJAX requests to a server and process the result, so that you use JQuery to do something with the result.
AngularJS has not capabilities to directly access databases except in-built browser database. So you would need a webservice to get some JSON or XML back. Which backend you are using doesnt matter. I have done projects using a .NET or Java or Ruby backend. In the end its all about AJAX and JSON, right?
Generally spoken: I am using AngularJS to build front-end logic and sometimes even the basic UI content. If I need special controls I make use of third-party UI libraries. Because of the easy model binding I get all the values reflected in my controllers easily. So for me AngularJS is a great framework to build web applications easily.
Hope that helps.
Cheers