EIEIOTECHNOVATION
← Training programmes

EIEIO / PROGRAMMING & DEVELOPMENT

NODE and ANGULAR

Course outline

5 days

Duration

5 days

Overview

Node.js is a platform for easily building fast, scalable network applications. This program focuses on how to use the event-driven, non-blocking I/O model to build data-intensive real-time applications that run across distributed devices. This course focuses on developing a server-side MVC application built on Node.js and Express framework that queries databases and calls back-end web services using JavaScript. We will also explore the design choices that make Node.js unique, how these changes the way applications are built and how systems of applications work most effectively in this model. Learn how to create modular code that is robust and expressive. Understand when to use call back, event emitters and streams. Use streams to easily manipulate data that would be impossible to fit in memory. Gain confidence in handling errors effectively to ensure runtime reliability.

Angular 6 was conceived as a complete rewrite in order to fulfil the expectations of modern developers who demand fast performance and responsiveness from their web applications. Participant will set up working environment to have all the tools needed to start building Angular 6 components with minimum effort. Participant will understand TypeScript, a powerful typed superset of JavaScript that compiles to plain JavaScript. In this course, developers will learn to use Angular 6 Directives and to create Angular 6 Components and Services to develop applications based on the Model-View-Controller (MVC) architecture. Developers will also explore how to consume external APIs and data services and allow data editing by harnessing the power of web forms made with Angular 6.

Prerequisites

Before attending this course, students should have general programming experience and knowledge of HTML, CSS and JavaScript.

Course Topics

Introduction

  • Foundation
  • The Node.js framework
  • Advantages of Node JS
  • Installing Node.js
  • Using Node.js to execute scripts
  • Introduction to traditional Web Server Model
  • Node.js Process Model
  • Introduction to TYPESCRIPT

Overview

  • Issues with JavaScript ES5
  • Why TypeScript
  • Environment Setup
  • Basic Syntax
  • Types and Variables
  • Operators
  • Decision Making and Loops
  • Functions and Lambda Expressions
  • Generics
  • Enums, Number and Strings
  • Arrays, Tuples & Union
  • Interface, Classes and Objects
  • Namespaces & Modules
  • Ambients, Decorators & Mixins
  • Preparing a TypeScript project
  • Compiling, testing and running TypeScript
  • Debugging TypeScript
  • Launching TypeScript Application
  • Node Projects
  • Node Package Manager (NPM)
  • Creating a project
  • The package.json configuration file
  • Installing Packages Global
  • Installing Packages Locally
  • Adding dependency in package.json
  • Installing packages globally
  • Updating packages
  • Scripting through package.json
  • Automating tasks with Gulp
  • Watch compile run Scripts
  • Webpack Project

Day 2

  • HTTP
  • The HTTP protocol
  • Creating web server
  • Handling http requests
  • Sending requests
  • Building an HTTP server
  • Rendering a response
  • Processing query strings
  • Using Representational State Transfer
  • Node JS Console
  • Configuring TLS
  • File System
  • Synchronous I/O vs. asynchronous I/O
  • Path and directory operations
  • __dirname and __filename
  • Synchronous file reads
  • Synchronous file writes
  • Asynchronous file reads
  • Asynchronous file writes
  • Buffers, Streams, and Events
  • Using buffers for binary data
  • Flowing vs. non-flowing streams
  • Streaming I/O from files and other sources
  • Processing streams asynchronously
  • Configuring event handlers
  • Modules and Unit Testing
  • Modularization
  • The CommonJS and RequireJS specifications
  • Defining modules with exports
  • Modules are singletons
  • Creating a package
  • Module scope and construction
  • Unit testing frameworks
  • What to test and how to test it
  • Building unit tests with Mocha
  • Events
  • When to use Event Emitters
  • Binding Functions to Events
  • Event Requests
  • Event Listening
  • What are callbacks
  • Callback-last
  • Error-first
  • Callbacks: Error-first
  • Errors in Event Emitters
  • Uncaught Exceptions
  • Using Domains
  • Express
  • The model-view-controller pattern
  • Defining Jade and Handlebars templates
  • Building a front-end controller
  • Defining routes
  • Creating actions
  • Configuring Express to use Handlebars
  • Using REST
  • Reading POST data
  • Building Handlebars helpers
  • Adding middleware

