We may earn an affiliate commission when you visit our partners.
Course image
Andrew Mead

Do you want to learn GraphQL and keep your Node.js skills up-to-date and relevant?

Read more

Do you want to learn GraphQL and keep your Node.js skills up-to-date and relevant?

GraphQL is quickly changing how Node.js developers write their APIs and backend applications. It offers a much-needed replacement to the traditional It’s by far the most exciting change we’ve seen to Node.js development in a long time. Goodbye Express. Hello GraphQL.

Who should learn GraphQL? Anyone building backend applications with Node.js.

In this class, you’ll learn how to use GraphQL to replace the standard Express GraphQL can be used with any client that has internet access, whether it’s a web app, mobile app, or server-side application.

Big and small companies, from Twitter and Facebook to Yelp and Twitch, are switching from frameworks like Express to GraphQL.

I designed this class to give you the skills and real-world experience needed to build and launch your own GraphQL apps.

To kick the class off, we’ll answer a few important questions. What is GraphQL? Why is it useful? How is GraphQL going to help me build better applications with Node.js?

Next, you’ll master the fundamentals of GraphQL by building out a blogging application. You’ll learn about GraphQL schemas, data types, queries, mutations, subscriptions, and many other fantastic GraphQL features.

From there, you’ll set up advanced features like authentication, database storage, production deployment, automated test suites, and more.

Throughout the course you’ll learn how to:

  1. Model your application data using schemas

  2. Create queries and subscriptions allowing clients to access data in the database

  3. Create mutations allowing clients to create and change data in the database

  4. Query and change your data from the browser by making requests with Apollo Client

  5. Work with the Prisma ORM (v1) to communicate with your database via a GraphQL API

  6. Deploy your GraphQL applications to production

  7. Secure your application data with an authentication system

  8. Write an automated test suite for your application

Learn GraphQL by Writing Code

This course was designed to be interactive, with more than 80 challenges along the way to get you writing code and solving problems on your own. This will give you the real-world skills and experience needed to write GraphQL applications once you’re done with the class.

Everything you need comes in one easy-to-use package.

There’s no need to worry whether you’re learning the right skills to land that GraphQL job or launch that GraphQL app. I’ve mapped out everything you need to know in an interactive, easy-to-follow package designed to get you up and running in a couple of weeks.

Get access to fast support if you get stuck.

There’s nothing worse than getting stuck ten hours into a course and not getting the help you need to continue. Getting stuck is part of the learning process. That’s why I’m here to answer every single question.

I guarantee this is the most up-to-date and engaging GraphQL course available, and it comes with a Udemy 30-day money-back guarantee.

The first videos are available as a free preview, so I’ll see you inside the class.

- Andrew Mead

Enroll now

What's inside

Learning objectives

  • Learn and master graphql by building real-world node applications.
  • Use prisma v1 to store and access data from a production database.
  • Use apollo client to communicate with graphql from your web app.
  • Learn how to deploy and test your graphql applications.
  • Test your skills and gain confidence by completing more than 80 coding challenges.
  • Get access to a free 110-page pdf guide with lecture notes, code samples, and documentation links.

Syllabus

In this first section, we’re going to explore what you’ll learn in this course. You’ll learn why GraphQL is a great language to know, and you’ll explore what’s covered in the class.
Read more
Welcome to the Class!
Grab the PDF Guide
Why GraphQL?
Installing Node.js and VSC
In this section, you’re going to start exploring GraphQL. You’ll learn how to query data via the query operation, and you’ll learn how to change data using the mutation operation.

In this section, you’ll learn how to work with arrays in GraphQL. This lesson covers arrays where the array elements are scalar values such as string, numbers, or booleans.

In this lesson, you’re going to learn how to think in graphs. This will set us up to work with a GraphQL API in the next lesson.

In this video, you’re going to make your very first GraphQL query. Queries are used to fetch data from a GraphQL API.

Nested GraphQL Queries

