Nodejs Express Mongodb Bootcamp

Tags: Node.Js

Master Node by building a real-world RESTful API and web app (with authentication, Node.js security, payments & more)

Last updated 2022-01-10 | 4.7

- Master the entire modern back-end stack: Node
- Express
- MongoDB and Mongoose (MongoDB JS driver)
- Build a complete
- beautiful & real-world application from start to finish (API and server-side rendered website)
- Build a fast
- scalable
- feature-rich RESTful API (includes filters
- sorts
- pagination
- and much more)

What you'll learn

Master the entire modern back-end stack: Node
Express
MongoDB and Mongoose (MongoDB JS driver)
Build a complete
beautiful & real-world application from start to finish (API and server-side rendered website)
Build a fast
scalable
feature-rich RESTful API (includes filters
sorts
pagination
and much more)
Learn how Node really works behind the scenes: event loop
blocking vs non-blocking code
streams
modules
etc.
CRUD operations with MongoDB and Mongoose
Deep dive into mongoose (including all advanced features)
How to work with data in NoSQL databases (including geospatial data)
Advanced authentication and authorization (including password reset)
Security: encryption
sanitization
rate limiting
etc.
Server-side website rendering with Pug templates
Credit card payments with Stripe
Sending emails & uploading files
Deploy the final application to production (including a Git crash-course)
Downloadable videos
code and design assets for projects

* Requirements

* Absolutely NO understanding of Node or back-end development is required! I take you from beginner to advanced developer!
* Basic understanding of JavaScript is required (the course contains a section about asynchronous JavaScript with promises and async/await in case you need to get up to speed)
* Basic understanding of HTML is a plus (only for final part of the course)
* but NOT a must
* Any computer and OS will work — Windows
* macOS or Linux

Description

  • Master the entire modern back-end stack: Node, Express, MongoDB and Mongoose (MongoDB JS driver)
  • Build a complete, beautiful & real-world application from start to finish (API and server-side rendered website)
  • Build a fast, scalable, feature-rich RESTful API (includes filters, sorts, pagination, and much more)
  • Learn how Node really works behind the scenes: event loop, blocking vs non-blocking code, streams, modules, etc.
  • CRUD operations with MongoDB and Mongoose
  • Deep dive into mongoose (including all advanced features)
  • How to work with data in NoSQL databases (including geospatial data)
  • Advanced authentication and authorization (including password reset)
  • Security: encryption, sanitization, rate limiting, etc.
  • Server-side website rendering with Pug templates
  • Credit card payments with Stripe
  • Sending emails & uploading files
  • Deploy the final application to production (including a Git crash-course)
  • Downloadable videos, code and design assets for projects

Course content

15 sections • 228 lectures

Course Structure and Projects Preview 06:45

READ BEFORE YOU START! Preview 00:39

Let's Install Node.js Preview 05:24

Section Intro Preview 00:54

What Is Node.js and Why Use It? Preview 07:38

Running Javascript Outside the Browser Preview 06:27

Using Modules 1: Core Modules Preview 05:59

Reading and Writing Files Preview 07:28

Blocking and Non-Blocking: Asynchronous Nature of Node.js Preview 10:13

Reading and Writing Files Asynchronously Preview 14:16

Creating a Simple Web Server Preview 12:49

Routing Preview 15:18

Building a (Very) Simple API Preview 14:28

HTML Templating: Building the Templates Preview 14:03

HTML Templating: Filling the Templates Preview 20:45

Parsing Variables from URLs Preview 10:23

Using Modules 2: Our Own Modules Preview 06:34

Introduction to NPM and the package.json File Preview 05:17

Types of Packages and Installs Preview 13:39

Using Modules 3: 3rd Party Modules Preview 07:55

Package Versioning and Updating Preview 11:45

Setting up Prettier in VS Code Preview 11:27

Recap and What's Next Preview 02:57

Section Intro Preview 00:46

An Overview of How the Web Works Preview 13:28

HTTP in Action Preview 05:29

Front-End vs. Back-End Web Development Preview 06:02

Static vs Dynamic vs API Preview 09:15

Section Intro Preview 01:24

Node, V8, Libuv and C++ Preview 03:47

Processes, Threads and the Thread Pool Preview 04:21

The Node.js Event Loop Preview 11:33

The Event Loop in Practice Preview 18:50

Events and Event-Driven Architecture Preview 04:18

Events in Practice Preview 13:54

Introduction to Streams Preview 06:17

Streams in Practice Preview 16:06

How Requiring Modules Really Works Preview 09:39

Requiring Modules in Practice Preview 15:51

Section Intro Preview 00:57

