Introduction
  • What is GraphQL
  • Prerequisites
Setting up database
  • Installing and setting up Sequelize
  • Creating application models
  • Defining models relationships
  • Database seeding
Getting started with GraphQL
  • Creating your first GraphQL server
  • Intro to GraphQL playground
  • Integrating GraphQL server with database
GraphQL type definitions
  • Object type definitions
  • Creating a custom DateTime scalar type
User authentication
  • Signing up
  • Signing in
  • Fetching the currently authenticated user
Threads
  • Fetching all categories
  • Creating a new thread
  • Fetching a single thread
  • Fetching all threads
  • Updating a thread
Replying to threads
  • Replying a thread
  • Marking a reply as favorite
  • Unmarking a reply as favorite
  • Marking a reply as best answer
  • Unmarking a reply as best answer
  • Updating a reply
  • Deleting a reply
Realtime updates with GraphQL subscriptions
  • Setting up GraphQL subscriptions on our GraphQL server
  • Subscribing to new thread reply
  • Subscribing to when a reply is favorited/unfavorited
  • Subscribing to when a reply is marked/unmarked as best answer
User account settings
  • Updating user details
  • Changing user password
  • Uploading user avatar
User profile
  • Fetching a single user
Admin moderation
  • Locking a thread
  • Unlocking a thread
GraphQL directives
  • What is a directive
  • Creating an @auth directive
  • Creating an @isAdmin directive
Filtering and pagination
  • Filtering threads by channels
  • Filtering by solved/unsolved threads
  • Filtering by own threads
  • Pagination: offset-based
  • Pagination: cursor-based
Optimizing queries with dataloader
  • Using dataloader