In this lesson, you’re going to set up Babel. This will allow you to take advantage of all the latest JavaScript features such as the ES6 import/export syntax.

In this video, you’re going to learn about JavaScript modules. JavaScript modules make it easy to share code between files, allowing us to create more advanced applications without messy code.

In this lesson, you’re going to set up your very own GraphQL API!

In this lesson, you’re going to learn about the five scalar types supported by GraphQL.

In this lesson, you’re going to set up nodemon with Node and Babel. Nodemon will automatically restart your server after you make any changes, allowing you to speed up development.

In this lesson, you’ll be creating your first custom object types. This will allow you to model your application data and represent it in the application schema.

In this lesson, you’re going to explore operation arguments. This allows you to pass data from the client to the GraphQL server.

In this lesson, you’ll learn how to work with arrays in GraphQL. This lesson covers arrays where the array elements are scalar values such as string, numbers, or booleans.

In this lesson, you’re going to continue learning about arrays. Specifically, you’ll learn how to work with arrays of objects, such as an array of posts or an array of users.

In this lesson, you’ll start to explore relational data in GraphQL. Setting up relationships between your object types allows you to query based on those relationships, which is one of the best features of GraphQL.

In this lesson, you’ll continue exploring relational data in GraphQL by setting up an array-based association.

In this lesson, you’re going to start a three-part challenge series designed to test and reinforce what you’ve learned so far in the course.

In this lesson, you’re going to continue implementing comments by setting up associations between the comment and the post.

In this lesson, you’re going to wrap up this challenge series by setting up associations between the comment and the user.

By the end of this section, you’ll have everything you need to perform all the CRUD operations (create, read, update, delete).

In this section, you’ll be exploring GraphQL mutations. Mutations let you create, update, and delete data using GraphQL. By the end of this section, you’ll have everything you need to perform all the CRUD operations (create, read, update, delete).

In this lesson, you’ll create and execute your very first mutation. This will allow clients to perform operations like signing up a new user or creating a new post.

In this lesson, you’ll continue to explore mutations. You’ll set up mutations for types that have required associations with other types.

In this lesson, you’ll be configuring babel to support the object spread operator. You’ll also learn why this operator is useful and how it can be used to clean up our resolver methods.

In this lesson, you’re going to learn about the input type. This allows you to set up arguments as objects, giving you more control over how your operations function.

In this lesson, you’ll learn how to use mutations to remove data from a GraphQL back-end.

In this lesson, it’s going to be up to you to create mutations for deleting posts and comments.

In this lesson, you’re going to start refactoring your application’s architecture. The goal is to break up index.js into smaller files that are easier to manage and easier to scale.

In this lesson, you’ll wrap up refactoring the application by splitting the application resolvers up across several smaller files.

Updating Data with Mutations: Part I

In this lesson, it’s up to you to create mutations for updating posts and comments.

In this section, you’ll be exploring GraphQL subscriptions. Subscriptions give clients a way to subscribe to data changes and get notified by the server when data changes.

In this section, you’ll be exploring GraphQL subscriptions. Subscriptions give clients a way to subscribe to data changes and get notified by the server when data changes. Subscriptions make it possible to create real-time applications where the client renders data changes in real-time.

In this lesson, you’ll create your first subscription. The goal here is to explore the basic syntax used for subscriptions and actually get some real-time data sent from the server to the client.

In this lesson, you’ll be creating a GraphQL subscription for the blogging application. The subscription will allow clients to subscribe to new comments added on a given post. That would allow the front-end, whether it’s a mobile app or website, to render new comments to the visitors in real-time.

In this lesson, it’s your job to create a subscription that allows clients to be notified when new posts are created.

In this lesson, you’ll be expanding the post subscription. The server currently notifies subscribers when posts are created. This is a good start, but the server should also notify clients when posts are updated or deleted. This will allow the client to keep the UI completely up to date.

In this lesson, it’s going to be up to you to expand the comments subscription. The goal is to notify subscribers when comments are created, updated, or deleted.

