In unit testing, we have tested units of code. In end-to-end testing, we are going to test a complete feature such as login or logout, or fetch IP address, and so on. Here we are going to look at the app as a whole instead of just one piece of functionality. Some people refer to this as integration testing as well.
We are going to use Protractor to help us with the execution of E2E tests. We are still going to use Jasmine to describe our tests, only the test runner changes from Karma to Protractor.
Quoting from http://www.protractortest.org:
"Protractor is an end-to-end test framework for Angular apps. Protractor runs tests against your app running in a real browser, interacting with it as a user would."
YouTube has quite a lot of videos which explain Protractor and Selenium in depth as well as various APIs of Protractor that can be used for testing, in case you want more information on Protractor...