Curriculum
1 Introduction to Node
Learning Objective:
By the end of this module you will learn about how node runtime works and the need for async programming.
-
Installing Node.js
-
Node’s Event Loop
-
Writing asynchronous code
Hands-on:
Create an example of a restaurant which uses async communication pattern for accepting and serving orders.
2 Advance JS primer
Learning Objective:
By the end of this module you will get a deeper understanding on async programming syntaxes in JavaScript.
-
Callbacks
-
Closures
-
Promises
-
Async/await
Hands-on:
Define a problem and solve the same problem with different async programming styles.
3 Modularizing code
Learning Objective:
By the end of this module you will learn how to modularize nodejs code, how to use built-in and third party modules using npm.
-
Understanding built-in module
-
Techniques for modularizing JavaScript code
-
Using require() to modularize application code
-
Using npm for third-party modules
-
Handling Exceptions
Hands-on:
Create a user defined module that uses built-in, third party and other user defined modules.
4 Events and Streams
Learning Objective:
By the end of this module you will learn how to code event driven node programs, also learn about streams to deal with large volumes of data.
-
EventEmitter class
-
Understanding Streams
-
Reading and writing streams
-
Using pipe()
Hands-on:
Redefine the restaurant module created in module 1 with event driven style. Also log the events to file using streams.
5 Accessing local resources
Learning Objective:
By the end of this module you will learn how to deal with file and binary data programming in node.js.
-
Process Object
-
Manipulating File System
-
Understanding Buffers
Hands-on:
Create node program that performs CRUD with file system and also handle global exceptions.
6 Nodejs and the web
Learning Objective:
By the end of this module you will understand the low level http api in node.
-
Handling web requests
-
Building a web server
Hands-on:
Create a web server using http module.
7 Working with Express JS
Learning Objective:
By the end of this module you will learn the core features of express js framework.
-
Installing Express.js
-
Routing
-
Parameters and queries in routing
-
Building views using view engine of choice (ejs / jade / handlebars)
-
Using blocks for layout
-
Displaying data
-
Working with forms
-
Serving files
-
Error Handling
Hands-on:
Create a web application and api that uses express features like routing and views.
8 Securing web apis with passport
Learning Objective:
By the end of this module you will understand the importance of security in web apps and how to secure apps using passport.js.
-
Authentication & Authorization using local user
-
Protecting API with JWT
Hands-on:
Secure the web api built in the previous module with JWT.
9 Real time communication with socket.io
Learning Objective:
By the end of this module you will learn how to make real time applications in node using socket.io.
-
Understand the need of websockets
-
Install and setup socket.io
-
Develop real time dashboard
Hands-on:
Develop a dashboard application that updates the order stats in real time.
10 Scaling node apps
Learning Objective:
By the end of this module you will learn how to deal with child process and scaling of node apps.
-
The Child process model
-
Exec, spawn, and fork functions
-
Using the Cluster module
Hands-on:
-
Cluster the web api built in the previous module.
11 Unit testing with mocha & chai
Learning Objective:
By the end of this module you will learn how to write unit test code for node.
-
What is unit testing
-
Install and setup mocha and chai
-
Write unit tests to test api
Hands-on:
Create unit test to the api.
12 Introduction to MongoDB
Learning Objective:
By the end of this module you will learn the difference between SQL and NoSQL, document vs other types of storages. You will learn how to install and setup Mongo. Learn how to connect to Mongo server using Mongo client.
-
Installing MongoDB
-
The current SQL/NoSQL landscape
-
Document-oriented vs. other types of storage
-
Mongo’s featureset
-
Common use-cases
-
MongoDB databases
-
MongoDB Collections
-
MongoDB Documents
13 CRUD Operations in MongoDB
Learning Objective:
By the end of this module you will learn how to perform CRUD operations on Mongo documents.
-
Creating documents
-
insert()
-
update()
-
save()
-
Querying documents
-
find()
-
Working with equality
-
Query operators
-
Building complex queries
-
Updating documents
-
Deleting documents
Hands-on:
Work with Mongo client to create database, collection, documents. Retrieve, update and delete documents.
14 Introduction to Mongoose
Learning Objective:
By the end of this module you will understand the ODM/ORM and the need for Mongoose in node and Mongo powered applications.
-
Word on ORM/ODM
-
Installing Mongoose
-
Connecting to MongoDB from Mongoose
Hands-on:
Install and setup Mongoose. Write node application to connect to Mongo using Mongoose.
15 Core concepts of Mongoose
Learning Objective:
By the end of this module you will learn the core features of Mongoose like schemas, models, modifiers, virtual fields.
-
Understanding Mongoose schemas and datatypes
-
Working with Models
-
Using modifiers in schema
-
Using virtual fields
-
CRUD operations with Mongoose
Hands-on:
Create a node application that performs CRUD using Mongoose. Define Mongoose schema, Define model, Create model instance, CRUD using model instance.
16 Extending Models
Learning Objective:
By the end of this module you will learn about more features of Mongoose like hooks, validating model data, static methods vs instance methods.
-
Working with hooks
-
Validation of model data
-
Creating custom static methods
-
Creating custom instance methods
Hands-on:
Create Mongoose hooks to tap into the data creation and retrieval process. Use pre and post save hooks, create static methods and instance methods.
17 Introduction to Angular
Learning Objective:
Understanding what you will learn in this course.
18 Why Angular?
Learning Objective:
Learn about Single Page Application vs Multi Page Application, pros and cons of SPA vs MPA.
-
Learn about the developer experience delivered by angular tooling
-
Learn about the high level overview of the framework and its community
-
User Experience similar to a Desktop Application
-
Productivity and Tooling
-
Performance
-
Community
-
Full-featured Framework
-
Platform for Targeting Native Mobile not just Web Browsers
19 Understanding Angular Versions
Learning Objective:
Learn about the angular history and notable improvements on every version.
-
AngularJS (Angular 1.x)
-
Angular 2
-
Angular 4
-
Angular 5
-
Angular 6
-
Angular 7
-
Angular 8
20 Typescript & ES6
Learning Objective:
Upon completion of this module you will gain insight how typescript is different from javascript, and will understand the new useful syntaxes of ES6.
-
Introduction
-
What is Typescript
-
Why Typescript
-
Setup and installation
-
IDE support
-
Scoping using Let and Const Keywords ( ES6 )
-
Template Literals ( ES6 )
-
Spread Syntax and Rest Parameters ( ES6 )
-
Destructuring ( ES6 )
Hands-on:
Create variables using let and const, create multi line strings with template literals, use spread and rest operators with functions, pull values for arrays and objects using destructuring.
21 Power of Types
Learning Objective:
Upon completion of this module you will gain insight about the typesystem of typescript.
-
Introduction
-
Type inference
-
Type Annotations
-
Number
-
Boolean
-
String
-
Array
-
Tuple
-
Enum
-
Any
-
Void
-
Null and Undefined
-
Never (Typescript 2)
Hands-on:
Create variable with different TS supported data types.
22 Explore Functions
Learning Objective:
Upon completion of this module you will gain insight about how to use functions and how to take advantage of strict typing in function definition and invocation. You will also learn the functional style influenced arrow function and its pros and cons. Finally understand the typescript way of achieving functional overloading.
-
Introduction
-
Using types in functions
-
Function as types
-
Optional and default parameters
-
Arrow functions
Hands-on:
Create functions with mandatory, optional and default parameters. Create arrow functions.
23 Classes
Learning Objective:
Upon completion of this module you will understand object oriented style of developing applications using typescript classes and also experience the power of encapsulation with typescript access modifiers and other important features of typescript classes.
-
Introduction
-
Inheritance
-
Access modifiers
-
Getters and setters
-
Readonly & static
Hands-on:
Create classes with properties, methods and accessors. Implement inheritance.
24 Interfaces
Learning Objective:
Upon completion of this module you will understand the significance of interfaces in achieving the structural contracts along with the behaviour contracts. You will learn how to validate the shape of JavaScript Object and how to implement interfaces on classes.
-
Introduction
-
Optional properties and methods
-
Strict structural contract
-
Extending interface
-
Implementing interface
Hands-on:
Create interface and use it validate object shapes.Implement interfaces on classes.
25 Modules
Learning Objective:
Upon completion of this module you will understand the significance of modules in JavaScript and their usage in typescript.
-
Introduction
-
Import
-
Export
-
Default
Hands-on:
Create modules and import them into other modules.
26 Decorators (Typescript Aspect Oriented Programming)
Learning Objective:
Upon completion of this module you will learn aspect oriented programming pattern with the help of decorator.
27 Working with Angular CLI
Learning Objective:
Upon completion of this module you will know how to setup Angular CLI and create a new project in command line tool. You will also gain insight about the project structure and the significance of project files. Also experience the debugging of your angular app in visual studio code and learn how to view runtime information with augury chrome extension.
-
Angular CLI
-
Anatomy of the project
-
Debugging Angular apps
-
Working with Augury
Hands-on:
Create a new Angular CLI project using Angular CLI, execute and debug.
28 8 Main Building blocks of Angular (Birds Eye View Of Angular )
Learning Objective:
Upon completion of this module you will get inside of birds eye view of Angular and its programmable members. This module lays the foundation for the entire course.
-
Modules
-
Components
-
Templates
-
Metadata
-
Data binding
-
Directives
-
Services
-
Dependency injection
29 Angular modules
Learning Objective:
Upon completion of this module you will understand the significance of Angular module system, and will also gain an insight on why modules are needed, how we create modules and the different kinds of modules.
-
Why modules
-
How to create modules
-
Built in modules
-
Root Module
-
Feature module
Hands-on:
Create feature module and import feature module into root module.
30 Components
Learning Objective:
Upon completion of this module you will know the significance of components, how to create a component with different ways of attaching templates and styles.
-
Introduction
-
@Component decorator
-
Component configuration object
-
Custom components
-
Component with templates
-
Inline
-
External
-
Component with Styles
-
Inline
-
External
Hands-on:
Create component with inline and external template and styles, create component manually and with cli, also apply component composition by using a component in another component.
31 Templating
Learning Objective:
Upon completion of this module you will understand the Angular templating syntax and explore the powerful data binding features.
-
HTML as template
-
Data binding
-
Interpolation
-
Property Binding
-
Event Binding
-
Two way binding
-
Template expressions
-
Template syntax
-
Attribute, class and style bindings
-
@Input()
-
@Output
-
Template reference variables
-
Safe navigation operator
Hands-on:
Use different data binding syntaxes in template. Implement property binding with @Input and custom event binding with @Output binding. Create template reference variables and use them in template.
32 Directives
Learning Objective:
Upon completion of this module you will experience the power of Angular directives and the different kinds of directives supported in Angular.
-
Introduction
-
Built-in directives
-
Structural directive
-
NgIf
-
NgFor
-
NgSwitch
-
Attribute directive
-
NgClass
-
NgStyle
-
NgModel
Hands-on:
Implement iteration and conditional rendering in template using structural directives and implement dynamic styling with attribute directives.
33 Pipes
Learning Objective:
Upon completion of this module you will understand Angular data transformation capabilities using pipes. Introduction
-
Built-in pipes
-
@Pipe decorator
Hands-on:
Use currency, date, json and other pipes to transform data. Apply the built in pipes in transforming data in classroom course project.
34 Forms
Learning Objective:
Upon completion of this module you will learn how to develop forms in template driven and reactive form styles along with form validation techniques.
-
Introduction
-
@angular/forms library
-
Template driven forms
-
Form and field validation
-
Validation check with ng-pristine,ng-dirty, ng-touched, ng-untouched, ng-valid, ng-invali
-
Show and hide validation error messages
-
Form submission with ngSubmit
-
Reactive/ Model drive forms
-
ReactiveFormsModule
-
FormGroup, FormControl classes
-
FormBuilder for easy form building
-
Validations using Validators
-
Setting form model using setValue and patchValue
-
Use FormArray to build repeated from controls or form groups
Hands-on:
Develop forms in both template and reactive forms along with validation. Also you will code form with most commonly used controls like textbox, drop down lists, checkboxes, radio buttons, buttons.
35 Dependency Injection
Learning Objective:
Upon completion of this module you will understand the significance of dependency injection in Angular and the different kinds of provider types in Angular.
-
Introduction
-
Why DI
-
@Injectable decorator
-
Custom service development
-
Registering the service with NgModule using providers key
-
Provider Types
-
Class
-
Factory
-
Value
Hands-on:
Develop services and provide them as dependencies for components.Provide component at self, parent and root levels.Create 3 different types of providers.
36 Routing And Navigation
Learning Objective:
Upon completion of this module you will learn how to implement navigation in Angular, and you will also learn how to protect route with route guards.
-
Introduction
-
@angular/router library
-
Configure routes
-
RouterModule.forRoot and RouterModule.forChild
-
RouterOutlet, RouterLink, RouterLinkActive
-
Nested Routes
-
Parametrized routes
-
Route guards
Hands-on:
Develop navbar component that provides routing for application.Use route configuration at root module and feature module level, also protect routes with guards.
37 RxJs Primer
Learning Objective:
On completion of this module you will gain insight into observable pattern and implementation in JavaScript using rxjs library.
-
Introduction
-
Why RxJs
-
Observable interface
-
Streams
-
Operators
-
Subscription
-
Subject
-
Schedulers
Hands-on:
Create and use observables and operators.
38 HTTP Deprecated & HttpClient
Learning Objective:
On completion of this module you will learn how to consume remote api using http client Also understand the power of interceptors for better error handling.
-
Setup installing the module
-
Making a request for JSON data
-
Typechecking the response
-
Error handling
-
Sending data to the server
-
Making a POST request
-
Configuring other parts of the request
Hands-on:
Create a service that uses HTTPClient to make CRUD operations.Add headers to requests and handle errors.
39 New Features in Angular 8
Learning Objective:
On completion of this module you will gain an insight about the new features offered in Angular version 8.
-
New features in angular cli
-
ng update
-
ng add
-
Angular Elements
-
Updates to @angular/material
-
CLI workspaces
-
Building libraries
-
Tree shakable providers
-
RxJs 6 Support
-
How to upgrade to Angular 6
Hands-on:
Create an Angular element and see how it can be used on an Angular application.
40 Testing
Learning Objective:
Upon completion of this module you will understand how to write unit test cases to test component, services and pipe.
-
Introduction
-
Testing in Typescript
-
Testing Component
-
Testing Service/Provider
-
Testing Pipe
Hands-on:
Unit test a component, service and custom pipe.
41 Deployment
Learning Objective:
Upon completion of this module you will understand the differences between JIT compilation and AOT compilation; and also learn how to deploy Angular applications.
-
Manually
-
Using the Angular CLI with Ahead-Of-Time (AOT) Compilation and Tree-Shaking (removing unused library code)
Hands-on:
Demonstrate how to run AOT build and deploy code on simple HTTP server.