Overview
The MEAN Stack course instruct participants to utilize all pieces of the MEAN Stack together to make useful full-Stack applications. The course starts by establishing a framework in the Node.js stage & utilizing its capacity, at that point moves into single page application improvement with Angular.
Objectives
At the end of MEAN stack training course, participants will
Prerequisites
- Basic experience developing web applications
- Familiarity with HTML and CSS
- Familiarity with JavaScript
- An IDE or Text Editor
- Command Line Interface
Course Outline
- Introduction to Nodejs
- What is nodejs
- A word on eventloop
- Event driven architecture
- Blocking vs non-blocking code
- Setup nodejs
- Node REPL
- HelloWorld program
- Debugging nodejs app
- Modules in JS
- Understanding exports and require
- Creating modules
- Importing modules
- Quick tour on npm
- Installing 3rd party modules
- Events & streams
- Significance of Events
- EventEmitter 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
- 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 expressjs
- Routing in Depth
- Route Methods
- Route Paths
- Parametrized Routes
- Route Handlers
- Express Router
- Middleware
- Types of middleware
- Application
- Router
- Error
- Builtin
- Thirdparty
- Types of middleware
-
- Error middleware
- Bodyparser, cookie parser, session management
- Template Engines
- What are template engines
- EJS
- Jade
- Handlebars
- Expressjs security
- Authentication
- JWT
- Securing routes
- Debugging in Express
- Realtime programming with Socket.io
- Scaling nodejs applications
- The Child process model
- exec, spawn, and fork functions
- Using the Cluster module
- Introduction to MongoDB
- 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
- CRUD Operations in MongoDB
- Creating documents
- insert()
- update()
- save()
- Querying documents
- find()
- Working with equality
- Query operators
- Building complex queries
- Updating documents
- Deleting documents
- Creating 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 Mongoose
- Typescript & 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 )
- Power of Types
- Introduction
- Type inference
- Type Annotations
- Number
- Boolean
- String
- Array
- Tuple
- Enum
- Any
- Void
- Null and Undefined
- Never ( Typescript 2)
- Explore Functions
- Introduction
- Using types in functions
- Function as types
- Optional and default parameters
- Arrow functions
- Function overloading
- Classes
- Introduction
- Inheritance
- Access modifiers
- Getters and setters
- Read-only & static
- Abstract classes
- Interfaces
- Introduction
- Optional properties and methods
- Read-only & const
- Strict structural contract
- Extending interface
- Implementing interface
- Modules
- Introduction
- Import
- Export
- Default
- Decorators ( Typescript Aspect Oriented Programming)
- Working with Angular CLI
- Angular CLI
- Anatomy of the project
- Debugging Angular apps
- Working with Augury