In this course, you will learn about advanced communication of components and ways how the building blocks of your application can communicate smoothly with each other. We will highlight the structure and architecture in an Angular app, when and how libraries are useful, and mapping the state of the app using NgRx. Actions, Reducers, Selectors and Effects can be used to build your app in a clean and maintainable way and will be explained in a simple way in this course. Testing with Karma, Jasmine, and end-to-end testing with Cypress form the next building block of this course before we can create a build pipeline with GitHub Actions or Azure DevOps to create an artifact that runs on all of their environments without having to build the app multiple times. Angular is just more than a framework: it’s a complete platform! Let’s get to know it together.