Course Overview

What will you learn?

Have you heard about GraphQL? Have you always wanted to understand the basics of GraphQL? This course is for developers wishing to learn about GraphQL in a practical, hands-on manner.

During the course students will be able to acquire the necessary skills to understand and work with GraphQL's basic as well as advanced features, including but not limited to:

  • Have a basic understanding of basic scalar types

  • Create custom scalars

  • Be familiar with Resolvers, Type Definitions (Schemas)

  • Understand the importance of a data model in relation to GraphQL

  • Understand how GraphQL queries work - including parameterised queries

  • Get a working knowledge of GraphQL mutations

  • Understand how file uploads work using GraphQL

  • Learn how to serve images in a GraphQL context

  • Go hands-on and learn how authentication and authorisation works in GraphQL

  • Create 4 sample applications:

    • Implement a basic application to run GraphQL queries

    • Implement a more advanced application that uses React to work with GraphQL

    • Enhance the aforementioned application and extend it with authentication and authorisation

    • Create an application to understand how to serve/display images and upload files using purely GraphQL

This course mostly utilises the Apollo GraphQL services.

Please note that during the course several applications are created - mostly using React, however this course does not contain information on React. It does however discuss the React parts that are relevant to the context - therefore only students who are already somewhat familiar with React should purchase this course.

Course curriculum

  • 1
    Introduction
    • Introduction to GraphQL
    • Creating the application shell
  • 2
    Working with Static Data
    • Basic GraphQL Queries and Types
    • Additional basic GraphQL Queries
    • GraphQL Queries with Parameters
    • Student Challenge - create your own GraphQL Type
    • Solution to the Student Challenge
  • 3
    GraphQL Type Relationships
    • Type Relationships in GraphQL
    • Student Challenge: Create a type relationship
    • Solution to the Student Challenge
  • 4
    GraphQL Mutations
    • Basic mutations
    • Basic mutations - continued
  • 5
    Code refactoring
    • Separating Models, Schemas and Resolvers
    • Separating Models, Schemas and Resolvers - continued
  • 6
    Adding a database for GraphQL
    • Installing MySQL and Workbench
    • Serving Data from the Database
    • Updating GraphQL Resolvers to use the Database
    • Updating GraphQL Resolvers to use the Database - continued
    • Adding CORS to GraphQL
  • 7
    GraphQL and React
    • Getting started with React and GraphQL
    • Finishing up with the React and GraphQL application
  • 8
    Authentication and Authorisation in GraphQL
    • Installing the necessary dependencies
    • Preparing the model for authentication
    • Registering a user via GraphQL
    • Creating A JSON Web Token via GraphQL
    • Adding authorisation via GraphQL
  • 9
    Managing Images with GraphQL
    • Introduction to Cloudinary
    • Uploading images via GraphQL
    • Using Custom Scalars and Serving Images
  • 10
    Create an Application to Display an Image via GraphQL
    • Using Pug as a Templating System with Express and GraphQL
    • Accessing GraphQL Query Data From Pug - part 1
    • Wrapping Up the Application to Display a Profile Image
    • Wrapping Up the Application to Display a Profile Image
  • 11