Build a Twitter clone using these technologies

10 things you will learn

  • How do GraphQL APIs work? How to define a GraphQL schema.

  • How are GraphQL APIs different from REST? The pros & cons of each.

  • What is AppSync? How does it compare to API Gateway?

  • How to test AppSync APIs both locally and remotely with end-to-end tests.

  • How to secure AppSync APIs with the right auth method and prevent unauthorized access.

  • Data modelling techniques for DynamoDB.

  • Hands-on experience with popular AWS services such as AppSync, Lambda and DynamoDB.

  • Hands-on experience building something non-trivial with the popular Vue.js framework.

  • How to build an effective caching strategy to optimize performance, cost and scalability.

  • Best practices for logging and monitoring so you can spot and fix issues in production quickly. [Premium package only]

Registration, Sign-Up, Sign-In

Build user flows for registration, sign-up, sign-in, and email verification with Amazon Cognito and AWS Amplify.

Tweets and Timelines

Build the Home page and show Twitter timeline, and add the ability to post new tweets, retweet, like and reply to another tweet.

Manage user profiles

Build the Profile page and allow users to edit their profiles, see their tweets and follow other users.
Watch Intro Video

Course curriculum

  • 5

    Chapter 4 - Building an AppSync backend (part 1)

    • Set up the backend project

      FREE PREVIEW
    • Designing the GraphQL schema

    • Configure Cognito User Pool

    • Save user profile on PostConfirmation

    • What should we test?

    • Add integration test for confirmUserSignup

    • Add acceptance test for confirmUserSignup

    • Implement getMyProfile query

    • Add unit test for getMyProfile query

    • Add acceptance test for getMyProfile query

    • Capture AppSync's GraphQLUrl in .env

    • Implement editMyProfile mutation

    • Add tests for editMyProfile mutation

    • Implement getImageUploadUrl query

    • Add unit test for getImageUploadUrl query

    • Add acceptance test for getImageUploadUrl query

    • Implement tweet mutation

    • Add integration test for tweet mutation

    • Add acceptance test for tweet mutation

    • Implement getTweets query

    • Add unit tests for getTweets query

    • Add acceptance test for getTweets query

    • Implement getMyTimeline query

    • Add tests for getMyTimeline query

    • Use context.info to remove unnecessary DynamoDB calls

    • How are you finding the AppSync Masterclass so far?

    • Implement like mutation

    • Implement Tweet.liked nested resolver

    • Rewrite tests with GraphQL fragments

    • Add tests for like mutation

    • Implement unlike mutation

    • Add tests for unlike mutation

    • Implement getLikes query

    • Add tests for getLikes query

    • Implement Profile.tweets nested resolver

    • Implement retweet mutation

    • Implement Retweet nested resolvers

    • Add integration tests for retweet mutation

    • Add acceptance tests for retweet mutation

    • Implement unretweet mutation

    • Add integration tests for unretweet mutation

    • Add acceptance tests for unretweet mutation

    • Implement reply mutation

    • Add tests for reply mutation

    • Implement Reply nested resolvers

    • Add unit tests for Reply.inReplyToUsers VTL

    • Add acceptance tests for reply mutation

    • Implement follow mutation

    • Implement Profile.following and Profile.followedBy

    • Implement getProfile query

    • Add tests for follow mutation

    • Distribute tweets to followers

    • Add tweets to timeline when following someone [coming soon]

    • Implement unfollow mutation [coming soon]

    • Add tests for unfollow mutation [coming soon]

    • Implement getFollowers query [coming soon]

    • Add tests for getFollowers query [coming soon]

    • Implement getFollowing query [coming soon]

    • Add tests for getFollowing query [coming soon]

    • Configure CI/CD pipeline [coming soon]

  • 6

    Chapter 5 - Building a SPA with Vue.js and Tailwind CSS (part 1)

    • More details to come

  • 7

    Chapter 6 - Building an AppSync backend (part 2)

    • Sign up to Algolia [coming soon]

    • Add search to GraphQL schema [coming soon]

    • Implement search query [coming soon]

    • Add tests for search query [coming soon]

    • Support tracking hashtags [coming soon]

    • Add getHashTag to GraphQL schema [coming soon]

    • Implement getHashTag query [coming soon]

    • Add tests for getHashTag query [coming soon]

    • What are AppSync subscriptions? [coming soon]

    • Add subscription for retweets [coming soon]

    • Add subscription for likes [coming soon]

    • Add subscription for mentions [coming soon]

    • Support Direct Messages in the GraphQL schema [coming soon]

    • Implement sendDirectMessage mutation [coming soon]

    • Implement listConversations query [coming soon]

    • Implement getDirectMessages query [coming soon]

    • Understanding AppSync caching [coming soon]

    • Configure per-resolver caching [coming soon]

    • How to support 2-way pagination? [coming soon]

    • Add two-way pagination support for timeline [coming soon]

  • 8

    Chapter 7 - Building a SPA with Vue.js and TailwindCSS (part 2)

    • More details to come

Your instructors