20% OFF WEB DEVELOPMENT

Backend Advanced

Instructor
Altab Raja
Last Update January 16, 2024
4.38 /5
(8)
0 already enrolled

About This Course

Do you want to build fast and powerful back-end applications with JavaScript? Would you like to become a more complete and in-demand developer?

Then Node.js is the hot technology for you to learn right now, and you came to the right place to do it!

Welcome to the Complete Node.js, Express, and MongoDB Bootcamp, your fast track to modern back-end development.

This course is the perfect all-in-one package that will take you from a complete beginner to an advanced, highly-skilled Node.js developer.

Like all my other courses, this one is completely project-based! And not just any project: it's a complete, beautiful, and feature-rich application, containing both a RESTful API and a server-side rendered website. It's the most fantastic and complete project that you will find in any Node.js course on the internet!

By building this huge project, you will learn all the skills that you need in order to plan, build, and deploy your own modern back-end applications with Node.js and related technologies.

 

After finishing this course, you will:

1) Be building you own fast, scalable, and powerful Node.js RESTful APIs or web applications;

2) Truly understand how Node.js works behind the scenes;

3) Be able to work with NoSQL data and model data in real-world situations (a hugely important skill);

4) Know how modern back-end development works, and how all the different technologies fit together (hard to understand from scattered tutorials and videos);

5) Have experience in professionally-used tools and libraries like Express, Mongoose, Stripe, Sendgrid, Atlas, Compass, Git, Heroku, and many more;

6) Have built a complete application, which is a perfect starting point for your own applications in the future.

Here is exactly what you're gonna learn:

  • Fundamentals of Node.js, core modules, and NPM (Node Package Manager)

  • How Node.js works behind the scenes: event loop, blocking vs non-blocking code, event-driven architecture, streams, modules, etc.

  • Fundamentals of Express (Node.js framework): routing, middleware, sending responses, etc.

  • RESTful API design and development with advanced features: filtering, sorting, aliasing, pagination

  • Server-side website rendering (HTML) with Pug templates

  • CRUD operations with MongoDB database locally and on the Atlas platform (in the cloud)

  • Advanced MongoDB: geospatial queries, aggregation pipeline, and operators

  • Fundamentals of Mongoose (MongoDB JS driver): Data models, CRUD operations, data validation, and middleware

  • Advanced Mongoose features: modeling geospatial data, populates, virtual populates, indexes, etc.

  • Using the MVC (Model-View-Controller) architecture

  • How to work with data in NoSQL databases

  • Advanced data modelling: relationships between data, embedding, referencing, and more

  • Complete modern authentication with JWT: user sign up, log in, password reset, secure cookies, etc.

  • Authorization (user roles)

  • Security: best practices, encryption, sanitization, rate limiting, etc.

  • Accepting credit card payments with Stripe: Complete integration on the back-end and front-end

  • Uploading files and image processing

  • Sending emails with Mailtrap and Sendgrid

  • Advanced error handling workflows

  • Deploying Node.js application to production with Heroku

  • Git and GitHub crash course

  • And so much more!

 

Why should you learn Node.js and take this course?

If you want to learn Node.js and modern back-end development, then there is no doubt that this course is for you!

It's the biggest Node.js course on the internet, it has by far the most complete course project, and offers the most in-depth explanations of all topics included.

And even if you already know some Node.js, you should still take this course, because it contains subjects that are not covered anywhere else, or not in the same depth!

But maybe you're not yet convinced that Node.js really is the right technology for you to learn right now?

Well, first, Node.js will allow you to use your JavaScript skills to build applications on the back-end. That itself is a huge gain, which makes your full-stack development process so much easier and faster.

Plus, popularity and opportunities for Node.js are off the charts. It's a modern, proven, and reliable technology, used by tech giants (and 6-figure-salary-paying-companies) like Netflix, PayPal, Uber, and many more.

Node.js really is what you should invest your time in, instead of outdated technology like PHP.

In summary, if you already know JavaScript, learning Node is the logical next step for you! It will make you a better, more versatile, and more complete developer, which will ultimately boost your opportunities in the job market!

Curriculum

13 Lessons 3 Month
Section Intro
What Is Node.js and Why Use It?
Running Javascript Outside the Browser
Using Modules 1: Core Modules
Reading and Writing Files
Blocking and Non-Blocking: Asynchronous Nature of Node.js
Reading and Writing Files Asynchronously
Creating a Simple Web Server
Routing
Building a (Very) Simple API
HTML Templating: Building the Templates
HTML Templating: Filling the Templates
Parsing Variables from URLs
Using Modules 2: Our Own Modules
Introduction to NPM and the package.json File
Types of Packages and Installs
Using Modules 3: 3rd Party Modules
Package Versioning and Updating
Setting up Prettier in VS Code
Section Intro
An Overview of How the Web Works
HTTP in Action
Front-End vs. Back-End Web Development
Static vs Dynamic vs API
Section Intro
Node, V8, Libuv and C++
Processes, Threads and the Thread Pool
The Node.js Event Loop
The Event Loop in Practice
Events and Event-Driven Architecture
Events in Practice
Introduction to Streams
Streams in Practice
How Requiring Modules Really Works
Requiring Modules in Practice
Section Intro
The Problem with Callbacks: Callback Hell
From Callback Hell to Promises
Building Promises
Consuming Promises with Async/Await
Returning Values from Async Functions
Waiting for Multiple Promises Simultaneously
Section Intro
What is Express?
Installing Postman
Setting up Express and Basic Routing
APIs and RESTful API Design
Starting Our API: Handling GET Requests
Handling POST Requests
Responding to URL Parameters
Handling PATCH Requests
Handling DELETE Requests
Refactoring Our Routes
Middleware and the Request-Response Cycle
Creating Our Own Middleware
Using 3rd-Party Middleware
Implementing the "Users" Routes
Creating and Mounting Multiple Routers
A Better File Structure
Param Middleware
Chaining Multiple Middleware Functions
Serving Static Files
Environment Variables
Setting up ESLint + Prettier in VS Code
Section Intro
What is MongoDB?
Installing MongoDB on macOS
Installing MongoDB on Windows
Creating a Local Database
CRUD: Creating Documents
CRUD: Querying (Reading) Documents
CRUD: Updating Documents
CRUD: Deleting Documents
Using Compass App for CRUD Operations
Creating a Hosted Database with Atlas
Connecting to Our Hosted Database
Section Intro
Connecting Our Database with the Express App
What Is Mongoose?
Creating a Simple Tour Model
Intro to Back-End Architecture: MVC, Types of Logic, and More
Modelling the Tours
Refactoring for MVC
Another Way of Creating Documents
Reading Documents
Creating Documents and Testing the Model
Updating Documents
Deleting Documents
Importing Development Data
Making the API Better: Filtering
Making the API Better: Advanced Filtering
Making the API Better: Sorting
Making the API Better: Limiting Fields
Making the API Better: Pagination
Making the API Better: Aliasing
Refactoring API Features
Aggregation Pipeline: Matching and Grouping
Aggregation Pipeline: Unwinding and Projecting
Virtual Properties
Document Middleware
Query Middleware
Aggregation Middleware
Data Validation: Custom Validators
Data Validation: Built-In Validators
Section Intro
Debugging Node.js with ndb
Handling Unhandled Routes
An Overview of Error Handling
Implementing a Global Error Handling Middleware
Better Errors and Refactoring
Catching Errors in Async Functions
Adding 404 Not Found Errors
Errors During Development vs Production
Handling Invalid Database IDs
Handling Duplicate Database Fields
Handling Mongoose Validation Errors
Errors Outside Express: Unhandled Rejections
Catching Uncaught Exceptions
Section Intro
Modelling Users
Creating New Users
Managing Passwords
How Authentication with JWT Works
Signing up Users
Logging in Users
Protecting Tour Routes - Part 1
Advanced Postman Setup
Authorization: User Roles and Permissions
Password Reset Functionality: Reset Token
Sending Emails with Nodemailer
Password Reset Functionality: Setting New Password
Updating the Current User: Password
Updating the Current User: Data
Deleting the Current User
Security Best Practices
Sending JWT via Cookie
Implementing Rate Limiting
Setting Security HTTP Headers
Data Sanitization
Preventing Parameter Pollution
Section Intro
MongoDB Data Modelling
Designing Our Data Model
Modelling Locations (Geospatial Data)
Modelling Tour Guides: Embedding
Modelling Tour Guides: Child Referencing
Populating Tour Guides
Modelling Reviews: Parent Referencing
Creating and Getting Reviews
Populating Reviews
Virtual Populate: Tours and Reviews
Implementing Simple Nested Routes
Nested Routes with Express
Adding a Nested GET Endpoint
Building Handler Factory Functions: Delete
Factory Functions: Update and Create
Factory Functions: Reading
Adding a /me Endpoint
Adding Missing Authentication and Authorization
Importing Review and User Data
Improving Read Performance with Indexes
Calculating Average Rating on Tours
Preventing Duplicate Reviews
Geospatial Queries: Finding Tours Within Radius
Geospatial Aggregation: Calculating Distances
Creating API Documentation Using Postman
Section Intro
Recap: Server-Side vs Client-Side Rendering
Setting up Pug in Express
First Steps with Pug
Creating Our Base Template
Including Files into Pug Templates
Extending Our Base Template with Blocks
Setting up the Project Structure
Building the Tour Overview
Building the Tour Page
Including a Map with Mapbox
Building the Login Screen
Logging in Users with Our API
Logging out Users
Rendering Error Pages
Building the User Account Page
Updating User Data
Updating User Data with Our API
Updating User Password with Our API
Section Intro
Image Uploads Using Multer: Users
Configuring Multer
Saving Image Name to Database
Resizing Images
Adding Image Uploads to Form
Uploading Multiple Images: Tours
Processing Multiple Images
Building a Complex Email Handler
Email Templates with Pug: Welcome Emails
Sending Password Reset Emails
Using Sendgrid for "Real" Emails
Credit Card Payments with Stripe
Integrating Stripe into the Back-End
Processing Payments on the Front-End
Modelling the Bookings
Creating New Bookings on Checkout Success
Rendering a User's Booked Tours
Finishing the Bookings API
Section Intro
Setting Up Git and GitHub
Git Fundamentals
Pushing to GitHub
Preparing Our App for Deployment
Deploying Our App to Heroku
Testing for Secure HTTPS Connections
Responding to a SIGTERM Signal
Implementing CORS
Finishing Payments with Stripe Webhooks

Your Instructors

instructor

Altab Raja

4.75 /5
4 Courses 4 Reviews 73 Students
See more

Student Feedback

Reviews (3)

Write a review

Live Chat Section