React, NodeJS, Express & MongoDB - The MERN Fullstack Guide
React, NodeJS, Express & MongoDB - The MERN Fullstack Guide

Build fullstack React.js applications with Node.js, Express.js & MongoDB (MERN) with this project-focused course.

Created by Academind by Maximilian Schwarzmüller, Maximilian Schwarzmüller, Manuel Lorenz
Language English

React, NodeJS, Express & MongoDB - The MERN Fullstack Guide

React, NodeJS, Express & MongoDB - The MERN Fullstack Guide
React, NodeJS, Express & MongoDB - The MERN Fullstack Guide

Build fullstack React.js applications with Node.js, Express.js & MongoDB (MERN) with this project-focused course.

Created by Academind by Maximilian Schwarzmüller, Maximilian Schwarzmüller, Manuel Lorenz
Language English
1. Introduction
  • 1. Introduction 00:01:47
  • 2. What is the MERN Stack 00:07:31
  • 3. MERN - A First Overview 00:02:11
  • 4. Join our Online Learning Community .html
  • 5. Course Outline 00:02:13
  • 6. How To Get The Most Out Of The Course 00:02:54
  • 7. Using the Course Resources .html
2. The MERN Stack - Theory
  • 1. Module Introduction 00:01:18
  • 2. Understanding the Big Picture 00:08:04
  • 2.1 mern-the-big-picture .pdf
  • 3. Diving Into the Frontend 00:04:06
  • 4. Understanding the Backend 00:05:10
  • 4.1 frontend-and-backend .pdf
  • 5. REST vs GraphQL 00:07:54
  • 5.1 Build a Complete GraphQL API (with Node) .html
  • 5.2 GraphQL vs REST API .html
  • 5.3 rest-and-graphql .pdf
  • 6. Connecting Node & React 00:05:50
  • 6.1 connecting-ends .pdf
  • 7. MERN - Essentials .html
  • 8. Creating our Development Environment & the Development Servers 00:11:24
  • 8.1 simple-mern-project .zip
  • 9. Diving Deeper Into the Code 00:09:45
  • 10. Useful Resources & Links .html
  • 10.1 simple-mern-project .zip
3. Planning the App
  • 1. Module Introduction 00:04:50
  • 2. Understanding the General App Idea 00:02:35
  • 2.1 project-idea .pdf
  • 3. Sketching out the Frontend 00:09:37
  • 4. Data & API Endpoints used in our App 00:05:19
  • 4.1 application-data .pdf
  • 5. Required SPA Pages for the Frontend 00:02:56
  • 5.1 api-endpoints-and-spa-routes .pdf
4. React.js - A Refresher
  • 1. Module Introduction 00:01:12
  • 2. What is React 00:03:13
  • 3. Setting Up a Starting Project 00:04:03
  • 3.1 react-refresher-01-react-starting-project .zip
  • 4. Understanding JSX 00:05:31
  • 5. Understanding Components 00:02:50
  • 5.1 react-refresher-02-react-basics .zip
  • 6. Working with Multiple Components 00:07:04
  • 6.1 react-refresher-03-first-basic-component .zip
  • 7. Using Props to pass Data between Components 00:06:52
  • 7.1 react-refresher-04-passing-props .zip
  • 8. Rendering Lists of Data 00:04:30
  • 8.1 react-refresher-05-outputting-a-list-of-data .zip
  • 9. Handling Events 00:07:24
  • 9.1 react-refresher-06-handling-events .zip
  • 10. Efficient Child=Parent Communication 00:04:38
  • 10.1 react-refresher-07-parent-child-communication .zip
  • 11. Working with State 00:05:54
  • 11.1 react-refresher-08-state .zip
  • 12. More on State 00:04:20
  • 13. Fetching User Input (Two-way Binding) 00:05:52
  • 13.1 react-refresher-09-two-way-binding .zip
  • 14. React.js Basics .html
  • 15. Wrap Up 00:02:11
  • 16. Useful Resources & Links .html
  • 16.1 react-refresher-03-first-basic-component .zip
  • 16.2 react-refresher-06-handling-events .zip
  • 16.3 react-refresher-02-react-basics .zip
  • 16.4 react-refresher-01-react-starting-project .zip
  • 16.5 react-refresher-05-outputting-a-list-of-data .zip
  • 16.6 react-refresher-07-parent-child-communication .zip
  • 16.7 react-refresher-04-passing-props .zip
  • 16.8 react-refresher-08-state .zip
  • 16.9 react-refresher-09-two-way-binding .zip
