Introduction to MongoDB
- Installing MongoDB
- The current SQL/NoSQL landscape
- Document-oriented vs. other types of storage
- Mongo’s features
- Common use-cases
- MongoDB databases
- MongoDB Collections
- MongoDB Documents
CRUD Operations in MongoDB
- Creating documents
- Querying documents
- find()
- Working with equality
- Query operators
- Building complex queries
- Updating documents
- Deleting documents
Introduction to Mongoose
- Word on ORM/ODM
- Installing mongoose
- Connecting to MongoDB from mongoose
Core Concepts of Mongoose
- Understanding mongoose schemas and datatypes
- Working with Models
- Using modifiers in schema
- Using virtual fields
- Optimizing query performance by enabling indexes
Extending Models
- Working with hooks
- Validation of model data
- Creating custom static methods
- Creating custom instance methods
- CRUD operations with Mongoos
Express.js
Express.js Introduction & Setup
- Installing express
- First App with express – Demo
- Little about routes
- Little about Express middleware
- Serving static files with express
- Express application generator
- What is js
Routing in Depth
- Route Methods
- Route Paths
- Parametrized Routes
- Route Handlers
- Express Router
Middleware
- Types of middleware
- Application
- Router
- Error
- Built-in
- Third-party
- Error middleware
- Bodyparser, cookie parser, session management
Template Engines
- What are template engines
- EJS
- Jade
- Handlebars
Express.js security
- Authentication
- JWT
- Securing routes
Debugging in Express
Real-time programming with Socket.io
Scaling node.js applications
- The Child process model
- exec, spawn, and fork functions
- Using the Cluster module
Angular 5.0
Introduction
Why Angular.js 5.0?
- User Experience similar to a Desktop Application
- Productivity and Tooling
- Performance
- Community
- Full-featured Framework
- Platform for Targeting Native Mobile not just Web Browsers
Understanding Angular Versions
Understanding Angular.js 5.0
- Drop-in replacement for Angular 0
Angular 4 Features
- View Engine generates smaller code
- Enhanced *ngIf syntax
- Animation code now in own packages
- TypeScript 1
- Improved compiler speed
- Angular Universal
Angular.js 4.0 Basics
- Components
- Templates
- Inline Templates
- Multi-line Templates using ES6 Template Literals
- External with Component-relative Paths
- Modules
- Models
Angular.js 4.0 Bindings
- HTML in templates
- Interpolation
- Binding syntax
- Property binding
- Event binding
- Two-way data binding
- Attribute, class, and style bindings
- Built-in Directives
- Built-in attribute directives: NgClass, NgStyle, NgModel
- Built-in structural directives: NgIf (includes enhanced *ngIf syntax in Angular 5.0), NgFor
- Template Input Variables
- The NgSwitch Directives
Components
- Component Communication
- Input properties
- Output properties: Custom Events using EventEmitters
Services and Dependency Injection
- Angular’s Dependency Injection System
- Registering
- Injecting
- Using services to access data
Template-driven Forms
- NgSubmit Directive
- FormsModule
- NgForm, NgModel
Validation
- Displaying validation messages
- Styling validation messages
Communicating with the Server using the Http Service
- Deciding between Promises or Observables (RxJS)
- Making http GET Requests
- Making http POST and PUT Requests
- Issuing a http DELETE Request
Router
- Importing the RouterModule and Routes
- Configuring Routes
- Displaying Components using a RouterOutlet
- Navigating with RouterLink
- Accessing parameters
- Organizing your code into Modules
- Working with logging and Error Handling
Security with Angular.js
- JSON based communication
- Route guards
- Auth0 based security
Testing
- Tools: Jasmine, Karma
- Jasmine Syntax: describe, it, beforeEach, afterEach, matches
- Setup and your First Test
- E2E Testing
Model-driven Forms (Reactive Forms)
- Reactive Forms Module
- Abstract Control, Form Control, Form Group, and Form Array
- Form Builder
- Validators
- Displaying Validation Messages
- Styling Validation Messages
Attribute Directives
- Creating a custom Attribute Directive using ElementRef, Render
Pipes
- Built-in Pipes: Using, Passing Parameters, Chaining
- Creating a custom Pipe using Pipe Transform
- Understanding Pure and Impure Pipes
Angular Universal for Server-side Rendering
Creating, Building, and Deploying an Angular Application
- Manually
- Using the Angular CLI with Ahead-of-Time (AOT) Compilation and Tree-Shaking (removing unused library code)
Node.js
Introduction to Node.js
- What is js?
- A word on event loop
- Event-driven architecture
- Blocking VS non-blocking code
- Setup js
- Node REPL
- HelloWorld program
- Debugging node.js app
Modules in JS
- Understanding exports and require
- Creating modules
- Importing modules
- Quick tour on npm
- Installing third-party modules
Events & Streams
- Significance of Events
- Event Emitter class
- Emitting and listening to events
- Types of streams
- Working with streams
- Composing streams using pipe
Working with Process and File System
- Process object
- Handling exceptions at process level
- Listening to process events
- Working with file system using fs module
- Creating, Copying, Deleting files
- Creating, Copying, Deleting directories
- Watching for file changes
Introduction to MongoDB
- Installing MongoDB
- The current SQL/NoSQL landscape
- Document-oriented vs. other types of storage
- Mongo’s features
- Common use-cases
- MongoDB databases
- MongoDB Collections
- MongoDB Documents
CRUD Operations in MongoDB
- Creating documents
- Querying documents
- find()
- Working with equality
- Query operators
- Building complex queries
- Updating documents
- Deleting documents
Introduction to Mongoose
- Word on ORM/ODM
- Installing mongoose
- Connecting to MongoDB from mongoose
Core Concepts of Mongoose
- Understanding mongoose schemas and datatypes
- Working with Models
- Using modifiers in the schema
- Using virtual fields
- Optimizing query performance by enabling indexes
Extending Models
- Working with hooks
- Validation of model data
- Creating custom static methods
- Creating custom instance methods
- CRUD operations with Mongoose
Express.js
Express.js Introduction & Setup
- Installing express
- First App with express – Demo
- Little about routes
- Little about Express middleware
- Serving static files with express
- Express application generator
- What is js
Routing in Depth
- Route Methods
- Route Paths
- Parametrized Routes
- Route Handlers
- Express Router
Middleware
- Types of middleware
- Application
- Router
- Error
- Built-in
- Third-party
- Error middleware
- Bodyparser, cookie parser, session management
Template Engines
- What are template engines
- EJS
- Jade
- Handlebars
Express.js security
- Authentication
- JWT
- Securing routes
Debugging in Express
Real-time programming with Socket.io
Scaling node.js applications
- The Child process model
- exec, spawn, and fork functions
- Using the Cluster module
Angular 5.0
Introduction
Why Angular.js 5.0?
- User Experience similar to a Desktop Application
- Productivity and Tooling
- Performance
- Community
- Full-featured Framework
- Platform for Targeting Native Mobile not just Web Browsers
Understanding Angular Versions
Understanding Angular.js 5.0
- Drop-in replacement for Angular 0
Angular 4 Features
- View Engine generates smaller code
- Enhanced *ngIf syntax
- Animation code now in own packages
- TypeScript 1
- Improved compiler speed
- Angular Universal
Angular.js 4.0 Basics
- Components
- Templates
- Inline Templates
- Multi-line Templates using ES6 Template Literals
- External with Component-relative Paths
- Modules
- Models
Angular.js 4.0 Bindings
- HTML in templates
- Interpolation
- Binding syntax
- Property binding
- Event binding
- Two-way data binding
- Attribute, class, and style bindings
- Built-in Directives
- Built-in attribute directives: NgClass, NgStyle, NgModel
- Built-in structural directives: NgIf (includes enhanced *ngIf syntax in Angular 5.0), NgFor
- Template Input Variables
- The NgSwitch Directives
Components
- Component Communication
- Input properties
- Output properties: Custom Events using EventEmitters
Services and Dependency Injection
- Angular’s Dependency Injection System
- Registering
- Injecting
- Using services to access data
Template-driven Forms
- Ng Submit Directive
- FormsModule
- NgForm, NgModel
Validation
- Displaying validation messages
- Styling validation messages
Communicating with the Server using the HTTP Service
- Deciding between Promises or Observables (RxJS)
- Making HTTP GET Requests
- Making HTTP POST and PUT Requests
- Issuing an HTTP DELETE Request
Router
- Importing the RouterModule and Routes
- Configuring Routes
- Displaying Components using a RouterOutlet
- Navigating with RouterLink
- Accessing parameters
- Organizing your code into Modules
- Working with logging and Error Handling
Security with Angular.js
- JSON based communication
- Route guards
- Auth0 based security
Testing
- Tools: Jasmine, Karma
- Jasmine Syntax: describe, it, beforeEach, afterEach, matchers
- Setup and your First Test
- E2E Testing
Model-driven Forms (Reactive Forms)
- Reactive Forms Module
- Abstract Control, Form Control, Form Group, and Form Array
- Form Builder
- Validators
- Displaying Validation Messages
- Styling Validation Messages
Attribute Directives
- Creating a custom Attribute Directive using ElementRef, Render
Pipes
- Built-in Pipes: Using, Passing Parameters, Chaining
- Creating a custom Pipe using Pipe Transform
- Understanding Pure and Impure Pipes
Angular Universal for Server-side Rendering
Creating, Building, and Deploying an Angular Application
- Manually
- Using the Angular CLI with Ahead-of-Time (AOT) Compilation and Tree-Shaking (removing unused library code)
Node.js
Introduction to Node.js
- What is js?
- A word on event loop
- Event-driven architecture
- Blocking VS non-blocking code
- Setup js
- Node REPL
- HelloWorld program
- Debugging node.js app
Modules in JS
- Understanding exports and require
- Creating modules
- Importing modules
- Quick tour on npm
- Installing third-party modules
Events & Streams
- Significance of Events
- Event Emitter class
- Emitting and listening to events
- Types of streams
- Working with streams
- Composing streams using pipe
Working with Process and File System
-
- Process object
- Handling exceptions at process level
- Listening to process events
- Working with file system using fs module
- Creating, Copying, Deleting files
- Creating, Copying, Deleting directories
- Watching for file changes