Node with React Fullstack Web Development

Build and deploy fullstack web apps with NodeJS, React, Redux, Express, and MongoDB.
Node with React Fullstack Web Development
File Size :
15.47 GB
Total length :
25h 57m



Stephen Grider


Last update

Last updated 12/2022



Node with React Fullstack Web Development

What you’ll learn

Create boilerplate starter projects with React, Redux, Express, and Mongo
Understand common web technologies and design patterns to connect them together
Master deployment techniques between the production and development environments
Make an app with Google OAuth authentication
Learn to effectively create and send emails from a backend server
Accept and process credit card payments from users

Node with React Fullstack Web Development


Basic understanding of Javascript, React, and Redux
A Mac, Windows, or Linux computer


Note: This course assumes you’ve got the basics of React and Redux down.  Check out my course ‘Modern React with Redux’, its the perfect preparation!
Go beyond the basics of React and Redux!  This course will teach you to combine the ultra-popular React, Redux, Express, and MongoDB technologies to build a fullstack web application.

Advanced Deployment? You will learn it.  Billing/Payments? Included.  Handling Email? Of course!
What Will You Build?
All of my courses are ‘learn-by-doing’: no boring endless lectures with Powerpoints, only live, interactive coding examples.  In this course we’ll build one massive web application that profiles the advanced features of React, Redux, Express, and Mongo.  By putting each concept into a real app, you’ll get a better idea of when to use each unique and powerful feature.

Build a large feedback-collection app. This mega app will include the full gamut of features, including everything from authentication to email handling.  You’ll learn how to build an app that can be used to send mass emails to a big list of users for the purpose of collecting feedback.  It’s my goal to ensure you understand each feature we build into this app so you can apply them to your own personal or professional projects in the future.
Here’s what we’ll learn:
Learn the architectural considerations of building a full stack appConnect a front-end Create-React-App server to a NodeJS and Express backendCommunicate data from your Mongo database to your React applicationUnderstand how to route user requests on the front end with React Router and on the backend with ExpressBuild reusable user inputs with Redux Form, complete with navigationHandle credit cards and receive payments from your users with StripeEngage your users with automated emailsEnhance authentication flows in your app with Google OAuth authenticationSeparate production and development resources with advanced API key handling techniquesEducate your users on how to use your app with custom build landing pages
I’ve built the course that I would have wanted to take when I was learning to build fullstack apps. A course that explains the concepts and how they’re implemented in the best order for you to learn and deeply understand them.


Section 1: Course Overview – Start Here!

Lecture 1 How to Get Help

Lecture 2 Course Resources

Lecture 3 Join Our Community!

Lecture 4 App Overview

Lecture 5 App User Flow Walkthrough

Lecture 6 Tech Stack

Lecture 7 App Mockups

Section 2: Server Side Architecture

Lecture 8 Application Architecture

Lecture 9 Relationship Between Node and Express

Lecture 10 Generating Express Apps

Lecture 11 Express Route Handlers

Lecture 12 Important Info About Heroku and Deployment

Lecture 13 Deployment Checklist

Lecture 14 [Railway] Registering for Railway and Installing Railway CLI

Lecture 15 [Railway] Creating a Railway Project and Application Service

Lecture 16 [Railway] Deploying App to Railway

Lecture 17 [Heroku] Installing the Heroku CLI

Lecture 18 [Heroku] Verifying Deployment

Lecture 19 [Heroku] Followup Deployments

Section 3: Authentication with Google OAuth

Lecture 20 Intro to Google OAuth

Lecture 21 The OAuth Flow

Lecture 22 Overview of Passport JS

Lecture 23 Passport Setup

Lecture 24 Google+ Deprecation

Lecture 25 Google Project Setup with new UI

Lecture 26 Enabling Google OAuth API

Lecture 27 Securing API Keys

Lecture 28 Google Strategy Options

Lecture 29 Testing OAuth

Lecture 30 Authorized Redirect URI’s

Lecture 31 OAuth Callbacks

Lecture 32 Access and Refresh Tokens

Lecture 33 Nodemon Setup

Section 4: Adding MongoDB

Lecture 34 Server Structure Refactor

Lecture 35 The Theory of Authentication

Lecture 36 Signing In Users with OAuth