5. React.js - Building the Frontend
  • 1. Module Introduction 00:02:32
  • 2. Starting Setup Pages & Routes 00:17:21
  • 2.1 react-frontend-01-starting-setup .zip
  • 2.2 react-frontend-02-prj-structure-routing .zip
  • 3. Adding a UsersList Page Component 00:09:29
  • 4. Adding a UserItem Component 00:03:41
  • 4.1 react-frontend-03-unstyled-userlist-and-useritem .zip
  • 5. Styling our App & More Components 00:07:17
  • 5.1 Avatar .zip
  • 5.2 UsersList .css
  • 5.3 UserItem .css
  • 5.4 react-frontend-04-avatar-card-styling .zip
  • 5.5 Card .zip
  • 6. Presentational vs Stateful Components 00:03:22
  • 7. Adding a Main Header 00:09:46
  • 7.1 MainNavigation .css
  • 7.2 MainHeader .css
  • 7.3 react-frontend-05-main-header-nav .zip
  • 8. Adding Navlinks 00:05:05
  • 8.1 NavLinks .css
  • 8.2 react-frontend-06-navlinks .zip
  • 9. Implementing a Basic Desktop & Mobile Navigation 00:04:21
  • 9.1 react-frontend-07-side-drawer .zip
  • 10. Understanding Portals 00:03:00
  • 10.1 react-frontend-08-portal .zip
  • 11. Handling the Drawer State 00:04:07
  • 11.1 Backdrop .zip
  • 11.2 react-frontend-09-backdrop-and-opening-closing-logic .zip
  • 12. Animating the Sidedrawer 00:05:14
  • 12.1 react-frontend-10-animation .zip
  • 13. Rendering User Places & Using Dynamic Route Segments 00:16:12
  • 13.1 PlaceList .css
  • 13.2 PlaceItem .css
  • 13.3 react-frontend-11-places-list .zip
  • 14. Getting Route Params 00:02:16
  • 14.1 react-frontend-12-get-data-from-route-params .zip
  • 15. Adding Custom Buttons 00:02:53
  • 15.1 react-frontend-13-button-component .zip
  • 15.2 Button .zip
  • 16. Adding a Modal 00:17:26
  • 16.1 react-frontend-14-modal .zip
  • 16.2 Modal .css
  • 17. Rendering a Map with Google Maps 00:14:36
  • 17.1 Input .css
  • 17.2 react-frontend-15-rendering-a-map-with-google-maps .zip
  • 17.3 NewPlace .css
  • 18. Continuing without a Credit Card .html
  • 19. Optional More on the useEffect() Hook .html
  • 20. Adding a Custom Form Input Component 00:09:42
  • 20.1 react-frontend-16-basic-input-component .zip
  • 21. Managing State in the Input Component 00:11:51
  • 21.1 react-frontend-17-input-reducer-and-usereducer .zip
  • 22. Adding Input Validation 00:08:02
  • 22.1 react-frontend-18-basic-input-validation .zip
  • 22.2 validators .js
  • 23. Sharing Input Values & Adding Multiple Inputs 00:08:11
  • 24. Managing Form-wide State 00:09:11
  • 24.1 react-frontend-19-overall-form-state-mgmt .zip
  • 25. Finishing the Add Place Form 00:03:19
  • 25.1 react-frontend-20-form-submission .zip
  • 26. Starting Work on the Update Place Page 00:08:45
  • 26.1 react-frontend-21-update-place-component .zip
  • 27. Adjusting the Input Component 00:02:38
  • 27.1 react-frontend-23-adjusted-input-component .zip
  • 28. Creating a Custom Form Hook (useForm) 00:11:02
  • 28.1 react-frontend-24-custom-form-hook .zip
  • 29. Optional More on (Custom) React Hooks .html
  • 30. Adjusting the Form Hook 00:11:19
  • 30.1 react-frontend-25-form-hook-setformdata-function .zip
  • 31. Fixing Minor Issues 00:04:32
  • 31.1 react-frontend-26-smaller-fixes .zip
  • 32. Showing a Deletion Warning 00:05:27
  • 32.1 react-frontend-27-delete-place-modal .zip
  • 33. Adding an Auth Page & Login Form 00:09:05
  • 33.1 Auth .css
  • 33.2 react-frontend-28-login-form-auth-page .zip
  • 34. Adding Signup Switch Mode Button 00:11:18
  • 34.1 react-frontend-29-finished-auth-page-mode-switch .zip
  • 35. Adding Auth Context for App-wide State Management 00:07:04
  • 35.1 react-frontend-30-auth-context .zip
  • 36. Listening to Context Changes 00:02:11
  • 37. Adding Authenticated & Unauthenticated Routes 00:05:49
  • 37.1 react-frontend-31-auth-unauth-routes .zip
  • 38. More Auth Context Usage 00:02:44
  • 38.1 react-frontend-32-finished .zip
  • 39. Wrap Up 00:01:08
  • 40. Useful Resources & Links .html
  • 40.1 react-frontend-05-main-header-nav .zip
  • 40.2 react-frontend-15-rendering-a-map-with-google-maps .zip
  • 40.3 react-frontend-01-starting-setup .zip
  • 40.4 react-frontend-08-portal .zip
  • 40.5 react-frontend-02-prj-structure-routing .zip
  • 40.6 react-frontend-26-smaller-fixes .zip
  • 40.7 react-frontend-09-backdrop-and-opening-closing-logic .zip
  • 40.8 react-frontend-11-places-list .zip
  • 40.9 react-frontend-12-get-data-from-route-params .zip
  • 40.10 react-frontend-07-side-drawer .zip
  • 40.11 react-frontend-31-auth-unauth-routes .zip
  • 40.12 react-frontend-21-update-place-component .zip
  • 40.13 react-frontend-03-unstyled-userlist-and-useritem .zip
  • 40.14 react-frontend-20-form-submission .zip
  • 40.15 react-frontend-13-button-component .zip
  • 40.16 react-frontend-17-input-reducer-and-usereducer .zip
  • 40.17 react-frontend-30-auth-context .zip
  • 40.18 react-frontend-16-basic-input-component .zip
  • 40.19 react-frontend-14-modal .zip
  • 40.20 react-frontend-28-login-form-auth-page .zip
  • 40.21 react-frontend-22-update-place-component .zip
  • 40.22 react-frontend-24-custom-form-hook .zip
  • 40.23 react-frontend-25-form-hook-setformdata-function .zip
  • 40.24 react-frontend-04-avatar-card-styling .zip
  • 40.25 react-frontend-10-animation .zip
  • 40.26 react-frontend-18-basic-input-validation .zip
  • 40.27 react-frontend-06-navlinks .zip
  • 40.28 react-frontend-23-adjusted-input-component .zip
  • 40.29 react-frontend-29-finished-auth-page-mode-switch .zip
  • 40.30 react-frontend-32-finished .zip
  • 40.31 react-frontend-19-overall-form-state-mgmt .zip
  • 40.32 react-frontend-27-delete-place-modal .zip