In this lesson, you’re going to learn about enums (enumerations) in GraphQL.

In this section, you’ll be integrating Prisma into your GraphQL project. Prisma is a GraphQL specific ORM (Object Relational Mapping) that makes it easy to integrate data storage into GraphQL apps.

In this section, you’ll be integrating Prisma into your GraphQL project. Prisma is a GraphQL specific ORM (Object Relational Mapping) that makes it easy to integrate data storage into your GraphQL applications.

In this lesson, you’ll learn exactly what Prisma is and where it fits into your application’s architecture.

In this lesson, you’ll be setting up your Mac to work with Prisma. There are a few tools and dependencies you’ll need before it can be used.

In this lesson, you’ll be setting up your Windows machine to work with Prisma. There are a few tools and dependencies you’ll need before it can be used   

In this lesson, you’ll be setting up your Linux machine to work with Prisma. There are a few tools and dependencies you’ll need before it can be used.

In this lesson, you’ll be creating and running your first Prisma service using the tools set up in the previous videos.

In this video, you’re going to explore the GraphQL API that’s provided by Prisma.   

In this lesson, you’ll learn how to customize your Prisma data model and how to push those changes to the Prisma service.

In this lesson, it’s going to be up to you to integrate comments into the Prisma project.

In this lesson, you’ll learn how to communicate with the Prisma GraphQL API from Node.js. That will allow you to read and write to the database right from Node.js itself.

In this lesson, you’ll be exploring how to perform queries using the bindings you just configured. This will allow you to fetch data out of the database.

In this lesson, you’ll learn how to preform mutations using Prisma bindings. This will allow you to create, update, and delete data right from Node.js.

In this lesson, you’ll learn how to use async/await with the bindings provided by Prisma. Integrating async/await will simplify your asynchronous code, making it easier to read, write, and maintain.

In this lesson, you’ll learn how to check if a given record exists using the bindings provided by Prisma. This will enable checks such as checking if a given user exists with a specific email address.

In this lesson, you’ll learn how to customize the relationships between types. This gives you fine grain control over what happens to related data when a given record gets removed.

In this challenge video, it’ll be up to you to model a review website using what you’ve learned about GraphQL and Prisma.

In this challenge solution, you’ll go over the steps necessary to create a Prisma application for a review website.

In this section, you’ll learn how to create an authentication system using GraphQL. This will allow users to sign up and login to the application with an email and password.

In this section, you’ll learn how to create an authentication system using GraphQL. This will allow users to sign up and login to the application with an email and password. You’ll also learn how to limit access to your GraphQL API based on authentication.

In this lesson, you’ll start to integrate Prisma into your Node.js GraphQL API. The goal here is to set up the Node.js application as the middleman between the client and Prisma, allowing you to lock down your data with authentication.

In this lesson, you’ll learn how to take operation arguments provided to the Node.js API and pass them through to the Prisma API. This will allow you to set up filtering, sorting, and pagination.

In this lesson, you’ll explore how Prisma makes it unnecessary to set up custom type resolvers for associated data.

In this lesson, you’ll start integrating Prisma into the mutations for your Node.js GraphQL API. This is similar to what you’ve already done for your application queries.

In this lesson, it’s up to you to continue integrating Prisma into the Node.js application.

In this lesson, you’ll learn how to set up your subscriptions to work with Prisma. The good news is that you’ll be able to vastly simplify your application code.

In this lesson, you’ll learn how to lock down access to the Prisma API. Right now, the Prisma API is open to the public, allowing anyone to read and write from the database without needing to authenticate. That’s a problem.

In this lesson, you’ll make a small update to ensure that you can still fetch the generated schema from Prisma, even though Prisma is not protected by the secret.

In this lesson, you’ll start adding password support into the application. The goal here is to require a password when someone signs up for the application.

In this lesson, you’re going to learn about JSON Web Tokens. JSON Web Tokens, also known as JWTs, provide you with a secure way to create authentication tokens for your application.

