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