Day 3

  • Data Sources
  • How Node.js connects to databases
  • Configuration and platform setup
  • RDBMS databases and NoSQL databases
  • Connecting to RDBMS and NoSQL databases
  • Performing CRUD operations
  • Building client requests to web services
  • Data Modelling
  • Create Database
  • Drop Database
  • Create Collection
  • Drop Collection
  • Data Types
  • Insert Document
  • Query Document
  • Update Document
  • Delete Document
  • Queries
  • Field equality tests
  • Operators available
  • Projections
  • Limiting Records
  • Paging
  • Sorting Records
  • Simple Updates and Deletes
  • Field updates
  • Field insertions and removal
  • Document deletion
  • Existential field values
  • Socket Programming
  • Network Structure
  • Classifications and Topologies
  • Switching and Routing
  • Gateway, Repeater, Hub, Bridge
  • OSI & TCP/IP Protocol Layers
  • Physical & Logical Addresses
  • ARP & RARP Networking and TCP/IP Applications
  • Internet Protocol
  • Routing Protocol and IP Datagram
  • Error and Control Messages (ICMP) UDP
  • Transfer Control Protocol
  • TCP Networking Applications
  • (FTP, TFTP, TELNET, DNS, DHCP, SNTP, POP3, IMAP, SNMP)
  • Creating a REST API with Node.js

Introduction

  • Setting up Node Project with MongoDB for API
  • Adding Data (POST requests in Node)
  • Retrieving Data (GET requests in Node)
  • Updating Data (PUT requests in Node)
  • Deleting Data (DELETE requests in Node)
  • Authentication and Security
  • Setting up our User Model for Authentication in Node
  • Authentication Middleware and Securing Resources in Node

Day 4

  • Introduction to Angular
  • Why Angular 6
  • Angular 6 Features
  • Installing and Using Angular 6
  • Creating the first Angular Project
  • Architecture Overview
  • What is new in Angular 6
  • Summary
  • Building with Components
  • Introducing the component
  • Component Decorator Properties
  • Template
  • Inline Template
  • Interpolation – Plain text, Object and Array
  • Component Starter
  • Integrating Bootstrap
  • Data and Event Binding
  • Binding Syntax
  • One-Way Output Binding
  • Property binding
  • Attribute binding
  • Binding Events
  • Setting Element Properties
  • Two-Way Binding of Input Fields
  • Input Binding Examples
  • Summary
  • Attribute Directive
  • What are Directives
  • Directive Types
  • Apply Styles by Changing Classes
  • Applying Styles Directly
  • Obsolete Directives and Property Binding
  • Controlling Element Visibility
  • Setting Image Source Dynamically
  • Setting Hyperlink Source Dynamically
  • Summary
  • Structural Directives
  • Adding and Removing Elements Dynamically
  • Looping Using ngFor
  • Creating Tables with ngFor
  • Swapping Elements with ngSwitch
  • ngSwitch - Basic Syntax
  • ngSwitch - Full Template Syntax
  • Summary

Day 5

  • Template Driven Forms
  • A Basic Angular Form
  • Binding Input Fields
  • Binding the Form Submit Event
  • Basic HTML5 Validation - "required" Attribute
  • Angular Validators
  • Displaying Form Validation State
  • Displaying Field Validation State
  • Displaying Validation State Using Classes
  • Disabling Submit when Form is Invalid
  • Submitting the Form
  • Summary
  • Services and Dependency Injection
  • What is a Service?
  • Creating a Basic Service
  • What is Dependency Injection?
  • What Dependency Injection Looks Like
  • Injecting Services
  • Using a Service in a Component: Dedicated Instance
  • Using a Service in a Component: Dedicated Instance - Example Code
  • Using onInit to Initialize Component Data
  • Using a Shared Service Instance
  • Dependency Injection and @Host
  • Dependency Injection and @Optional
  • Summary
  • RxJS and Observables
  • What is an Observable?
  • Observable Operators
  • Creating Observables Using Static Operators
  • What is an Observer?
  • Observer Example
  • Subject
  • Subject Example
  • EventEmitter or Observable
  • HTTP Client
  • The Angular HTTP Client
  • Service Using Http Client
  • Service Imports
  • The Observable object type
  • Making a Basic HTTP GET Call
  • Using the Service in a Component
  • Importing Observable Methods
  • Enhancing the Service with .map() and .catch()
  • Using toPromise()
  • GET Request with Options
  • POST Request
  • Reading HTTP Response Headers
  • Summary
  • Pipes and Data Formatting
  • What are Pipes?
  • Using a Built-in Pipe
  • Chaining Pipes
  • Using Custom Pipes
  • A Filter Pipe
  • A Sort Pipe
  • Summary
  • The Angular Component Router
  • Routing and Navigation
  • The Component Router
  • Component Router Terminology
  • Setting up the Component Router
  • Browser pushState and
  • Routes
  • The app.routes.ts File
  • App Routes
  • App Component
  • Programmatic Navigation
  • Passing Data During Navigation
  • Creating Routes with Route Parameters
  • Navigating with Route Parameters
  • Using Route Parameter Values
  • Retrieving the Route Parameter Synchronously and Asynchronously
  • Query Parameters
  • Problems with Manual URL entry and Bookmarking
  • Fixing Manual URL entry and Bookmarking
  • Summary

Programme scope, delivery arrangements and suitability are confirmed during enquiry.