In this lesson, it’ll be up to you to create a new mutation that allows users to log in to the application.

In this lesson, you’ll learn how to validate an authentication token.

In this video, you’ll start locking down your mutations. This will ensure the client is authenticated before any data in the database is created, updated, or deleted.

In this lesson, it’ll be up to you to lock down the other application mutations.

With your mutations behind authentication, in this video, you’ll learn how to lock down your application queries.

In this video, you’ll continue to lock down your application queries.

In this lesson, you’ll learn how to hide an individual field behind authentication. This will give you a way to hide user email address from the public.

In this lesson, you’ll learn about GraphQL fragments. Fragments give you a reusable way to define a selection set. No longer will you have to list out all the fields for a user, post, or comment every time you define your selection sets.

In this lesson, it’ll be up to you to clean up a few edge cases in the application.

In this lesson, you’ll learn how to put your subscriptions behind authentication.

In this lesson, you’ll learn how to expire JSON Web Tokens after a specific period of time.

In this video, you’ll allow users to update their passwords.

In this section, you’ll learn how to paginate and sort your GraphQL data. This will give more options to clients so they can request just the data they need, in the order they want it in.

In this section, you’ll learn how to paginate and sort your GraphQL data. This will give more options to clients so they can request just the data they need, in the order they want it in.

In this lesson, you’ll learn how to integrate pagination into your GraphQL queries. This will allow clients to fetch a limited number of posts, such as the first 20, with the ability to fetch the next set of 20 when they need them.

In this lesson, you’ll learn how to set up pagination using cursors. This is an alternative way to specify which records should be fetched.

In this lesson, you’ll learn how to work with createdAt and updatedAt. These timestamps keep track of when a given record was created and when it was last updated.

In this lesson, you’ll learn how to sort data with GraphQL and Prisma. This will allow clients to fetch data sorted in a way that’s useful to them. For example, blog posts on the home page should probably be sorted with the newest posts first.

In this section, you’ll be deploying your app to production. By the end, you’ll have a live GraphQL API that can be accessed by anyone with an internet connection.

In this section, you’ll be deploying your app to production. By the end, you’ll have a live GraphQL API that can be accessed by anyone with an internet connection.

In this lesson, you’ll set up your production database and production Prisma server using Prisma Cloud. Prisma Cloud makes it simple to deploy and manage your Prisma application.

In this lesson, you’ll deploy your Prisma project to the production server you created in the last lesson.

In this lesson, you’ll explore the production Prisma service you deployed in the last one.

In this lesson, you’ll start getting the Node.js application ready for deployment. There are a few changes that need to be made before Heroku will be able to run the app.

In this lesson, you’ll be wrapping up the deployment of the Node.js application. By the end, your GraphQL API will be deployed live to the web.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a strong foundation in GraphQL by teaching relational data and the five scalar types
Provides hands-on practice with over 80 coding challenges
Taught by Andrew Mead, a respected instructor in the Node.js community
Covers advanced features like authentication, database storage, and automated test suites
Students with prior experience in Node.js will benefit the most from this course
May require additional setup or configuration, depending on your environment

Save this course

Save The Modern GraphQL Bootcamp (with Node.js and Apollo) to your list so you can find it easily later:
Save

Reviews summary

Positive graphql training

Learners say that this course is superb and in-depth. They say that Andrew is an excellent instructor who provides thorough courses that require commitment. Anyone who fully completes one of his courses should feel confident they have a firm grasp of the materials.
Be ready to put in some time.
"They are extensive and take commitment to complete"
You'll get a lot out of this course.
"ultimately leading to a stronger comprehension"
Andrew is an exceptional instructor.
"Andrew always produces excellent, in depth courses."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in The Modern GraphQL Bootcamp (with Node.js and Apollo) with these activities:
Read Learning GraphQL
Gain a deeper understanding of GraphQL concepts and best practices by reading a comprehensive book on the subject.
Show steps
  • Read through the chapters covering the fundamentals of GraphQL.
  • Work through the examples and exercises provided in the book.
  • Summarize the key concepts and techniques you've learned.