Lecture 37 Introduction to MongoDB

Lecture 38 MongoDB Atlas Setup and Configuration

Lecture 39 mLab Setup [PARTIALLY DEPRECATED]

Lecture 40 Connecting Mongoose to Mongo

Lecture 41 Breather and Review

Lecture 42 Mongoose Model Classes

Lecture 43 Saving Model Instances

Lecture 44 TokenError: Bad Request

Lecture 45 Mongoose Queries

Lecture 46 Passport Callbacks

Lecture 47 Encoding Users

Lecture 48 Deserialize User

Lecture 49 Enabling Cookies

Lecture 50 Required Temporary Update for “req.session.regenerate is not a function”

Lecture 51 Testing Authentication

Lecture 52 Logging Out Users

Lecture 53 [Optional] A Deeper Dive

Section 5: Dev vs Prod Environments

Lecture 54 Dev vs Prod Keys

Lecture 55 MongoDB Atlas Production Setup and Configuration

Lecture 56 Generating Production Resources

Lecture 57 Determining Environment

Lecture 58 Version Control Scheme

Lecture 59 [Railway] Production Environment Variables

Lecture 60 [Railway] Avoiding an Error

Lecture 61 [Heroku] Production Environment Variables

Lecture 62 Fixing Proxy Issues

Section 6: Moving to the Client Side

Lecture 63 Important Update About React App Generation

Lecture 64 React App Generation

Lecture 65 A Separate Front End Server

Lecture 66 Running the Client and Server

Lecture 67 Important Create React App Proxy Update

Lecture 68 Routing Stumbling Block

Lecture 69 The Beauty of Create React App’s Proxy

Lecture 70 [Optional] Why This Architecture?

Section 7: Developing the Client Side

Lecture 71 Async/Await Syntax

Lecture 72 Refactoring with Async/Await

Lecture 73 Important Note About Proxy

Lecture 74 Front End Tech

Lecture 75 Client React Setup

Lecture 76 Installing Root Modules

Lecture 77 Troubleshooting NPM

Lecture 78 Redux Review and Setup

Lecture 79 The Auth Reducer

Lecture 80 Finishing Reducer Setup

Lecture 81 Why We Care About Auth

Lecture 82 React Router Setup

Lecture 83 Route Configuration

Lecture 84 Matching Routes with Exact

Lecture 85 Always Visible Components

Lecture 86 Materialize CSS

Lecture 87 Webpack with CSS

Lecture 88 Header Design

Lecture 89 Current User API

Lecture 90 Additional Proxy Rules

Lecture 91 Basics of Redux Thunk

Lecture 92 Refactoring the App

Lecture 93 Testing FetchUser

Lecture 94 Refactoring to Async/Await

Lecture 95 AuthReducer Return Values

Lecture 96 Accessing State in the Header

Lecture 97 Header Content

Lecture 98 Redirecting a User on Auth

Lecture 99 Redirect on Logout

Lecture 100 Landing Component

Lecture 101 Link Tags

Section 8: Handling Payments

Lecture 102 Client Side Billing

Lecture 103 Billing Considerations

Lecture 104 Stripe Billing Process

Lecture 105 Exploring the Stripe API

Lecture 106 Stripe API Keys

Lecture 107 Env Variables with React

Lecture 108 The Payments Component

Lecture 109 Stripe Tokens

Lecture 110 Payment Fixes

Lecture 111 Reusing Action Types

Lecture 112 Positing the Stripe Token

Lecture 113 Post Request Handlers

Lecture 114 Creating Charges

Lecture 115 BodyParser Middleware

Lecture 116 Creating a Charge Object

Lecture 117 Finalizing a Charge

Lecture 118 Adding Credits to a User

Lecture 119 Requiring Authentication

Lecture 120 Route-Specific Middlewares

Lecture 121 Displaying Credit Quantity

Lecture 122 Updating Credits

Section 9: Back End to Front End Routing in Production

Lecture 123 Express with Create-React-App in Production

Lecture 124 Routing in Production

Lecture 125 Deployment Options

Lecture 126 Adding in a Build Step

Lecture 127 [Railway] Postbuild and Deployment

Lecture 128 Testing Deployment

Section 10: Mongoose for Survey Creation

Lecture 129 Survey Overview

Lecture 130 Server Routes

