Mean stack Dive

Mean stack Dive

Overview

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.

Specifications

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

Audience

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

Prerequisites

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

Outline

MONGO DB

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

 MapReduce

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

 

ExpressJS

  • 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 

AngularJS

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

Modules

  • 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

Forms

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

Promises

  • 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

  • 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

  

NodeJS

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

Modules

  • 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

NodeJS HTTP

  • 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

Streams

  • 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