6. Node.js & Express.js - A Refresher
  • 1. Module Introduction 00:01:40
  • 2. What is Node.js 00:02:55
  • 3. Writing our First Node.js Code 00:08:20
  • 3.1 node-refresher-01-basic-node-code .zip
  • 4. Sending Requests & Responses 00:13:34
  • 4.1 node-refresher-03-parsing-request-body .zip
  • 4.2 node-refresher-02-basic-server-and-response .zip
  • 5. What is Express.js 00:01:15
  • 6. Adding Express.js 00:11:39
  • 6.1 node-refresher-04-basic-express-app .zip
  • 7. Understanding the Advantages of Express.js 00:08:32
  • 7.1 node-refresher-05-finished .zip
  • 8. How Code Execution Works 00:03:16
  • 9. Node & Express Basics .html
  • 10. Useful Resources & Links .html
  • 10.1 node-refresher-02-basic-server-and-response .zip
  • 10.2 node-refresher-04-basic-express-app .zip
  • 10.3 node-refresher-01-basic-node-code .zip
  • 10.4 node-refresher-03-parsing-request-body .zip
  • 10.5 node-refresher-05-finished .zip
7. Node.js & Express.js - Building our REST API
  • 1. Module Introduction 00:02:17
  • 2. Setting up our Project 00:02:29
  • 2.1 node-backend-01-basic-prj-setup .zip
  • 3. Implementing Basic Routing 00:11:21
  • 3.1 node-backend-02-first-get-route .zip
  • 4. Adding Place-Specific Routes 00:09:39
  • 4.1 node-backend-03-get-place-by-id .zip
  • 5. Getting a Place By User ID 00:04:37
  • 5.1 node-backend-04-place-by-userid .zip
  • 6. Handling Errors 00:10:51
  • 6.1 node-backend-05-error-handling .zip
  • 7. Adding our own Error Model 00:04:45
  • 7.1 node-backend-06-custom-error-model .zip
  • 8. Adding Controllers 00:06:42
  • 8.1 node-backend-07-added-controllers .zip
  • 9. Adding a POST Route & Using Postman 00:13:21
  • 9.1 node-backend-08-post-route-create-place .zip
  • 10. Handling Errors for Unsupported Routes 00:02:13
  • 10.1 node-backend-09-not-found-route .zip
  • 11. Adding Patch Routes to Update Places 00:08:03
  • 11.1 node-backend-10-update-place .zip
  • 11.2 Primitive vs Reference Values .html
  • 12. Deleting Places 00:04:07
  • 12.1 node-backend-11-delete-place .zip
  • 13. Finalizing the Get Places by User ID Resource 00:02:44
  • 14. Setting Up the User Routes (Signup Login Get Users) 00:13:23
  • 14.1 node-backend-12-dummy-user-routes .zip
  • 15. Validating API Input (Request Bodies) 00:10:19
  • 16. Validating Patch Requests & User Routes 00:06:14
  • 16.1 node-backend-13-input-validation .zip
  • 17. Using Googles Geocoding API to Convert an Address Into Coordinates 00:16:20
  • 17.1 Promises vs async await .html
  • 17.2 node-backend-14-address-to-coordinates .zip
  • 18. Wrap Up 00:01:27
  • 18.1 node-backend-15-finished .zip
  • 19. Useful Resources & Links .html
  • 19.1 node-backend-02-first-get-route .zip
  • 19.2 node-backend-06-custom-error-model .zip
  • 19.3 node-backend-09-not-found-route .zip
  • 19.4 node-backend-12-dummy-user-routes .zip
  • 19.5 node-backend-15-finished .zip
  • 19.6 node-backend-10-update-place .zip
  • 19.7 node-backend-04-place-by-userid .zip
  • 19.8 node-backend-03-get-place-by-id .zip
  • 19.9 node-backend-05-error-handling .zip
  • 19.10 node-backend-08-post-route-create-place .zip
  • 19.11 node-backend-14-address-to-coordinates .zip
  • 19.12 node-backend-07-added-controllers .zip
  • 19.13 node-backend-11-delete-place .zip
  • 19.14 node-backend-01-basic-prj-setup .zip
  • 19.15 node-backend-13-input-validation .zip
