Skip to main content

Node with React: Fullstack Web Development

25h 36m 19s
English
Paid

Go beyond the basics of React and Redux!This course will empower you to combine the ultra-popular technologies of React, Redux, Express, and MongoDB to build a fullstack web application. Ready for advanced deployment and billing/payments? We've got you covered, along with comprehensive email handling!

What Will You Build?

Our course is learn-by-doing: no endless lectures, but rather live, interactive coding examples. You will build one massive web application showcasing the advanced features of React, Redux, Express, and Mongo. Every concept is integrated into the real app to ensure you grasp the unique capabilities of each feature.

Build a large feedback-collection app. This comprehensive app will incorporate full features, from authentication to email handling. You'll learn to construct an application for mass email distribution to collect user feedback. The aim is for you to understand each feature thoroughly enough to use it in future projects.

Course Content and Learning Outcomes

Core Learning Objectives

Here's what we'll dive into:

  • Understand the architectural considerations for building a fullstack app
  • Integrate a front-end Create-React-App with a NodeJS and Express backend
  • Facilitate data communication from a Mongo database to a React application
  • Route user requests on the front end with React Router and on the backend with Express
  • Create reusable user inputs with Redux Form and enable navigation
  • Manage credit card transactions with Stripe
  • Engage users via automated emails
  • Enhance authentication processes using Google OAuth authentication
  • Delineate production and development resources with API key management
  • Design custom landing pages to educate users about the app

Course Motivation

This course is crafted to be the ideal learning path I sought when I started building fullstack apps. It presents concepts in the most effective sequence for deep understanding and practical application.

Course Requirements

  • Basic understanding of JavaScript, React, and Redux
  • A computer running Mac, Windows, or Linux

Who This Course Is For:

This course is designed for:

  • Anyone eager to learn how to build fullstack apps using the latest web technologies

What You'll Learn to Achieve:

  • Create initial projects using React, Redux, Express, and Mongo as a boilerplate
  • Understand and connect common web technologies utilizing design patterns
  • Master deployment practices across production and development environments
  • Implement Google OAuth authentication in your app
  • Develop effective backend email services
  • Accept and process user credit card payments confidently

About the Authors

Stephen Grider

Stephen Grider thumbnail
Stephen Grider has been building complex Javascript front ends for top corporations in the San Francisco Bay Area. With an innate ability to simplify complex topics, Stephen has been mentoring engineers beginning their careers in software development for years, and has now expanded that experience onto Udemy, authoring the highest rated React course. He teaches on Udemy to share the knowledge he has gained with other software engineers. Invest in yourself by learning from Stephen's published courses.

udemy

udemy thumbnail
By connecting students all over the world to the best instructors, Udemy is helping individuals reach their goals and pursue their dreams. Udemy is the leading global marketplace for teaching and learning, connecting millions of students to the skills they need to succeed. Udemy helps organizations of all kinds prepare for the ever-evolving future of work. Our curated collection of top-rated business and technical courses gives companies, governments, and nonprofits the power to develop in-house expertise and satisfy employees’ hunger for learning and development.

