Step 1 - 7 of official AngularJS tutorial
Step 8 - End
Some minor details... layouting, styling, etc