8. Working with MongoDB & Mongoose - A Refresher
  • 1. Module Introduction 00:01:15
  • 2. What is MongoDB 00:01:26
  • 3. SQL vs NoSQL 00:03:41
  • 4. Connecting React to a Database 00:01:44
  • 5. Setting Up MongoDB 00:05:26
  • 5.1 MongoDB Atlas .html
  • 6. Creating a Simple Backend & Connecting it to the Database 00:05:50
  • 6.1 01-refresher-starting code .zip
  • 7. Creating a Document with MongoDB 00:07:52
  • 7.1 02-refresher-mongo-create-finished .zip
  • 8. Getting Data from the Database 00:06:11
  • 8.1 03-refresher-mongo-get-finished .zip
  • 9. Installing Mongoose 00:01:31
  • 10. Understanding Models & Schemas 00:03:51
  • 11. Creating a Product 00:03:23
  • 12. Connecting to the Database & Saving the Product 00:07:28
  • 12.1 04-refresher-mongo-mongoose-create-finished .zip
  • 13. Getting Products 00:04:12
  • 14. Understanding the ObjectID 00:03:18
  • 15. Wrap Up 00:01:42
  • 15.1 05-refresher-mongo-finished .zip
  • 16. Useful Resources & Links .html
  • 16.1 03-refresher-mongo-get-finished .zip
  • 16.2 02-refresher-mongo-create-finished .zip
  • 16.3 04-refresher-mongo-mongoose-create-finished .zip
  • 16.4 01-refresher-starting code .zip
  • 16.5 05-refresher-mongo-finished .zip
9. Connecting the Backend to the Database - MongoDB & Mongoose
  • 1. Module Introduction 00:01:27
  • 2. Installing Mongoose & Connecting our Backend to MongoDB 00:06:32
  • 2.1 01-mongodb-starting-code .zip
  • 3. Creating the Place Schema & Model 00:06:34
  • 4. Creating & Storing Documents in the Database 00:07:26
  • 4.1 02-mongodb-create-finished .zip
  • 5. Getting Places by the PlaceID 00:08:07
  • 6. Getting Places by the UserID 00:05:53
  • 7. Updating Places 00:06:10
  • 8. Deleting Places 00:03:43
  • 8.1 03-mongodb-crud-places-finished .zip
  • 9. How Users & Places are Related 00:01:34
  • 10. Creating the User Model 00:06:27
  • 11. Using the User Model for Signup 00:11:43
  • 12. Adding the User Login 00:04:19
  • 13. Getting Users 00:05:37
  • 13.1 04-mongodb-users-finished .zip
  • 14. Adding the Relation between Places & Users 00:05:03
  • 15. Creating Places & Adding it to a User 00:13:59
  • 16. Deleting Places & Removing it From the User 00:07:47
  • 17. Getting Places - An Alternative 00:05:38
  • 18. Cleaning Up our Code 00:02:32
  • 19. Wrap Up 00:01:43
  • 20. Useful Resources & Links .html
  • 20.1 04-mongodb-users-finished .zip
  • 20.2 01-mongodb-starting-code .zip
  • 20.3 05-mongodb-finished-code .zip
  • 20.4 03-mongodb-crud-places-finished .zip
  • 20.5 02-mongodb-create-finished .zip