Watch Online 191 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 191 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: How to Get Help
All Course Lessons (191)
#Lesson TitleDurationAccess
1
How to Get Help Demo
06:13
2
App Overview
04:21
3
App User Flow Walkthrough
04:31
4
Tech Stack
05:30
5
App Mockups
07:17
6
Application Architecture
04:36
7
Relationship Between Node and Express
08:27
8
Generating Express Apps
08:12
9
Express Route Handlers
07:33
10
Deployment Checklist
12:12
11
[Heroku] Installing the Heroku CLI
07:30
12
[Heroku] Verifying Deployment
08:38
13
[Heroku] Followup Deployments
03:29
14
Intro to Google OAuth
05:51
15
The OAuth Flow
09:09
16
Overview of Passport JS
07:58
17
Passport Setup
07:17
18
Enabling Google OAuth API
10:00
19
Securing API Keys
05:55
20
Google Strategy Options
07:24
21
Testing OAuth
07:49
22
Authorized Redirect URI's
08:54
23
OAuth Callbacks
08:07
24
Access and Refresh Tokens
07:32
25
Nodemon Setup
03:59
26
Server Structure Refactor
12:43
27
The Theory of Authentication
11:49
28
Signing In Users with OAuth
15:37
29
Introduction to MongoDB
08:04
30
mLab Setup [PARTIALLY DEPRECATED]
07:54
31
Connecting Mongoose to Mongo
06:52
32
Breather and Review
03:10
33
Mongoose Model Classes
08:27
34
Saving Model Instances
10:41
35
Mongoose Queries
07:33
36
Passport Callbacks
07:38
37
Encoding Users
15:02
38
Deserialize User
04:29
39
Enabling Cookies
07:58
40
Testing Authentication
08:19
41
Logging Out Users
04:13
42
[Optional] A Deeper Dive
22:01
43
Dev vs Prod Keys
05:39
44
Generating Production Resources
09:50
45
Determining Environment
06:35
46
Version Control Scheme
08:05
47
[Heroku] Production Environment Variables
08:04
48
Fixing Proxy Issues
11:30
49
React App Generation
06:59
50
A Separate Front End Server
07:26
51
Running the Client and Server
08:57
52
Routing Stumbling Block
18:54
53
The Beauty of Create React App's Proxy
14:36
54
[Optional] Why This Architecture?
29:44
55
Async/Await Syntax
18:50
56
Refactoring with Async/Await
07:40
57
Front End Tech
07:24
58
Client React Setup
07:41
59
Installing Root Modules
06:45
60
Troubleshooting NPM
02:27
61
Redux Review and Setup
10:19
62
The Auth Reducer
04:52
63
Finishing Reducer Setup
03:36
64
Why We Care About Auth
04:46
65
React Router Setup
05:57
66
Route Configuration
05:41
67
Matching Routes with Exact
08:16
68
Always Visible Components
06:12
69
Materialize CSS
08:48
70
Webpack with CSS
07:57
71
Header Design
04:48
72
Current User API
05:59
73
Additional Proxy Rules
11:18
74
Basics of Redux Thunk
10:13
75
Refactoring the App
05:18
76
Testing FetchUser
09:03
77
Refactoring to Async/Await
08:56
78
AuthReducer Return Values
10:38
79
Accessing State in the Header
07:52
80
Header Content
05:01
81
Redirecting a User on Auth
07:34
82
Redirect on Logout
07:38
83
Landing Component
04:18
84
Link Tags
07:52
85
Client Side Billing
03:08
86
Billing Considerations
11:56
87
Stripe Billing Process
05:35
88
Exploring the Stripe API
08:16
89
Stripe API Keys
10:20
90
Env Variables with React
13:32
91
The Payments Component
10:30
92
Stripe Tokens
09:09
93
Payment Fixes
06:57
94
Reusing Action Types
09:17
95
Positing the Stripe Token
03:12
96
Post Request Handlers
04:32
97
Creating Charges
05:20
98
BodyParser Middleware
06:43
99
Creating a Charge Object
06:33
100
Finalizing a Charge
04:40
101
Adding Credits to a User
07:28
102
Requiring Authentication
06:47
103
Route-Specific Middlewares
11:40
104
Displaying Credit Quantity
04:19
105
Updating Credits
05:19
106
Express with Create-React-App in Production
12:21
107
Routing in Production
08:10
108
Deployment Options
10:09
109
Adding in a Build Step
16:11
110
Testing Deployment
03:50
111
Survey Overview
08:01
112
Server Routes
05:25
113
Survey Model
07:08
114
Model Deficiencies
05:57
115
Limitations of Subdocument Collections
07:53
116
Setting up SubDocs
04:50
117
Relationship Fields
05:03
118
Survey Creation Route Handler
07:16
119
Verifying Minimum Credits
06:25
120
Creating Surveys
09:07
121
Creating Subdoc Collections
08:49
122
Creating Mailers
07:19
123
Identifying Unique Users
14:30
124
Sendgrid Setup
08:22
125
Mailer Setup
09:40
126
Mailer in Use
11:02
127
Mailer Constructor
08:32
128
Boilerplate for Sending Emails
09:30
129
More Mailer Properties
05:58
130
Sending SendGrid Emails
06:17
131
Testing Email Sending
09:21
132
Improving the Email Template
08:59
133
Polish in the Route Handler
09:53
134
Verifying Sendgrid Click Tracking
02:10
135
Feedback for User Feedback
11:14
136
Client Side Survey Creation
05:02
137
Material Icons
08:59
138
Navigation with the Link Tag
02:21
139
SurveyNew Form
06:56
140
Purpose of Redux Form
11:17
141
Redux Form Setup
12:21
142
The ReduxForm Helper
07:08
143
Redux Form in Practice
10:23
144
Custom Field Components
08:57
145
Wiring up Custom Fields
05:47
146
DRY'ing Up Fields
05:17
147
Fields from Config
07:36
148
Styling the Form
07:20
149
Form Validation
06:26
150
Showing Validation Errors
08:32
151
Generalizing Field Validation
09:10
152
Validating Emails
08:36
153
Displaying Invalid Emails
13:08
154
Toggling Visibility?
11:56
155
Advancing From SurveyForm
11:29
156
Retreat to the Form
05:21
157
Persisting Form Values
11:27
158
Refactoring Form Fields
09:56
159
Finalizing Review Fields
05:27
160
Outstanding Form Work
10:51
161
Dumping Form Values
07:10
162
Fixing Property Names
02:54
163
Posting to Surveys
04:41
164
Redirect on Submit
09:02
165
Feedback with Webhooks
02:31
166
Webhooks in Development
09:09
167
LocalTunnel Setup
06:28
168
Testing Webhooks
05:17
169
Finalizing Webhook Setup
06:48
170
Encoding Survey Data
07:58
171
Dirty Data from Webhooks
07:15
172
Processing Pipeline
08:19
173
Parsing the Route
07:56
174
Code Cleanup
05:31
175
Unique Events
05:15
176
Lodash Chain Helper
10:51
177
Bad Mongoose Queries
09:10
178
Finding the Exact Survey
13:49
179
Updating Records
09:34
180
Executing Queries
09:26
181
Testing the Query
02:19
182
Odds n' Ends Around Surveys
04:02
183
Mongoose Tips
06:07
184
Fetching a List of Surveys
09:10
185
Whitelisting Model Fields
10:01
186
Testing Surveys Endpoint
02:12
187
Wiring Surveys Up to Redux
06:01
188
Wiring React to Redux
06:53
189
Rendering a List of Surveys
08:13
190
Reversing the Survey List
02:22
191
Expanding the App
12:45
Unlock unlimited learning

Get instant access to all 190 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription