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. 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.
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!
- Requirements:
- Basic understanding of React / React Hooks (i.e. having taken my React Hooks course)
- Familiarity with GraphQL
- React / JavaScript developers wanting to learn cutting-edge development tools and techniques
- Developers looking to build complete real-world JavaScript applications
What you'll learn:
- 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
Watch Online Build a Realtime App with React Hooks and GraphQL
# | Title | Duration |
---|---|---|
1 | What You Need For This Course | 01:40 |
2 | How To Get the Most Out Of This Course | 01:35 |
3 | Git Clone Repo and Install Dependencies | 01:25 |
4 | Creating our GraphQL Server | 04:09 |
5 | Creating Database with MongoDB Atlas | 04:25 |
6 | Creating Mongoose Models for User / Pin Data | 06:40 |
7 | Exploring our React App | 03:49 |
8 | Setting up Google OAuth | 04:54 |
9 | Adding Google Login Button | 05:07 |
10 | Authenticating Users from Apollo Server | 18:37 |
11 | Managing App State with useContext / useReducer | 07:32 |
12 | Styling Splash Page / App Cleanup | 05:10 |
13 | Creating Protected Route for App | 07:47 |
14 | Build Header Component | 05:24 |
15 | Build Signout Button | 05:40 |
16 | Creating and Styling our Map | 09:33 |
17 | Placing a Pin at User's Current Position | 07:14 |
18 | Adding Draft Pin | 06:05 |
19 | Adding Blog Area for Pin Content | 05:09 |
20 | Building / Styling Blog Components | 07:26 |
21 | Managing Pin Content State and Deleting Draft Pins | 07:28 |
22 | Uploading Images with Cloudinary | 06:32 |
23 | Creating New Pins with CREATE_PIN Mutation | 14:42 |
24 | Create Custom GraphQL Request Hook | 08:16 |
25 | Displaying Created Pins on the Map | 12:34 |
26 | Highlighting Newly Created Pins | 03:11 |
27 | Adding Popup to our Pins | 08:08 |
28 | Deleting Pins with DELETE_PIN Mutation | 07:05 |
29 | Building Out / Styling Pin Content | 07:24 |
30 | Building out Components to Create / Display User Comments | 06:28 |
31 | Creating Comments with CREATE_COMMENT_MUTATION | 16:19 |
32 | Handling Expired Auth Token Errors | 02:43 |
33 | Setting up Subscriptions on the Backend | 11:34 |
34 | Subscribing to Live Data Changes with Apollo Client | 10:28 |
35 | useMediaQuery for Easy Mobile / Response Design | 10:13 |
36 | Fixing App Issues | 05:59 |
37 | Deploying with Now v2 and Heroku | 14:14 |