10. Connecting the React.js Frontend to the Backend
  • 1. Module Introduction 00:01:31
  • 2. Initial Setup 00:01:01
  • 3. Sending a POST Request to the Backend 00:10:30
  • 3.1 frontend-backend-01-starting-setup .zip
  • 3.2 frontend-backend-02-basic-signup-post-request .zip
  • 4. Optional The fetch() API .html
  • 5. Handling CORS Errors 00:06:58
  • 6. Getting Started with Error Handling 00:07:59
  • 6.1 Components .zip
  • 7. Proper Error Handling in the Frontend 00:05:05
  • 7.1 frontend-backend-03-loading-state-error-handling .zip
  • 8. Sending a Login Request 00:03:35
  • 8.1 frontend-backend-04-login .zip
  • 9. Getting Users with a GET Request 00:10:22
  • 9.1 frontend-backend-05-get-users .zip
  • 10. Creating a Custom Http Hook 00:10:50
  • 11. Improving the Custom Http Hook 00:08:29
  • 11.1 frontend-backend-06-custom-http-hook .zip
  • 12. Using the Http Hook to GET Users 00:03:47
  • 12.1 frontend-backend-07-custom-hook-get-users .zip
  • 13. Adding Places (POST) 00:13:06
  • 13.1 frontend-backend-08-new-place .zip
  • 14. Loading Places by User Id 00:07:59
  • 14.1 frontend-backend-09-get-places-by-userid .zip
  • 15. Updating Places 00:12:23
  • 15.1 frontend-backend-10-update-place .zip
  • 16. Deleting Places 00:07:40
  • 16.1 frontend-backend-11-delete-place .zip
  • 17. Fixing NavLinks & My Places 00:01:06
  • 18. Final Adjustments 00:03:42
  • 18.1 frontend-backend-13-finished .zip
  • 19. Useful Resources & Links .html
  • 19.1 frontend-backend-05-get-users .zip
  • 19.2 frontend-backend-07-custom-hook-get-users .zip
  • 19.3 frontend-backend-02-basic-signup-post-request .zip
  • 19.4 frontend-backend-04-login .zip
  • 19.5 frontend-backend-08-new-place .zip
  • 19.6 frontend-backend-06-custom-http-hook .zip
  • 19.7 frontend-backend-11-delete-place .zip
  • 19.8 frontend-backend-03-loading-state-error-handling .zip
  • 19.9 frontend-backend-10-update-place .zip
  • 19.10 frontend-backend-01-starting-setup .zip
  • 19.11 frontend-backend-09-get-places-by-userid .zip
  • 19.12 frontend-backend-13-finished .zip
11. Adding File Upload
  • 1. Module Introduction 00:01:13
  • 2. Building an ImageUpload Component 00:10:36
  • 2.1 file-upload-01-first-upload-steps-imageupload-component .zip
  • 2.2 ImageUpload .css
  • 3. Finishing & Using the ImageUpload Component (in a Form) 00:12:16
  • 3.1 file-upload-02-finished-imageupload-component .zip
  • 4. On the Backend Using Multer to Save Files 00:08:52
  • 5. Filtering Files on the Backend (Images Only!) 00:03:03
  • 5.1 file-upload-03-multer-backend-config .zip
  • 6. Wiring Frontend and Backend Up 00:05:09
  • 6.1 file-upload-04-sending-formdata .zip
  • 7. Connecting Users to Images 00:06:19
  • 7.1 file-upload-05-image-rollback-and-store-in-db .zip
  • 8. Serving Images Statically 00:03:33
  • 8.1 file-upload-06-serve-images-statically .zip
  • 9. Uploading Images for New Places 00:06:08
  • 9.1 file-upload-07-new-place-image-upload .zip
  • 10. Deleting Images When Places Get Deleted 00:02:59
  • 10.1 file-upload-08-place-image-deletion .zip
  • 11. Wrap Up 00:01:32
  • 12. Useful Resources & Links .html
  • 12.1 file-upload-05-image-rollback-and-store-in-db .zip
  • 12.2 file-upload-03-multer-backend-config .zip
  • 12.3 file-upload-06-serve-images-statically .zip
  • 12.4 file-upload-01-first-upload-steps-imageupload-component .zip
  • 12.5 file-upload-04-sending-formdata .zip
  • 12.6 file-upload-08-place-image-deletion .zip
  • 12.7 file-upload-02-finished-imageupload-component .zip
  • 12.8 file-upload-07-new-place-image-upload .zip