The Problem with Callbacks: Callback Hell Preview 12:46

From Callback Hell to Promises Preview 06:42

Building Promises Preview 14:42

Consuming Promises with Async/Await Preview 07:48

Returning Values from Async Functions Preview 13:03

Waiting for Multiple Promises Simultaneously Preview 06:11

Section Intro Preview 00:56

What is Express? Preview 02:01

Installing Postman Preview 03:25

Setting up Express and Basic Routing Preview 14:47

APIs and RESTful API Design Preview 16:07

Starting Our API: Handling GET Requests Preview 12:19

Handling POST Requests Preview 15:21

Responding to URL Parameters Preview 11:48

Handling PATCH Requests Preview 07:05

Handling DELETE Requests Preview 02:40

Refactoring Our Routes Preview 06:47

Middleware and the Request-Response Cycle Preview 04:48

Creating Our Own Middleware Preview 09:05

Using 3rd-Party Middleware Preview 09:35

Implementing the "Users" Routes Preview 06:57

Creating and Mounting Multiple Routers Preview 08:04

A Better File Structure Preview 18:20

Param Middleware Preview 10:54

Chaining Multiple Middleware Functions Preview 07:34

Serving Static Files Preview 05:27

Environment Variables Preview 16:39

Setting up ESLint + Prettier in VS Code Preview 13:33

Section Intro Preview 00:48

What is MongoDB? Preview 08:44

Installing MongoDB on macOS Preview 06:34

Installing MongoDB on Windows Preview 10:02

Creating a Local Database Preview 07:39

CRUD: Creating Documents Preview 04:17

CRUD: Querying (Reading) Documents Preview 12:26

CRUD: Updating Documents Preview 07:50

CRUD: Deleting Documents Preview 02:47

Using Compass App for CRUD Operations Preview 07:10

Creating a Hosted Database with Atlas Preview 04:27

Connecting to Our Hosted Database Preview 07:35

Section Intro Preview 00:55

Connecting Our Database with the Express App Preview 12:24

What Is Mongoose? Preview 01:53

Creating a Simple Tour Model Preview 07:01

Creating Documents and Testing the Model Preview 09:02

Intro to Back-End Architecture: MVC, Types of Logic, and More Preview 06:54

Refactoring for MVC Preview 06:31

Another Way of Creating Documents Preview 13:53

Reading Documents Preview 08:35

Updating Documents Preview 10:51

Deleting Documents Preview 04:09

Modelling the Tours Preview 18:13

Importing Development Data Preview 15:40

Making the API Better: Filtering Preview 18:45

Making the API Better: Advanced Filtering Preview 12:04

Making the API Better: Sorting Preview 10:59

Making the API Better: Limiting Fields Preview 06:18

Making the API Better: Pagination Preview 14:59

Making the API Better: Aliasing Preview 08:56

Refactoring API Features Preview 15:38

Aggregation Pipeline: Matching and Grouping Preview 20:37

Aggregation Pipeline: Unwinding and Projecting Preview 19:28

Virtual Properties Preview 06:23

Document Middleware Preview 14:29

Query Middleware Preview 13:54

Aggregation Middleware Preview 07:42

Data Validation: Built-In Validators Preview 10:06

Data Validation: Custom Validators Preview 14:02

Section Intro Preview 00:41

Debugging Node.js with ndb Preview 20:29

Handling Unhandled Routes Preview 07:50

An Overview of Error Handling Preview 03:36

Implementing a Global Error Handling Middleware Preview 08:59

Better Errors and Refactoring Preview 11:12

Catching Errors in Async Functions Preview 14:53

Adding 404 Not Found Errors Preview 09:06

Errors During Development vs Production Preview 10:30

Handling Invalid Database IDs Preview 09:42

Handling Duplicate Database Fields Preview 06:04

Handling Mongoose Validation Errors Preview 08:24

Errors Outside Express: Unhandled Rejections Preview 08:49

Catching Uncaught Exceptions Preview 09:16

Section Intro Preview 00:58

Modelling Users Preview 10:00

Creating New Users Preview 11:19

Managing Passwords Preview 18:24

How Authentication with JWT Works Preview 08:46

Signing up Users Preview 16:01

Logging in Users Preview 26:35

Protecting Tour Routes - Part 1 Preview 14:57

Protecting Tour Routes - Part 2 Preview 35:14

Advanced Postman Setup Preview 11:35

Authorization: User Roles and Permissions Preview 15:54

Password Reset Functionality: Reset Token Preview 17:03

Sending Emails with Nodemailer Preview 23:04

Password Reset Functionality: Setting New Password Preview 21:33

