4.49 out of 5
4.49
137 reviews on Udemy

Build a Realtime App with React Hooks and GraphQL

Master the latest and greatest features in React within the context of a full-stack, real-world app
Instructor:
Reed Barger
949 students enrolled
English [Auto-generated]
Building practical, feature-rich apps with React Hooks and GraphQL
Managing state in real-world apps with React Hooks
How to build fullstack apps with React Hooks and GraphQL
Integrating GraphQL client / server libraries with React Hooks

Want to build real-world, full-stack apps with React Hooks? Look no further than this course.

### WHAT WILL WE BE BUILDING? ###

A realtime, full-stack React app 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!), with Social Authentication (Google OAuth2), realtime 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 realtime–to share pictures, reviews of the location and area, interact with other users by adding comments to their pins, and manage the pins they’ve created.

### WHAT CONCEPTS WILL IT COVER? ###

  • 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 the major concepts within GraphQL: Queries, Mutations, Subscriptions, TypeDefs, Resolvers, Inputs, etc

  • All the major hooks (useState, useEffect, useContext, useReducer)

  • Building Custom Hooks to ‘hook in’ to additional functionality to your applications

  • Integrating Social Login (Google OAuth) with Apollo Server 2

  • Display App Changes in Realtime 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

  • The Material UI ‘useMediaQuery’ Hook for dead-simple mobile / responsive design

  • Develop stunning map applications with the Mapbox API and ReactMapGL

  • 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 our server and in our React client

  • Async / await functions along with tons of ES6 / ES7 concepts

  • Deployment with Heroku and Now v2

  • And tons more!

Getting Started

1
What You Need For This Course
2
How To Get the Most Out Of This Course
3
Git Clone Repo and Install Dependencies

Building our GraphQL Server

1
Creating our GraphQL Server
2
Creating Database with MongoDB Atlas
3
Creating Mongoose Models for User / Pin Data

Social Login with Google OAuth 2.0

1
Exploring our React App
2
Setting up Google OAuth
3
Adding Google Login Button
4
Authenticating Users from Apollo Server

Managing App State with useReducer / useContext Hooks

1
Managing App State with useContext / useReducer
2
Styling Splash Page / App Cleanup

Protecting our App Route

1
Creating Protected Route for App

Building the Header

1
Build Header Component
2
Build Signout Button

Building the Map / User Geolocation

1
Creating and Styling our Map
2
Placing a Pin at User's Current Position

Creating Blog Area / Adding Draft Pins

1
Adding Draft Pin
2
Adding Blog Area for Pin Content
3
Building / Styling Blog Components
4
Managing Pin Content State and Deleting Draft Pins

Image Uploads with Cloudinary Web API

1
Uploading Images with Cloudinary

Creating New User Pins

1
Creating New Pins with CREATE_PIN Mutation

Making Custom useClient Hook

1
Create Custom GraphQL Request Hook

Getting / Displaying Created Pins

1
Displaying Created Pins on the Map

Popups and Highlighting New Pins

1
Highlighting Newly Created Pins
2
Adding Popup to our Pins

Deleting User Pins

1
Deleting Pins with DELETE_PIN Mutation

Displaying Pin Content

1
Building Out / Styling Pin Content

Add Comment Functionality

1
Building out Components to Create / Display User Comments
2
Creating Comments with CREATE_COMMENT_MUTATION

Client Error Handling

1
Handling Expired Auth Token Errors

Live Data with GraphQL Subscriptions / Apollo Client

1
Setting up Subscriptions on the Backend
2
Subscribing to Live Data Changes with Apollo Client

Styling our App for Mobile / useMediaQuery

1
useMediaQuery for Easy Mobile / Response Design

Improving our App / Fixing App Issues

1
Fixing App Issues

Deploying our App

1
Deploying with Now v2 and Heroku

BONUS

1
Bonus Lecture
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.5
4.5 out of 5
137 Ratings

Detailed Rating

Stars 5
87
Stars 4
29
Stars 3
10
Stars 2
5
Stars 1
2
097ee4b9b5a539c5b7b3faca5f60e927
30-Day Money-Back Guarantee

Includes

5 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion