Have something interesting to share with Java Eastern Europe community?
Become a speaker now

Training “AngularJS: From Zero to Hero”

Target audience

Java developers who want to get familar with AngularJS or front-end developers who want to extend their knowledge with one more framework and try AngularJS in practice.


In this course we assume the attendees know nothing about AngularJS, so we will cover it from very basics to the advanced scenarios. We will also briefly revisit the most confusing JavaScript topics like closures, constructor functions and prototypal inheritance. During the course we will develop a single-page web application starting from “Hello World” and finishing with production-ready real-world application. We’ll leave no magic behind AngularJS two-way data binding and learn how AngularJS works under the hood. We’ll also master the tools that boost productivity in JavaScript environment. So, hopefully next time you need to develop a web app, you’ll pick AngularJS and deliver incomparably better product than you can do with plain JavaScript and jQuery.


The workshop includes up to 40% of the time hands-on exercises, so the attendees MUST bring and use their own laptops.

Required knowledge: familiarity with JavaScript basics and HTML, CSS basics.

Required software: WebStorm 8 (free trial version works perfectly fine), Google Chrome Browser, Node.js, npm.

Detailed program

  • Overview of Selected JavaScript Constructs: Dynamic nature of JavaScript, closures, constructor functions, prototypal inheritance.
  • AngularJS Basics: AngularJS modules, application life-cycle, controllers, directives, filters, expressions, data binding.
  • Hands-on. AngularJS Online Auction App: The attendees receive the boilerplate of Online Auction web application (project files layout, designed HTML views, configured 3rd-party libraries, etc.). They need to develop controllers, services, models, fetch data from static JSON files and display received data on the UI using data binding.
  • AngularJS Best Practices: Promises, revisiting routing, advanced controllers, UI decomposition using AngularJS directives.
  • Becoming productive with AngularJS. Tools: Node.js as the runtime for all development tools, managing tools with npm, scaffolding with Yeoman, managing 3rd-party libraries with Bower, Grunt task runner as an ultimate automation tool for all development processes. Learning most commonly used Grunt plugins.
  • Hands-on. Mastering Tools: The attendees receive new version of Online Auction app based on the generated Yeoman template. They need to add 3rd-party libraries and configure additional Grunt tasks and targets to enable LESS support for the project. They also need to set up routing, decompose UI using directives, hook up to the routing event to update page title.
  • AngularJS Dependency Injection: Covers DI in all its flavours, strategies to inject services, the differences between available registration methods and suitable use cases for each of them.
  • AngularJS Scopes In Depth: Will learn how two-way data binding works, Web browser’s event loop vs AngularJS Event Loop, digest loop, when to use $apply(), sneak peek of zones in AngularJS 2.0.
  • AngularJS Directives: Decomposing UI with AngularJS directives, creating reusable components, isolated scope, wrapping 3rd-party UI components (e.g. jQueryUI calendar) to enable two-way data binding.
  • Hands-on. Creating Reusable Component: The attendees receive new version of Online Auction app with all the features developed in the previous hands-on. They need to create reusable component out of Twitter Bootstrap’s carousel using AngularJS directives.
  • AngularJS Forms: Leveraging built-in form validation features, creating custom validators.
  • Server Communication: Communicating with Java backend via RESTful API, CORS, $http, $resource, Restangular.
  • Hands-on: Communicating with Java Backend: The attendees receive Java application exposing Online Auction data via RESTful API, fully implemented version of Online Auction app is provided as well. They need to replace AngularJS $http service’s calls to static JSON files with custom services which get the data from the Java backend using Restangular.


Anton Moiseev


May 22


8 hours (1 day)


2100 hryvnas per participant (lunch included).