Lecture 131 Survey Model

Lecture 132 Model Deficiencies

Lecture 133 Limitations of Subdocument Collections

Lecture 134 Setting up SubDocs

Lecture 135 Relationship Fields

Lecture 136 Survey Creation Route Handler

Lecture 137 Verifying Minimum Credits

Lecture 138 Creating Surveys

Lecture 139 Creating Subdoc Collections

Lecture 140 Oops! A Little Tweak

Lecture 141 Creating Mailers

Lecture 142 Identifying Unique Users

Lecture 143 Sendgrid Activation Update

Lecture 144 Sendgrid Setup

Lecture 145 Mailer Setup

Lecture 146 Update for “from_email” setting

Lecture 147 Mailer in Use

Lecture 148 Mailer Constructor

Lecture 149 Boilerplate for Sending Emails

Lecture 150 More Mailer Properties

Lecture 151 Sending SendGrid Emails

Lecture 152 Testing Email Sending

Lecture 153 Improving the Email Template

Lecture 154 Polish in the Route Handler

Lecture 155 Verifying Sendgrid Click Tracking

Lecture 156 Feedback for User Feedback

Section 11: Back to the Client!

Lecture 157 Client Side Survey Creation

Lecture 158 Material Icons

Lecture 159 Navigation with the Link Tag

Lecture 160 SurveyNew Form

Lecture 161 Purpose of Redux Form

Lecture 162 Redux Form Setup

Lecture 163 The ReduxForm Helper

Lecture 164 Redux Form in Practice

Lecture 165 Custom Field Components

Lecture 166 Wiring up Custom Fields

Lecture 167 DRY’ing Up Fields

Lecture 168 Fields from Config

Lecture 169 Styling the Form

Lecture 170 Form Validation

Lecture 171 Showing Validation Errors

Lecture 172 Generalizing Field Validation

Lecture 173 Validating Emails

Lecture 174 Displaying Invalid Emails

Lecture 175 Toggling Visibility?

Lecture 176 Advancing From SurveyForm

Lecture 177 Retreat to the Form

Lecture 178 Persisting Form Values

Lecture 179 Refactoring Form Fields

Lecture 180 Finalizing Review Fields

Lecture 181 Outstanding Form Work

Lecture 182 Dumping Form Values

Lecture 183 Fixing Property Names

Lecture 184 Posting to Surveys

Lecture 185 Redirect on Submit

Section 12: Handling Webhook Data

Lecture 186 Feedback with Webhooks

Lecture 187 Webhooks in Development

Lecture 188 Quick Note Before Next Lecture…..

Lecture 189 LocalTunnel Setup

Lecture 190 Ngrok setup instead of LocalTunnel

Lecture 191 Testing Webhooks

Lecture 192 Finalizing Webhook Setup

Lecture 193 Encoding Survey Data

Lecture 194 Dirty Data from Webhooks

Lecture 195 Processing Pipeline

Lecture 196 Parsing the Route

Lecture 197 “TypeError: Path is not a constructor” error

Lecture 198 Code Cleanup

Lecture 199 Unique Events

Lecture 200 Lodash Chain Helper

Lecture 201 Bad Mongoose Queries

Lecture 202 Finding the Exact Survey

Lecture 203 Updating Records

Lecture 204 Executing Queries

Lecture 205 Testing the Query

Lecture 206 Odds n’ Ends Around Surveys

Lecture 207 Mongoose Tips

Section 13: The Home Stretch!

Lecture 208 Fetching a List of Surveys

Lecture 209 Whitelisting Model Fields

Lecture 210 Testing Surveys Endpoint

Lecture 211 Wiring Surveys Up to Redux

Lecture 212 Wiring React to Redux

Lecture 213 Rendering a List of Surveys

Lecture 214 Reversing the Survey List

Lecture 215 Expanding the App

Lecture 216 [Heroku] Deploy Notes from Final Lecture

Lecture 217 [Railway] Deploy Notes from Final Lecture

Lecture 218 [Railway] All Steps to Deploy full Application

Section 14: Extras

Lecture 219 Bonus!

Anyone who wants to learn how to build full stack apps with the latest in web technology

Course Information:

Udemy | English | 25h 57m | 15.47 GB
Created by: Stephen Grider

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top