Build a Realtime App with React Hooks and GraphQL

Video Description

Master the latest and greatest features in React within the context of a full-stack, real-world app

About This Video

  • Build real-world, full-stack apps with React Hooks
  • Develop stunning map applications with the Mapbox API and ReactMapGL

In Detail

This course teaches you to build real-time, full-stack React apps from scratch with a GraphQL Server (Apollo Server 2) on the backend, a cloud MongoDB database (Mongo Atlas) with React Hooks to manage our state (replacing Redux!), social authentication (Google OAuth2), real-time data with GraphQL Subscriptions, image uploads with Cloudinary, and much more.

Our app will be a live Geolocation app called GeoPins where users can pin different locations on the map and share their own content with other users in real time. You'll share pictures and reviews of the location and area, interact with other users by adding comments to your pins, and manage the pins you've created.This course covers:

  • How to build a robust GraphQL server with authentication (with Apollo Server 2)
  • How to use two GraphQL client libraries in-depth: Apollo Client and GraphQL Request
  • Replacing Redux with the useContext and useReducer hooks for global state management
  • All major concepts within GraphQL: queries, mutations, subscriptions, typedefs, resolvers, inputs, and more
  • All major hooks: useState, useEffect, useContext, and useReducer
  • Building custom hooks to hook in to additional functionality in your applications
  • Integrating social login (Google OAuth) with Apollo Server 2
  • Display app changes in real time with GraphQL subscriptions
  • Dynamic image uploads using the Cloudinary API
  • MongoDB in the cloud with MongoDB Atlas
  • Using Mongoose to create models, CRUD and search operations, and population
  • Making attractive apps with the Material UI component library and Material UI Icons
  • Use the Material UI useMediaQuery hook for dead-simple mobile/responsive design
  • Use the Geolocation API to get users' current location
  • Create route guards/protected routes with React Router v4
  • Essential authentication/authorization concepts within GraphQL/Apollo
  • Error handling on your servers and in your React clients
  • Master async/await functions along with tons of ES6/ES7 concepts
  • Deploying with Heroku and Now v2

Publisher Resources

Download Example Code

Table of Contents

  1. Chapter 1 : Getting Started
    1. What You Need For This Course 00:01:40
    2. Git Clone Repo and Install Dependencies 00:01:25
  2. Chapter 2 : Building our GraphQL Server
    1. Creating our GraphQL Server 00:04:09
    2. Creating Database with MongoDB Atlas 00:04:24
    3. Creating Mongoose Models for User / Pin Data 00:06:39
  3. Chapter 3 : Social Login with Google OAuth 2.0
    1. Exploring our React App 00:03:48
    2. Setting up Google OAuth 00:04:53
    3. Adding Google Login Button 00:05:07
    4. Authenticating Users from Apollo Server 00:18:36
  4. Chapter 4 : Managing App State with useReducer / useContext Hooks
    1. Managing App State with useContext / useReducer 00:07:32
    2. Styling Splash Page / App Cleanup 00:05:09
  5. Chapter 5 : Protecting our App Route
    1. Creating Protected Route for App 00:07:46
  6. Chapter 6 : Building the Header
    1. Build Header Component 00:05:24
    2. Build Signout Button 00:05:39
  7. Chapter 7 : Building the Map / User Geolocation
    1. Creating and Styling our Map 00:09:33
    2. Placing a Pin at User's Current Position 00:07:13
  8. Chapter 8 : Creating Blog Area / Adding Draft Pins
    1. Adding Draft Pin 00:06:04
    2. Adding Blog Area for Pin Content 00:05:09
    3. Building / Styling Blog Components 00:07:25
    4. Managing Pin Content State and Deleting Draft Pins 00:07:28
  9. Chapter 9 : Image Uploads with Cloudinary Web API
    1. Uploading Images with Cloudinary 00:06:31
  10. Chapter 10 : Creating New User Pins
    1. Creating New Pins with CREATE_PIN Mutation 00:14:41
  11. Chapter 11 : Making Custom useClient Hook
    1. Create Custom GraphQL Request Hook 00:08:16
  12. Chapter 12 : Getting / Displaying Created Pins
    1. Displaying Created Pins on the Map 00:12:34
  13. Chapter 13 : Popups and Highlighting New Pins
    1. Highlighting Newly Created Pins 00:03:11
    2. Adding Popup to our Pins 00:08:07
  14. Chapter 14 : Deleting User Pins
    1. Deleting Pins with DELETE_PIN Mutation 00:07:05
  15. Chapter 15 : Displaying Pin Content
    1. Building Out / Styling Pin Content 00:07:24
  16. Chapter 16 : Add Comment Functionality
    1. Building out Components to Create / Display User Comments 00:06:28
    2. Creating Comments with CREATE_COMMENT_MUTATION 00:16:18
  17. Chapter 17 : Client Error Handling
    1. Handling Expired Auth Token Errors 00:02:43
  18. Chapter 18 : Live Data with GraphQL Subscriptions / Apollo Client
    1. Setting up Subscriptions on the Backend 00:11:34
    2. Subscribing to Live Data Changes with Apollo Client 00:10:29
  19. Chapter 19 : Styling our App for Mobile / useMediaQuery
    1. useMediaQuery for Easy Mobile / Response Design 00:10:13
  20. Chapter 20 : Improving our App / Fixing App Issues
    1. Fixing App Issues 00:05:58
  21. Chapter 21 : Deploying our App
    1. Deploying with Now v2 and Heroku 00:14:13

Product Information

  • Title: Build a Realtime App with React Hooks and GraphQL
  • Author(s): Reed Barger
  • Release date: October 2019
  • Publisher(s): Packt Publishing
  • ISBN: 9781839212970