Full-Stack React with GraphQL and Apollo Boost
Course description
This course is designed for anyone who wants to start building applications with React and GraphQL! In this course, we will build a recipe application from scratch with full authentication (sign up, sign in, sign out), as well as the ability to create, browse, search for, save, and delete recipes.
Read more about the course
Building this project will give you the skills to create full-stack React and GraphQL applications from scratch for any theme you like!
This course presumes some experience with React, but if you are familiar with basic JavaScript concepts and have some knowledge of ES6 features, you will be able to follow along just fine.
We will begin by building a backend with Node.js using the Express framework, then learn how to integrate our backend with GraphQL. We'll learn about essential topics within GraphQL such as queries, mutations, schemas and resolvers, we'll learn the GraphQL syntax and work extensively with GraphiQL to test our queries and mutations, after which we will move onto working with React.
Then we will build a React application and then connect it to our GraphQL-Express backend using Apollo Boost. We'll cover all of the latest features of Apollo Boost and React Apollo, including ApolloClient, ApolloProvider/ApolloConsumer, as well as Query and Mutation components. On top of that, we'll learn how to refetch queries, use optimistic UI, nest query and mutation components, use fragments and much more!
On top of learning all about Apollo Boost, we will use essential React libraries such as React Router (version 4) to provide routing for our application, learn how to make protected routes, use essential lifecycle methods, reinforce proper state management practices, use helpful ES6 features such as the object and array spread operators and object and array destructuring, as well as cleaner React practices such as the property initializer syntax.
Once we are done creating our application, we will go through the process of deploying to Heroku. We will create a postbuild script that will allow us to deploy our full-stack app using the Heroku CLI.
As a bonus section, we're going to dive into some additional React component libraries (i.e. react-pose, react-spinners) that will give us the ability to further style and animate our application to make it production-ready, give users the ability to customize their recipes, and make our application responsive with CSS grid.
Requirements:
A basic familiarity with React
Some knowledge of JavaScript ES6 features is helpful, but not required
- Any developer who wants to learn to make full-stack web applications with React and GraphQL from scratch
What you'll learn:
- Make practical, production-ready full-stack applications with React and GraphQL
- Learn the GraphQL language, how to write queries and mutations both on the client and the server
- Learn React-Apollo in-depth, including Query and Mutation Components, Nested Components, Optimistic UI and Refetching Queries
- Understand how to use and set up Apollo Boost within React applications
- Implement essential web app features such as user authentication, searching, and route protection
- Authenticate your GraphQL application using JSON Web Tokens
- Learn advanced React patterns such as higher-order components and render props
- Discover many useful features of React Router 4
- Learn and reinforce effective state management patterns
- Animate your React app with popular component libraries such as React Pose
- Deploy and redeploy full-stack React applications to the web
Watch Online
| # | Lesson Title | Duration |
|---|---|---|
| 1 | Project App Demo | 10:53 |
| 2 | GraphQL Introduction | 08:10 |
| 3 | Apollo / Apollo Boost Introduction | 03:05 |
| 4 | Install Packages our for Project | 01:59 |
| 5 | Git Clone and npm Install Dependencies | 01:08 |
| 6 | Initialize Express Server | 02:38 |
| 7 | Create MongoDB Atlas Database and Connect To It | 05:49 |
| 8 | Create Mongoose Schemas | 06:07 |
| 9 | Add Apollo-Express Middleware | 04:23 |
| 10 | Create GraphQL Schema | 04:34 |
| 11 | Add bodyParser Middleware and Root Query Type | 03:48 |
| 12 | Create First Mutation | 05:28 |
| 13 | Create First Query | 03:24 |
| 14 | Create React Application with create-react-app | 01:41 |
| 15 | Clean Up App.js and Add Components Folder | 02:46 |
| 16 | Add Client Dependencies and Set Up ApolloClient/ApolloProvider | 02:02 |
| 17 | Create Queries Folder, Write First Apollo Query | 05:06 |
| 18 | Add cors Middleware to Prevent Cross-Origin Errors | 02:06 |
| 19 | Add Skeleton CSS and Base Styles | 01:20 |
| 20 | Create Signup Mutation | 06:19 |
| 21 | Hash User Password with bcrypt | 03:34 |
| 22 | Add Routing with react-router-dom | 05:18 |
| 23 | Add Form to Signup Component | 03:07 |
| 24 | Manage Input State in Signup Form | 05:37 |
| 25 | Add Mutation Component to Signup Component, Write SIGNUP_USER Apollo Mutation | 05:43 |
| 26 | Add onSubmit to Signup Form, Run Signup Mutation on Client | 03:59 |
| 27 | Create Error Component, Clear State Upon Submit, Add Form Validation | 09:12 |
| 28 | Create Signin Mutation on Backend | 05:36 |
| 29 | Implement Signin Mutation on Client | 03:38 |
| 30 | Add Token to Local Storage, Put Token on Authorization Header | 06:27 |
| 31 | Verify JWT on Backend to Get Current User | 03:20 |
| 32 | Add getCurrentUser Query, Create withSession Component | 10:32 |
| 33 | Redirect Upon Signin/Signup, Refetch getCurrentUser Query Upon Redirect | 05:34 |
| 34 | Add Navbar Component, Add Search Component | 06:22 |
| 35 | Add Navbar Links For Auth User | 04:52 |
| 36 | Make Navbar Dynamic, Add Custom Heading | 03:33 |
| 37 | Implement Signout Button | 06:08 |
| 38 | Map Over Recipes, Create Recipe Item Component | 05:35 |
| 39 | Create Recipe Page, Get Recipe Id From Path | 06:08 |
| 40 | Add getRecipe Query in Backend, Run Query on Recipe Page | 06:07 |
| 41 | Output getRecipe Data to Recipe Page, Scaffold Add Recipe Form | 06:26 |
| 42 | Make AddRecipe a Stateful Component | 05:46 |
| 43 | Implement addRecipe Mutation on Client | 11:46 |
| 44 | Clear State and Redirect Upon addRecipe Mutation | 03:29 |
| 45 | Learning and Implementing Optimistic UI | 10:27 |
| 46 | Create searchRecipes Query on Backend, add Apollo Query to Search Component | 07:59 |
| 47 | Index Recipe Fields, Perform Search Query on Input Change Event | 08:59 |
| 48 | Add SearchItem Component | 02:51 |
| 49 | Add UserInfo Component to Profile Page | 09:48 |
| 50 | Add UserRecipes Component to Profile Page, Implement getUserRecipes Query | 07:47 |
| 51 | Add Route Protection with withAuth Component | 09:00 |
| 52 | Add and Implement deleteUserRecipe Mutation | 06:53 |
| 53 | Add Optimistic UI to deleteUserRecipe Mutation | 05:13 |
| 54 | Add refetchQueries to deleteUserRecipe Mutation | 02:04 |
| 55 | Add refetchQueries to addRecipe Mutation | 02:08 |
| 56 | Provide Default Text for User Without Recipes | 01:27 |
| 57 | Create LikeRecipe Component and Hide If Not Auth | 04:06 |
| 58 | Add and Implement likeRecipe Mutation | 08:07 |
| 59 | Develop Client-side Logic to Properly Toggle Like | 05:40 |
| 60 | Create and Implement unlikeRecipe Mutation with Optimistic UI | 09:43 |
| 61 | Prepare for Deployment | 04:13 |
| 62 | Use Fragments to Clean Up Queries | 05:04 |
| 63 | Deploy to Heroku | 12:49 |
| 64 | Add Additional CSS to Project | 01:50 |
| 65 | Adds imageUrl field on Recipe model and imageUrl input in addRecipe | 04:45 |
| 66 | Display Recipe Image on Home Page, Build Card | 04:37 |
| 67 | Style Recipe Page | 05:31 |
| 68 | Add CKEditor Component to AddRecipe Page for Formatted Instructions | 05:54 |
| 69 | Intro to React Pose Animation Library | 07:26 |
| 70 | Add React Pose Animation to Home Page | 07:18 |
| 71 | Add Spinners When Loading | 05:03 |
| 72 | Style Searchbar and Redeploy | 04:17 |
| 73 | Add Update Button, Make UserRecipes Stateful Component | 02:53 |
| 74 | Create Edit Recipe Modal | 06:46 |
| 75 | Populate Edit Recipe Modal | 04:53 |
| 76 | Create updateUserRecipe Mutation, Execute on Client | 08:25 |
Comments
0 commentsWant to join the conversation?
Sign in to commentSimilar courses
Web Security Dev Academy - 12-week online program
Serverless Framework Bootcamp: Node.js, AWS & Microservices
Scale React Development with Nx
100 Days Of Code: The Complete Web Development Bootcamp 2024