Updating the Current User: Password Preview 16:36

Updating the Current User: Data Preview 20:11

Deleting the Current User Preview 10:28

Security Best Practices Preview 10:13

Sending JWT via Cookie Preview 09:46

Implementing Rate Limiting Preview 07:04

Setting Security HTTP Headers Preview 05:19

Data Sanitization Preview 09:15

Preventing Parameter Pollution Preview 08:20

Section Intro Preview 01:02

MongoDB Data Modelling Preview 24:39

Designing Our Data Model Preview 10:57

Modelling Locations (Geospatial Data) Preview 12:25

Modelling Tour Guides: Embedding Preview 07:48

Modelling Tour Guides: Child Referencing Preview 04:56

Populating Tour Guides Preview 10:42

Modelling Reviews: Parent Referencing Preview 08:30

Creating and Getting Reviews Preview 17:03

Populating Reviews Preview 06:06

Virtual Populate: Tours and Reviews Preview 12:02

Implementing Simple Nested Routes Preview 13:29

Nested Routes with Express Preview 08:00

Adding a Nested GET Endpoint Preview 05:06

Building Handler Factory Functions: Delete Preview 14:21

Factory Functions: Update and Create Preview 13:22

Factory Functions: Reading Preview 14:41

Adding a /me Endpoint Preview 04:42

Adding Missing Authentication and Authorization Preview 14:44

Importing Review and User Data Preview 07:26

Improving Read Performance with Indexes Preview 16:11

Calculating Average Rating on Tours - Part 1 Preview 22:25

Calculating Average Rating on Tours - Part 2 Preview 15:56

Preventing Duplicate Reviews Preview 09:29

Geospatial Queries: Finding Tours Within Radius Preview 29:52

Geospatial Aggregation: Calculating Distances Preview 16:28

Creating API Documentation Using Postman Preview 10:37

Section Intro Preview 00:56

Recap: Server-Side vs Client-Side Rendering Preview 05:16

Setting up Pug in Express Preview 10:07

First Steps with Pug Preview 14:37

Creating Our Base Template Preview 15:24

Including Files into Pug Templates Preview 04:45

Extending Our Base Template with Blocks Preview 10:06

Setting up the Project Structure Preview 05:57

Building the Tour Overview - Part 1 Preview 11:37

Building the Tour Overview - Part 2 Preview 15:52

Building the Tour Page - Part 1 Preview 20:28

Building the Tour Page - Part 2 Preview 25:49

Including a Map with Mapbox - Part 1 Preview 11:33

Including a Map with Mapbox - Part 2 Preview 27:51

Building the Login Screen Preview 06:30

Logging in Users with Our API - Part 1 Preview 20:53

Logging in Users with Our API - Part 2 Preview 18:39

Logging in Users with Our API - Part 3 Preview 28:15

Logging out Users Preview 13:56

Rendering Error Pages Preview 21:45

Building the User Account Page Preview 16:05

Updating User Data Preview 17:07

Updating User Data with Our API Preview 12:34

Updating User Password with Our API Preview 14:41

Section Intro Preview 00:32

Image Uploads Using Multer: Users Preview 10:12

Configuring Multer Preview 13:45

Saving Image Name to Database Preview 05:32

Resizing Images Preview 13:19

Adding Image Uploads to Form Preview 11:33

Uploading Multiple Images: Tours Preview 12:02

Processing Multiple Images Preview 18:11

Building a Complex Email Handler Preview 19:57

Email Templates with Pug: Welcome Emails Preview 15:08

Sending Password Reset Emails Preview 07:07

Using Sendgrid for "Real" Emails Preview 09:32

Credit Card Payments with Stripe Preview 10:08

Integrating Stripe into the Back-End Preview 22:34

Processing Payments on the Front-End Preview 23:04

Modelling the Bookings Preview 06:23

Creating New Bookings on Checkout Success Preview 19:07

Rendering a User's Booked Tours Preview 11:16

Finishing the Bookings API Preview 07:12

Final Considerations Preview 07:28

Section Intro Preview 00:40

Setting Up Git and GitHub Preview 04:38

Git Fundamentals Preview 10:33

Pushing to GitHub Preview 10:27

Preparing Our App for Deployment Preview 10:55

Deploying Our App to Heroku Preview 26:30

Testing for Secure HTTPS Connections Preview 05:52

Responding to a SIGTERM Signal Preview 07:21

Implementing CORS Preview 15:53

Finishing Payments with Stripe Webhooks Preview 38:08

Where to Go from Here Preview 03:39

My Other Courses + Updates Preview 00:50