12. Adding Authentication
  • 1. Module Introduction 00:01:08
  • 2. How Authentication Works (in a MERN App) 00:05:01
  • 3. Hashing the User Password 00:05:31
  • 3.1 auth-01-hashing-a-pw .zip
  • 4. Logging Users In (with Hashed Passwords) 00:03:10
  • 4.1 auth-02-pw-comparison-login .zip
  • 5. Generating Tokens (JWT) on the Backend 00:09:01
  • 5.1 auth-03-generating-a-jwt-token .zip
  • 6. Optional More on JSON Web Tokens .html
  • 7. Backend Route Protection with Auth Middleware 00:12:48
  • 7.1 auth-04-check-auth-middleware .zip
  • 8. Using & Attaching JWT (Tokens) in React 00:07:17
  • 8.1 auth-05-token-newplace-request .zip
  • 9. Using Tokens to Update and Delete Places 00:02:26
  • 9.1 auth-06-delete-update-tokens .zip
  • 10. Adding Authorization 00:07:35
  • 10.1 auth-07-update-authorization .zip
  • 11. Authorization on Delete Places 00:03:01
  • 11.1 auth-08-delete-authorization .zip
  • 12. Storing the Token in the Browser Storage 00:06:09
  • 12.1 auth-09-storing-token-in-browser-storage .zip
  • 13. Adding Auto-Login (Basic Version) 00:05:13
  • 13.1 auth-10-basic-auto-login .zip
  • 14. Managing the Token Expiration Date 00:04:54
  • 14.1 auth-11-expiration-date .zip
  • 15. Finished Auto-Login & Auto-Logout 00:08:03
  • 15.1 auth-12-auto-logout-finished .zip
  • 16. Creating a Custom Authentication Hook 00:03:45
  • 16.1 auth-13-custom-auth-hook .zip
  • 17. Authentication - Summary 00:01:49
  • 18. General App Improvements 00:04:40
  • 18.1 auth-14-finished .zip
  • 19. Authentication & Authorization .html
  • 20. Useful Resources & Links .html
  • 20.1 auth-01-hashing-a-pw .zip
  • 20.2 auth-02-pw-comparison-login .zip
  • 20.3 auth-13-custom-auth-hook .zip
  • 20.4 auth-04-check-auth-middleware .zip
  • 20.5 auth-03-generating-a-jwt-token .zip
  • 20.6 auth-11-expiration-date .zip
  • 20.7 auth-10-basic-auto-login .zip
  • 20.8 auth-14-finished .zip
  • 20.9 auth-06-delete-update-tokens .zip
  • 20.10 auth-12-auto-logout-finished .zip
  • 20.11 auth-08-delete-authorization .zip
  • 20.12 auth-09-storing-token-in-browser-storage .zip
  • 20.13 auth-05-token-newplace-request .zip
  • 20.14 auth-07-update-authorization .zip
13. Application Deployment
  • 1. Module Introduction 00:00:55
  • 2. Deployment Steps Overview 00:02:29
  • 3. Using Environment Variables (Node.js) 00:08:25
  • 4. Environment Variables in React Apps 00:07:26
  • 5. Preparing API Keys & Credentials 00:05:47
  • 6. Building the React App 00:04:31
  • 7. Adding Code Splitting to React 00:07:14
  • 8. Understanding Possible Deployment Alternatives 00:03:49
  • 9. Deploying a Standalone REST API (Example Heroku) 00:10:46
  • 10. Deploying a Standalone React SPA (Example Firebase Hosting) 00:09:12
  • 11. Fixing Style Issues 00:01:35
  • 12. Deploying a Combined App 00:10:24
  • 13. Storing Files Uploads 00:02:20
  • 14. Wrap Up 00:00:45
14. Roundup & Next Steps
  • 1. Course Roundup 00:03:26
  • 1.1 Build a GraphQL API ( Frontend) .html
  • 2. Bonus Content .html