Join a GraphQL study group or online community
Expand your knowledge and connect with other GraphQL enthusiasts by joining a study group or online community.
Browse courses on GraphQL
Show steps
  • Search for GraphQL study groups or online communities.
  • Join a group that aligns with your interests and learning goals.
  • Participate in discussions, ask questions, and share your experiences.
Create a React project
Build a simple React application to reinforce your understanding of GraphQL concepts and practice using the Apollo Client.
Browse courses on GraphQL
Show steps
  • Set up a new React project using create-react-app.
  • Install the necessary dependencies, including apollo-client and graphql.
  • Create a GraphQL schema and resolvers.
  • Connect your React application to the GraphQL API using Apollo Client.
  • Display data from the GraphQL API in your React components.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Solve GraphQL coding challenges
Test your understanding of GraphQL syntax and problem-solving skills by completing coding challenges.
Browse courses on GraphQL
Show steps
  • Find a platform or website that offers GraphQL coding challenges.
  • Attempt to solve the challenges, focusing on writing efficient and correct GraphQL queries and mutations.
  • Review your solutions and identify areas for improvement.
Attend a GraphQL workshop or conference
Immerse yourself in the latest GraphQL trends and best practices by attending a workshop or conference.
Browse courses on GraphQL
Show steps
  • Research upcoming GraphQL workshops or conferences.
  • Register for an event that aligns with your interests.
  • Attend sessions, participate in discussions, and network with other attendees.
Mentor junior developers or students learning GraphQL
Solidify your understanding of GraphQL by mentoring others and helping them overcome challenges.
Browse courses on GraphQL
Show steps
  • Identify opportunities to mentor others, such as through online forums or local meetups.
  • Provide guidance and support to mentees, answering their questions and helping them troubleshoot.
  • Reflect on your own learning journey and identify areas where you can continue to improve.
Develop a GraphQL API for a real-world project
Apply your GraphQL skills to a practical project by building a fully functional GraphQL API for a real-world use case.
Browse courses on GraphQL
Show steps
  • Define the requirements and scope of your project.
  • Design and implement the GraphQL schema and resolvers.
  • Integrate your API with a database or other data source.
  • Test and deploy your API.
Contribute to an open-source GraphQL project
Deepen your understanding of GraphQL and contribute to the community by contributing to an open-source GraphQL project.
Browse courses on GraphQL
Show steps
  • Find a GraphQL project on GitHub or other platforms.
  • Review the project's documentation and codebase.
  • Identify areas where you can contribute and submit a pull request.

Career center

