Mean stack Dive

Mean stack Dive


A combination of the technologies MongoDB, Express.js, Angular JS and Node.js, MEAN is the latest trend in full stack JavaScript development. A perfect progression for JavaScript developers, MEAN is useful because it allows the entire client to server code to be written in JavaScript. Its flexibility and open source nature are also huge advantages since it is fairly easy to learn and customize applications to suit one’s needs.


  • Code: VD-0248
  • Duration: 5-Days
  • Delivery Method: Classroom, Workshop


All professionals who are keen to develop high performance, event-driven, real-time and scalable networking and web applications should go for this course.


Basic experience developing web applications, Familiarity with HTML and CSS, Familiarity with JavaScript



What is MONGO DB?

  • Introduction to MONGO DB
  • The current SQL/NoSQL landscape
  • Document-oriented vs. other types of storage
  • Mongo's feature set
  • Common use-cases
  • Introduction to JSON

Documents and Collections

  • Creating documents
  • Managing documents in collections
  • Iterating over documents

 Simple Queries

  • Field equality tests
  • Operators available
  • Projections
  • Limiting results and paging

Simple Updates and Deletes

  • Field updates
  • Field insertions and removal
  • Document deletion

More Complex types of Queries

  • Existential field values
  • Aggregations and groups
  • Aggregations and groups in hierarchical data

Updates and Arrays

  • Altering array field elements
  • Insertion to array fields
  • Removing from array fields

 Indexing Basics

  • The primary index and the _id field
  • Problems requiring an index
  • Defining secondary indexes
  • Compound indexes

 Mongo RESTful API

  • CRUD operations through REST


  • Explanation of MapReduce
  • Types of logic that can be expressed as MapReduce declarations
  • Mapping documents
  • Reducing values



  • MVC Pattern

  • Introduction to Express

  • Routing

  • HTTP Interaction

  • Handling Form Data

  • Handling Query Parameters

  • Cookies and Sessions

  • User Authentication

  • Error Handling

  • Creating and Consuming RESTful Services

  • Using Templates 


Introduction to AngularJS

  • What is AngularJS?
  • How AngularJS is opinionated
  • Difference between Backbone.js and AngularJS

AngularJS Building Blocks

  • Controller Component
  • Model Component
  • View Component
  • Directives
  • Filters
  • Services
  • Providers
  • Factory
  • DI in AngularJS 

Anatomy of AngularJS Applications

  • Creating Boundaries using ng-app
  • Model View Controller
  • Templates and Data Binding
  • Repeating elements in templates
  • Using Expressions, CSS Classes and Styles
  • Using Controllers for UI responsibility separation
  • Responding to model changes


  • Module Loading and Dependencies
  • Configuration Blocks
  • Run Blocks
  • $provide service

Data Binding in AngularJS

  • Understanding Built-in Directives
  • Scope resolution
  • One way and Two way data binding

Using Filters

  • Filters Overview
  • Understanding Filter Expressions
  • Building custom Filters

Services & Factories

  • Services Overview
  • Modularity using Services
  • Injecting Services
  • Creating Custom Factories and Providers
  • Directives
  • Directives Overview
  • Built in directives
  • Creating Directives
  • The Directive Definition Object
  • Compilation and Linking
  • Creating Components


  • Handling Forms
  • Forms Validations
  • $valid and $error


  • The premise of promises
  • Callbacks and Promises
  • Built in promises
  • Creating custom promises

Communicating with Servers

  • Communicating over $http
  • Configuring the requests
  • Sending Http Headers
  • Caching Responses
  • Request and Response Transformation
  • Interceptors
  • Using RESTful Resources
  • Using $resource Service
  • Using Restangular
  • Communication over WebSockets

Routing and Views

  • $routeProvider and ng-view
  • Using $locationProvider
  • Configuring routes
  • Accessing route values using $routeParams
  • Using Angular-UI's $stateProvider


  • Testing Models using Jasmine
  • Test considerations for Directives and Filters
  • Using Angular Mocks
  • Using Karma for testing browser compatibility
  • Using Protractor for end to end testing

Modular JavaScript

  • Techniques for modularizing JavaScript code
  • Using Require.js for loading dependent modules

JavaScript Development Workflow

  • Using Grunt.js
  • Overview of Yeoman
  • Clientside dependency management using Bower.js



Introduction to NodeJS

  • Understanding NodeJS
  • NodeJS History
  • Introduction to V8 JavaScript Engine
  • NodeJS Vs. Server Side Framework
  • Why NodeJS
  • NodeJS Application Area
  • NodeJS Advantages
  • Who use NodeJS

NodeJS Fundamentals

  • Installing NodeJS
  • Node's Event Loop
  • Writing Asynchronous Code
  • Blocking vs Non-Blocking Code
  • Working with CLI and Node REPL
  • Node's Package Manager: NPM


  • Understanding Modules
  • Built-In Modules
  • Creating your own Modules
  • Using require() to modularize code
  • Creating Modules
  • Exporting Modules
  • Understanding node_modules folder
  • Installing, Updating and Removing Modules using NPM
  • Understanding package.json file

NodeJS Programming Model

  • Asynchronous Programming Model
  • Exception Handling
  • The async Module

Events and Timers

  • Understanding Events
  • Using Event Emitter class
  • Intervals


  • Building a Web Server
  • HTTP Request Methods, Headers
  • Response Codes and Headers
  • Working with Cookies

File System

  • Understanding Process Object
  • The path Module
  • The fs Module
  • Manipulating Files - Create, Open, Read, Write, Close, Rename, Delete
  • Manipulating Directives - Create, Read, Remove


  • Understanding Streams
  • Reading and writing streams
  • Processing streams asynchronously
  • Using pipe() function

Web sockets and Real-Time Web

  • Understanding Web sockets
  • Need of Web sockets
  • Web sockets in NodeJS
  • Creating real-time chat application

View Engines & Templates

  • Understanding NodeJS Templates Engine
  • Understanding Jade view engine
  • Integrating Jade view engine
  • Creating View with Jade
  • Understanding EJS view engine
  • Integrating EJS view engine
  • Creating View with EJS

Github & NodeJS

  • Understanding Github
  • Creating Github Repository
  • Uploading code to Github repository
  • Performing operations on repository 


Add this

About VerticalDivers

VerticalDiversTM is a technology learning and development company. We deliver Deep Dive and high quality technology trainings. Our trainings are designed by professional  experts and SMEs and delivered to perfection.

Connect with us