Improve this doc

# Guide to AngularJS Documentation

Everything you need to know about AngularJS

- What is AngularJS?
- Conceptual Overview

## Tutorials

- Official AngularJS Tutorial
- 10 Reasons Why You Should Use AngularJS
- 10 Reasons Why Developers Should Learn AngularJS
- Design Principles of AngularJS (video)
- Fundamentals in 60 Minutes (video)
- For folks with a jQuery background

## Core Concepts

### Templates

In Angular applications, you move the job of filling page templates with data from the server to the client. The result is a system better structured for dynamic page updates. Below are the core features you'll use.

- Data binding
- Expressions
- Directives
- Views and routes (see the example)
- Filters
- Forms and Concepts of AngularJS Forms

### Application Structure

- Blog post: When to use directives, controllers or services
- App wiring: Dependency injection
- Exposing model to templates: Scopes
- Communicating with servers: $http, $resource

### Other AngularJS Features

- Animation: Core concepts, ngAnimate API, and Animation in AngularJS 1.2
- Security: Strict Contextual Escaping, Content Security Policy, $sanitize, video
- Internationalization and Localization: Angular Guide to i18n and l10n, date filter, currency filter, Creating multilingual support
- Mobile: Touch events

### Testing

- Unit testing: Using Karma (video), Unit testing, Testing services, Karma in Webstorm
- Scenario testing: Protractor

## Specific Topics

- Login: Google example, Facebook example, authentication strategy, unix-style authorization
- Mobile: Angular on Mobile Guide, PhoneGap
- Other Languages: CoffeeScript, Dart
- Realtime: Socket.io, OmniBinder
- Visualization: SVG, D3.js
- Local Storage and session: ngStorage

## Tools

- Debugging: Batarang
- Testing: Karma, Protractor
- Editor support: Webstorm (and video), Sublime Text, Visual Studio
- Workflow: Yeoman.io and Angular Yeoman Tutorial

## Complementary Libraries

This is a short list of libraries with specific support and documentation for working with Angular. You can find a full list of all known Angular external libraries at ngmodules.org.

- Internationalization: angular-translate, angular-gettext
- RESTful services: Restangular
- SQL and NoSQL backends: BreezeJS, AngularFire
- UI Widgets: KendoUI, UI Bootstrap, Wijmo, ngTagsInput
- Advanced Routing: UI-Router
- Maps: UI-Map (Google Maps)

## Deployment

### General

- Javascript minification: Background, ngmin automation tool
- Analytics and Logging: Angularyitcs (Google Analytics), Angulartics (Analytics), Logging Client-Side Errors
- SEO: By hand, prerender.io, Brombone, SEO.js, SEO4Ajax

### Server-Specific

- Django: Tutorial, Integrating AngularJS with Django, Getting Started with Django Rest Framework and AngularJS
- FireBase: AngularFire, Realtime Apps with AngularJS and FireBase (video)
- Google Cloud Platform: with Cloud Endpoints, with Go
- Hood.ie: 60 Minutes to Awesome
- MEAN Stack: Blog post, Setup, GDL Video
- Rails: Tutorial, AngularJS with Rails4, angularjs-rails
- PHP: Building a RESTful web service, End to End with Laravel 4 (video)

## Learning Resources

### Books

- AngularJS by Brad Green and Shyam Seshadri
- Mastering Web App Development by Pawel Kozlowski and Pete Bacon Darwin
- AngularJS Directives by Alex Vanston
- Recipes With AngularJS by Frederik Dietz
- Developing an AngularJS Edge by Christopher Hiller
- ng-book: The Complete Book on AngularJS by Ari Lerner

### Videos:

- egghead.io
- Angular on YouTube

### Courses

- Free online: thinkster.io, CodeAcademy CodeSchool
- Paid online: Pluralsite (3 courses), Tuts+, lynda.com WintellectNOW (4 lessons)
- Paid onsite: angularbootcamp.com

## Getting Help

The recipe for getting help on your unique issue is to create an example that could work (even if it doesn't) in a shareable example on Plunker, JSFiddle, or similar site and then post to one of the following:

- Stackoverflow.com
- AngularJS mailing list
- AngularJS IRC channel

## Social Channels

- Daily updates: Google+ or Twitter
- Weekly newsletter: ng-newsletter
- Meetups: meetup.com
- Official news and releases: AngularJS Blog

## Contributing to AngularJS

Though we have a core group of core contributors at Google, Angular is an open source project with hundreds of contributors. We'd love you to be one of them. When you're ready, please read the Guide for contributing to AngularJS.

## Final Bits

Didn't find what you're looking for here? Check out AngularJS-Learning for an even more comprehensive list of links to videos, tutorials, and blog posts.

If you have awesome AngularJS resources that belong on this page, please tell us about them on Google+ or Twitter.