Learners who complete The Modern GraphQL Bootcamp (with Node.js and Apollo) will develop knowledge and skills that may be useful to these careers:
GraphQL Developer
GraphQL is a GraphQL Developer's bread and butter. Though you may not build full-stack applications, you should still have a grasp on the backend code that is necessary to implement a GraphQL schema. This course provides a solid foundation in Node.js, the most popular backend stack for GraphQL.
Node.js Developer
Node.js Developers should have a solid understanding of GraphQL, as it's the most popular backend stack for GraphQL. This course will help you build a strong foundation in GraphQL, making you more versatile and employable in today's Node.js development market.
Backend Developer
Backend Developers should have a deep understanding of GraphQL, as it's quickly becoming the standard API format. This course will help you build a strong foundation in GraphQL, making you more sought-after for backend development roles.
Full-Stack Developer
Full-Stack Developers need a deep understanding of both frontend and backend development, including languages like Node.js and query tools like GraphQL. This course will help you build a strong GraphQL foundation for your backend development, making you more versatile and employable in today's full-stack development landscape.
Software Developer
Though Software Developers may not build as many GraphQL APIs as a dedicated GraphQL Developer, they should still understand and be able to implement basic GraphQL schemas. GraphQL is rapidly becoming the standard API format, and Software Developers who want to stay ahead of the curve should learn GraphQL today. This course will help you build a strong foundation in GraphQL, making you more versatile and employable in today's software development market.
Web Developer
Web Developers should know more than just the frontend code of the applications they are building. They should also have a basic understanding of the backend code, including languages like Node.js and query tools like GraphQL. This course will help you build a solid foundation in GraphQL, making you more versatile and employable in today's web development market.
Data Engineer
This course may be useful for Data Engineers who want to become full-stack engineers, or who want to better understand the backend code that they are working with. GraphQL is quickly becoming the standard API format, and Data Engineers who want to stay ahead of the curve will benefit from understanding GraphQL.
Database Administrator
This course may be useful for Database Administrators who want to become full-stack engineers, or who want to better understand the backend code that they are working with. GraphQL is quickly becoming the standard API format, and Database Administrators who want to stay ahead of the curve will benefit from understanding GraphQL.
Systems Analyst
This course may be useful for Systems Analysts who want to become full-stack engineers, or who want to better understand the backend code that they are working with. GraphQL is quickly becoming the standard API format, and Systems Analysts who want to stay ahead of the curve will benefit from understanding GraphQL.
Information Architect
This course may be useful for Information Architects who want to become full-stack engineers, or who want to better understand the backend code that they are working with. GraphQL is quickly becoming the standard API format, and Information Architects who want to stay ahead of the curve will benefit from understanding GraphQL.
Technical Writer
This course may be useful for Technical Writers who want to better understand the backend code that they are writing about. GraphQL is quickly becoming the standard API format, and Technical Writers who want to stay ahead of the curve will benefit from understanding GraphQL.
Security Analyst
This course may be useful for Security Analysts who want to better understand the backend code that they are securing. GraphQL is quickly becoming the standard API format, and Security Analysts who want to stay ahead of the curve will benefit from understanding GraphQL.
Help Desk Analyst
This course may be useful for Help Desk Analysts who want to better understand the backend code that they are supporting. GraphQL is quickly becoming the standard API format, and Help Desk Analysts who want to stay ahead of the curve will benefit from understanding GraphQL.
Desktop Support Technician
This course may be useful for Desktop Support Technicians who want to better understand the backend code that they are supporting. GraphQL is quickly becoming the standard API format, and Desktop Support Technicians who want to stay ahead of the curve will benefit from understanding GraphQL.
Network Administrator
This course may be useful for Network Administrators who want to better understand the backend code that they are managing. GraphQL is quickly becoming the standard API format, and Network Administrators who want to stay ahead of the curve will benefit from understanding GraphQL.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in The Modern GraphQL Bootcamp (with Node.js and Apollo).
Provides a comprehensive overview of GraphQL and Relay. It great resource for anyone who wants to learn more about GraphQL and Relay.
Guide to writing clean code. It covers everything from naming conventions to refactoring. It great resource for anyone who wants to learn more about writing clean code.
Beginner-friendly guide to Java. It covers everything from the basics to advanced topics. It great resource for anyone who wants to learn more about Java.
Comprehensive guide to the Rust programming language. It covers everything from the basics to advanced topics. It great resource for anyone who wants to learn more about Rust.
Comprehensive guide to the Go programming language. It covers everything from the basics to advanced topics. It great resource for anyone who wants to learn more about Go.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to The Modern GraphQL Bootcamp (with Node.js and Apollo).
GraphQL by Example
Most relevant
NodeJS - The Complete Guide (MVC, REST APIs, GraphQL,...
Most relevant
Exploring GraphQL: A Query Language for APIs
Most relevant
Event Driven Updates with Apollo Subscriptions
GraphQL with React: The Complete Developers Guide
Wire Up an Auction Website with GraphQL
Building React Native Apps with Redux and GraphQL
Building Data-driven React 17 Applications with Relay,...
Introduction to AWS AppSync
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser