One challenge when learning AngularJS is that most examples are trivial. It is difficult to find materials on learning "real-world" patterns and practices.
The joy of Angular is that you are free to build an application in any form that you wish. MCV, MVVM, MVP, MVwhatever... You get to decide! Freedom is wonderful.
"But what if I choose poorly?"
This series will demonstrate how to organize and tool your AngularJS application for real work. It's an opinion. A way that has worked on our own projects. Use it as a guide for building the solution that best suits the needs of your projects. All projects are different, but with the right set of modular tools you can build a foundation for success.
Building on the previous series, we are going to refactor Eggly to be modular and scalable. By introducing modules and sub-modules, domain models and state management with ui-router, we will start to establish best practices on how an AngularJS application should not only function, but fit together.
Be sure to check out Part 1: AngularJS App From Scratch: Getting Started