This plan includes
- Limited free courses access
- Play & Pause Course Videos
- Video Recorded Lectures
- Learn on Mobile/PC/Tablet
- Quizzes and Real Projects
- Lifetime Course Certificate
- Email & Chat Support
What you'll learn?
- Integrate Any Angular Application with Nodejs
- CURD(Create,Read,Update,Delete) Operation with Nodejs, Express and Mongoose
- CURD(Create,Read,Update,Delete) Operation with Nodejs, Express and Mongoose
- JSON Web Token Authentication with PassportJs in MEAN Stack
- Social(Twitter, Github, Google) Authentication with PassportJs in MEAN Stack
Course Overview
Today many enterprise leaders are struggling to use the diverse options available to create web development projects. With technological advancements taking place every few months, it becomes difficult to keep pace unless you are a fast learner. Just when the web development community was getting comfortable with LAMP, MEAN stack made its entry and boy it has completely redefined how web developers work.
MEAN Stack is an acronym for MongoDB, Express, Angular and Node.js – whereby all these four are integrated to form solution-built full-stack JavaScript applications.
Almost, every web development player in the market is trying to become a MEAN stack app developer.
Why MEAN Stack App Development is such a great choice?
Using the same programming language in both the front and back ends of the application has multiple benefits. For one thing, it makes data communication between server and client simpler and faster. It makes modifications to either end easier. It also promotes reusing code across the multiple technologies that in turn helps keep the application secure and stable.
1)Time Saver – as all the JavaScript libraries are combined together, it saves a lot of time for the developers as they can access all the libraries at one go. The time saved here can be used to advance the project further.
2) Speedy data storage and retrieval – MongoDB does not require any predefined regulation to establish field relations unlike MySQL database that cannot operate without predefined database schemas and rules. Moreover, addition or deletion of records is very easy in MongoDB – all thanks to the dynamic schemas that it relies on. All this ensures that the system becomes efficient and more speedy regular functions can be performed.
3) Uniform Programming Language – what works in favor of MEAN stack is that one can control both the front end and back end activities because of JSON which is compatible with MongoDB database, Express and Node.js server and Angular. As such the need for any other programming languages like PYTHON or PHP.
Furthermore, node.js framework reduces the page load time making it a hot favorite for web based applications.
4) OS Compatibility – MEAN stack is compatible with MS Windows, MAC OS and Linux. You still have doubts about the feasibility of MEAN stack?
5) Agility and Quality of Apps – the basic architecture of MEAN is set up to support automated testing; as such developers can easily make corrections as and when the situation arises. Hence one can expect agile and quality app development with MEAN stack.
6) MEAN stack supports the MVC architecture –The single programming language and flexible database of MEAN stack allows it to handle the complex procedures of MVC framework. This ensures that development work does not become tedious or less productive.
You will learn how to:
- Create Nodejs server with Express.js
- Use ES6 with Nodejs
- Create Restful APIS with Nodejs, Express and Mongoose
- Secure Restful APIS with Passport and JWT
- Social(Twitter, Google, Github) Authentication in Nodejs
- CRUD(Create, Read, Update, Delete) Operation in Angular
- Build Angular App with Angular Material, Material Data Table, and Material Dialog
- Learn how to use Angular Material Components in Real world Application
- JSON Web Token Authentication in Angular
- Social(Twitter, Google, Github) Authentication in Angular
- Generate PDF File in Nodejs
- Download PDF File in Angular
- Document RESTFUL APIS with Swagger
- Send Email in Nodejs
Pre-requisites
- Basic NodeJS/Express and Angular Experience is required
Target Audience
- Intermediate Angular Developer who want to learn full-stack web development
Curriculum 289 Lectures 14:12:12
Section 1 : Angular Fundamentals
- Lecture 2 :
- Edit Your First Angular Component
- Lecture 3 :
- Project File Review
- Lecture 4 :
- Introduction to Modules
- Lecture 5 :
- NgModule Meta Data
- Lecture 6 :
- Introduction to Components
- Lecture 7 :
- Create your first Angular Componen
- Lecture 8 :
- Data Bindings
- Lecture 9 :
- Pipes
- Lecture 10 :
- Directives
- Lecture 11 :
- Introduction to Services
- Lecture 12 :
- Create Your Angular Service
- Lecture 13 :
- Introduction to Dependency Injection
- Lecture 14 :
- Providing Services
- Lecture 15 :
- Find all Records from MongoDB
Section 2 : Components and Data Bindings
- Lecture 1 :
- Inline Template
- Lecture 2 :
- Showing an Array property with ngFor
- Lecture 3 :
- Creating a class for the data
- Lecture 4 :
- Interpolation
- Lecture 5 :
- Property Binding
- Lecture 6 :
- Attribute Binding
- Lecture 7 :
- Adding Bootstrap
- Lecture 8 :
- Class Bindings
- Lecture 9 :
- Style Binding
- Lecture 10 :
- Event Binding
- Lecture 11 :
- Event Filtering
- Lecture 12 :
- Template Reference Variable
- Lecture 13 :
- Two Way Data Binding
- Lecture 14 :
- Pipes
Section 3 : Building Components
- Lecture 1 :
- @Input Property
- Lecture 2 :
- Alias @Input Property
- Lecture 3 :
- @Output Property
- Lecture 4 :
- Passing Data to Events
- Lecture 5 :
- Alias @Output Property
- Lecture 6 :
- Styles Component
- Lecture 7 :
- View Encapsulation
- Lecture 8 :
- ng-content
- Lecture 9 :
- ng-container
Section 4 : Final Project - Getting Started with Real World Application
- Lecture 1 :
- Create Angular Project for our Real world Application
- Lecture 2 :
- Important Note related to Angular Material Documentation
- Lecture 3 :
- Angular Material Setup
- Lecture 4 :
- Adding Prebuilt Material Theme
- Lecture 5 :
- Adding Material Fonts
- Lecture 6 :
- Creating Shared Module
Section 5 : Create Dashboard Layout on Frontend Angular Application
- Lecture 1 :
- Create Module using Angular-Cil
- Lecture 2 :
- Adding Lazy Loading
- Lecture 3 :
- Lazy Loading Demo
- Lecture 4 :
- Create Main Content Component
- Lecture 5 :
- Create SideNav Component
- Lecture 6 :
- Adding Sidenav to our Layout
- Lecture 7 :
- Adding Toolbar in Sidebar Navigation
- Lecture 8 :
- Adding List Items to the Side Navigation
- Lecture 9 :
- Adding Toolbar on the top of Layout
- Lecture 10 :
- Adding Mode to the Material Sidenav Navigation
- Lecture 11 :
- Adding Responsiveness to Side Navigation
- Lecture 12 :
- Debugging Side Navigation Responsiveness
- Lecture 13 :
- Create menu Icon
- Lecture 14 :
- Displaying Menu Icon on Small Screen
- Lecture 15 :
- Adding Material Card
Section 6 : Adding Routing in Angular
- Lecture 1 :
- Refactor App Structure
- Lecture 2 :
- Add NAV List Items
- Lecture 3 :
- Creating Invoices Module and Routing
- Lecture 4 :
- Create Clients Module and Routing
Section 7 : Setup Node.js Server
- Lecture 1 :
- Creating Express Server
- Lecture 2 :
- Create Route in Express
- Lecture 3 :
- ES6 Setup using Babel
- Lecture 4 :
- Create npm script for Production
- Lecture 5 :
- Setting up Prettier
- Lecture 6 :
- ESlint Setup with Prettier
- Lecture 7 :
- Configure Prettier with ESLint
Section 8 : Creating CRUD(Create, Read, Update, DELETE) API on Node.js Backend
- Lecture 1 :
- Create Invoice Listing Endpoints
- Lecture 2 :
- Create Custom Middleware in Express
- Lecture 3 :
- Refactor App Structure to Controller and Routes
- Lecture 4 :
- Refactor the config folder
- Lecture 5 :
- Connecting to MongoDB
- Lecture 6 :
- Creating new Model in Mongoose
- Lecture 7 :
- Create new record in mongoose Model
- Lecture 8 :
- Debugging Node.js App in Chrome
- Lecture 9 :
- Debugging Node.js App in VS Code
- Lecture 10 :
- Error Handling Middleware
- Lecture 11 :
- Error Handling Middleware Demo
- Lecture 12 :
- Creating Global Error Handling Middleware
- Lecture 13 :
- Logging Http Request status using morgan middleware
- Lecture 14 :
- Parsing the Requested Body in Express
- Lecture 15 :
- Create a New Record in MongoDB
- Lecture 16 :
- Adding Validations through Joi
- Lecture 17 :
- Find all Records from MongoDB
- Lecture 18 :
- Handling Http status codes
- Lecture 19 :
- Find Record by ID
- Lecture 20 :
- Delete Record from MongoDB
- Lecture 21 :
- Update Record by Id from MongoDB
Section 9 : Documentation for the REST APIS Using Swagger In Nodejs
- Lecture 1 :
- Initial Setup for Documentation
- Lecture 2 :
- Adding Meta Data for Swagger
- Lecture 3 :
- Adding JSON Mime Types for Swagger
- Lecture 4 :
- Create Swagger Model Definition
- Lecture 5 :
- Documentation for the POST Endpoint
- Lecture 6 :
- Documentation for the GET Endpoint
- Lecture 7 :
- Documentation for FindOne Endpoint
- Lecture 8 :
- Documentation for Delete Endpoint
- Lecture 9 :
- Documentation for Update Endpoint
- Lecture 10 :
- Update Build Script to add Swagger files
Section 10 : Creating CRUD with Reactive Forms and Material Data Table
- Lecture 1 :
- Module Intro
- Lecture 2 :
- Create Service in Angular
- Lecture 3 :
- Handle CORS Issues on Backend
- Lecture 4 :
- Adding Angular Material Data Table
- Lecture 5 :
- Populating Records to the Data Table
- Lecture 6 :
- Reformat the Date using Pipe
- Lecture 7 :
- Redirect in Routing
- Lecture 8 :
- Adding Material Menu in Data Table
- Lecture 9 :
- Create Button to save new Invoice
- Lecture 10 :
- Adding Routing for new Invoice
- Lecture 11 :
- Create basic Form
- Lecture 12 :
- Adding Material Date Picker
- Lecture 13 :
- Adding Reactive Forms
- Lecture 14 :
- Save and Cancel button in the Form
- Lecture 15 :
- Sending create request to the backend server
- Lecture 16 :
- Change the Color Scheme for Form Fields
- Lecture 17 :
- Validations in Reactive Forms
- Lecture 18 :
- Displaying Validation Error to User
- Lecture 19 :
- Adding Success Notification
- Lecture 20 :
- Error Handling Notification
- Lecture 21 :
- Delete Invoice
- Lecture 22 :
- Adding Notification for Delete Invoice
- Lecture 23 :
- Refresh Data Table after deleting records
- Lecture 24 :
- Adding Routing to update Record
- Lecture 25 :
- Get the Route params using ActivatedRoute
- Lecture 26 :
- Set the Object to the Reactive Forms
- Lecture 27 :
- Send the Update Request to the backend
Section 11 : Pagination, Sorting and Filtering on Angular and Nodejs
- Lecture 1 :
- Adding Pagination on Backend
- Lecture 2 :
- Adding Documentation for Pagination
- Lecture 3 :
- Refactor Get Invoices on Frontend
- Lecture 4 :
- Adding Paginator Component
- Lecture 5 :
- Bind the Length of Records in Pagination Controls
- Lecture 6 :
- Change the Page Size using Page Event
- Lecture 7 :
- Running Observables in Series
- Lecture 8 :
- Adding Progress Spinner
- Lecture 9 :
- Adding Styling for Spinner
- Lecture 10 :
- Filtering on Backend
- Lecture 11 :
- Adding Sorting on Backend
- Lecture 12 :
- Adding Documentation for Sorting and Filtering
- Lecture 13 :
- Implement ngAfterViewInit
- Lecture 14 :
- Basic Setup for Sorting on Frontend
- Lecture 15 :
- Adding Sorting on Fronetnd
- Lecture 16 :
- Refactoring to Rxjs Merge
- Lecture 17 :
- Creating Form Fields for Filter Invoices
- Lecture 18 :
- Send Backend Request to Filter Invoices
Section 12 : Client Feature (Material Dialog and Material Data Table)
- Lecture 1 :
- Module Intro
- Lecture 2 :
- Structure a Node.js App feature by feature
- Lecture 3 :
- Basic Setup for Client Module
- Lecture 4 :
- Create Client Module in Mongoose
- Lecture 5 :
- Validating Request Body Using Joi
- Lecture 6 :
- Create Record Using Async/Await
- Lecture 7 :
- Find All Clients
- Lecture 8 :
- FindOne Client
- Lecture 9 :
- Delete Client
- Lecture 10 :
- Update Client
- Lecture 11 :
- Adding Relationship between Client and Invoice
- Lecture 12 :
- Populate Client with All Invoices
- Lecture 13 :
- Add Client while Updating Invoice
- Lecture 14 :
- Create Client Model Definition in Swagger
- Lecture 15 :
- Adding Documentation for GET and POST Client
- Lecture 16 :
- Adding Documentation for FindOne, Update, And Delete
- Lecture 17 :
- Fetch Clients from the Backend
- Lecture 18 :
- Load Clients to the Data Table
- Lecture 19 :
- Adding Toolbar
- Lecture 20 :
- Setup Basic Dialog
- Lecture 21 :
- Refactor Client From Dialog to Separate File
- Lecture 22 :
- Refactor width and height of Material Dialog
- Lecture 23 :
- Create new Form in the Dialog
- Lecture 24 :
- Create Reactive Forms inside Material Dialog
- Lecture 25 :
- Validations for required Fields
- Lecture 26 :
- Get the Data from Material Dialog
- Lecture 27 :
- Save new Client
- Lecture 28 :
- Handling Empty Results in Observable
- Lecture 29 :
- Adding Spinner
- Lecture 30 :
- Adding Edit and Delete Action Item
- Lecture 31 :
- Passing Data to the Material Dialog
- Lecture 32 :
- Set the Client to the Form
- Lecture 33 :
- Update the Client
- Lecture 34 :
- Update Title on Material Dialog
- Lecture 35 :
- Delete Client
- Lecture 36 :
- Refactor Save and Update to Conditionals
- Lecture 37 :
- Add Material SelectBox
- Lecture 38 :
- Adding Validations for Client
Section 13 : JSON Web Token Authentication with Passport
- Lecture 1 :
- Basic Setup for User Module
- Lecture 2 :
- Create User Model
- Lecture 3 :
- Save new User in MongoDB
- Lecture 4 :
- Encrypt the User Password
- Lecture 5 :
- User Login
- Lecture 6 :
- Register Config to development
- Lecture 7 :
- Register global Middlewares in Separate file
- Lecture 8 :
- Configure Passport JWT Strategy
- Lecture 9 :
- Debugging the Passport JWT Strategy
- Lecture 10 :
- Code Review for Passport Library
- Lecture 11 :
- Apply Authentication on Routes
- Lecture 12 :
- Add Documentation for Signup
- Lecture 13 :
- Adding Documentation for Login
- Lecture 14 :
- Adding Authentication Header in Documentation
Section 14 : JSON Web Token Authentication in Angular
- Lecture 1 :
- Create Auth Module
- Lecture 2 :
- Creating Reactive Forms
- Lecture 3 :
- Send Login Request to the backend Server
- Lecture 4 :
- Save Token to LocalStorage
- Lecture 5 :
- Create HTTP Token Interceptor
- Lecture 6 :
- Apply HTTP Token Interceptor
- Lecture 7 :
- Adding Title Dynamically
- Lecture 8 :
- Adding Signup Button in the Form
- Lecture 9 :
- Send Signup Request to the Backend Server
- Lecture 10 :
- Error Handling
- Lecture 11 :
- Adding Loading Spinner in Auth Form
- Lecture 12 :
- Apply Routing Guards
- Lecture 13 :
- Apply NoAuthGuard on Public Routes
- Lecture 14 :
- Fixing Invoice Title
- Lecture 15 :
- Adding Resolve Guards for Edit Invoice
- Lecture 16 :
- Logout User
Section 15 : Social Authentication(Google, Twitter, Github) with Passport in Node.js
- Lecture 1 :
- Setup Auth Module
- Lecture 2 :
- Setup Auth Credentials From Google
- Lecture 3 :
- Configure Passport-google Strategy
- Lecture 4 :
- Setup Routes for Google Authentication
- Lecture 5 :
- Serializing and Deserializing User in Passport
- Lecture 6 :
- Understanding Passport Google Auth Flow
- Lecture 7 :
- Add Scope for Email and Profile in Google Strategy
- Lecture 8 :
- Find or create the user after Authenticated from Google
- Lecture 9 :
- Refactoring Signup
- Lecture 10 :
- Handle Duplicate Account Validation in Signup
- Lecture 11 :
- Refactor Login
- Lecture 12 :
- Fix Profile Error
- Lecture 13 :
- Send JWT Token After Authenticated with Google Strategy
- Lecture 14 :
- Redirect to Login After Failed Authentication
- Lecture 15 :
- Create New Twitter Application
- Lecture 16 :
- Setup Passport Twitter Strategy
- Lecture 17 :
- Twitter Authentication with Passport
- Lecture 18 :
- Creating developer Application in Github
- Lecture 19 :
- Authenticate User with Github Strategy
- Lecture 20 :
- Wrap Up
Section 16 : Social Authentication(Google, Twitter, Github) with Passport on Frontend
- Lecture 1 :
- CORS Access Control Error in Google Authentication
- Lecture 2 :
- Adding Proxy for the API in Angular
- Lecture 3 :
- Redirect User to Dashboard Router after Authenticated
- Lecture 4 :
- Extract Query Param in AuthGuard
- Lecture 5 :
- Authenticate User from the backend Server
- Lecture 6 :
- Fix Authentication in AuthGuard
- Lecture 7 :
- Github and Twitter Authentication
- Lecture 8 :
- Styling Social Buttons
- Lecture 9 :
- Refactor Styling for Signup Buttons
- Lecture 10 :
- Logout User on Backend
- Lecture 11 :
- Logout User on Frontend
- Lecture 12 :
- Fixing Http Interceptor on Lazy Loaded Modules
- Lecture 13 :
- Adding Error Handling in Logout
Section 17 : Invoice View
- Lecture 1 :
- Module Intro
- Lecture 2 :
- Creating Invoice view Component
- Lecture 3 :
- Adding View Action Item to Table
- Lecture 4 :
- Apply Resolve Guard on Component
- Lecture 5 :
- Populate Client with Invoice
- Lecture 6 :
- Display Invoice Details to the Material Card
- Lecture 7 :
- Styling Material Card for Invoice Details
- Lecture 8 :
- Apply Routing for Edit Invoice
- Lecture 9 :
- Calculate the Total Value included Tax
Section 18 : Download PDF Invoice
- Lecture 1 :
- Module Intro
- Lecture 2 :
- Installing Plugins to generate PDF File
- Lecture 3 :
- Generate Basic Pdf File
- Lecture 4 :
- Adding Bootstrap to Invoice Template
- Lecture 5 :
- Generate Dummy Invoice
- Lecture 6 :
- Render Dynamic Content to PDF
- Lecture 7 :
- Display Total and SubTotal in the Invoice
- Lecture 8 :
- Refactor Template Code into Methods
- Lecture 9 :
- Download Invoice From Frontend
- Lecture 10 :
- Download and Save PDF from Frontend
- Lecture 11 :
- Adding Material ProgressBar
- Lecture 12 :
- Adding Name Attribute for Local User
- Lecture 13 :
- Adding User name and email to the Invoice
- Lecture 14 :
- Fix Dynamic User name and Email in the Invoice
- Lecture 15 :
- Adding Error Handling Method
- Lecture 16 :
- Fetch Email from the Twitter Profile
- Lecture 17 :
- Refactor getUser method
Section 19 : Forgot Password
- Lecture 1 :
- Add Link for Forgot Password
- Lecture 2 :
- Create Forgot Password Component
- Lecture 3 :
- Design the Forgot Password Component
- Lecture 4 :
- Create Forgot Password Route on Backend
- Lecture 5 :
- Send Forgot Password Request from Frontend
- Lecture 6 :
- Create Reset Link to Reset password
- Lecture 7 :
- Create new Account at Ethereal
- Lecture 8 :
- Send Reset Password Email to User
- Lecture 9 :
- Spinner on Forgot Password
- Lecture 10 :
- Create Reset Password Component
- Lecture 11 :
- Design the Reset Password Form
- Lecture 12 :
- Implement Reset Password on backend
- Lecture 13 :
- Adding Password Match Validation
- Lecture 14 :
- Reset Password Request from Frontend
- Lecture 15 :
- Refactor Documentation for Signup
- Lecture 16 :
- Fix Color typo for Client Select Box
Our learners work at
Frequently Asked Questions
How do i access the course after purchase?
It's simple. When you sign up, you'll immediately have unlimited viewing of thousands of expert courses, paths to guide your learning, tools to measure your skills and hands-on resources like exercise files. There’s no limit on what you can learn and you can cancel at any time.Are these video based online self-learning courses?
Yes. All of the courses comes with online video based lectures created by certified instructors. Instructors have crafted these courses with a blend of high quality interactive videos, lectures, quizzes & real world projects to give you an indepth knowledge about the topic.Can i play & pause the course as per my convenience?
Yes absolutely & thats one of the advantage of self-paced courses. You can anytime pause or resume the course & come back & forth from one lecture to another lecture, play the videos mulitple times & so on.How do i contact the instructor for any doubts or questions?
Most of these courses have general questions & answers already covered within the course lectures. However, if you need any further help from the instructor, you can use the inbuilt Chat with Instructor option to send a message to an instructor & they will reply you within 24 hours. You can ask as many questions as you want.Do i need a pc to access the course or can i do it on mobile & tablet as well?
Brilliant question? Isn't it? You can access the courses on any device like PC, Mobile, Tablet & even on a smart tv. For mobile & a tablet you can download the Learnfly android or an iOS app. If mobile app is not available in your country, you can access the course directly by visting our website, its fully mobile friendly.Do i get any certificate for the courses?
Yes. Once you complete any course on our platform along with provided assessments by the instructor, you will be eligble to get certificate of course completion.For how long can i access my course on the platform?
You require an active subscription to access courses on our platform. If your subscription is active, you can access any course on our platform with no restrictions.Is there any free trial?
Currently, we do not offer any free trial.Can i cancel anytime?
Yes, you can cancel your subscription at any time. Your subscription will auto-renew until you cancel, but why would you want to?
Instructor
18838 Course Views
2 Courses