
Meet Paolo, a software engineer and Udemy instructor, and preview using GraphQL, AWS AppSync, Amplify, and React to build a blog app.
Build a full-stack app with AWS AppSync and Amplify using React and Next.js, featuring Cognito authentication, post creation, editing, deletion, post details, and rich text comments.
Learn to build serverless apps with AppSync APIs, provision with Amplify CLI, and connect a React front end using GraphQL and DynamoDB, with Amazon Cognito authentication.
This course follows a three-part structure to teach AWS AppSync and Amplify for serverless APIs with GraphQL, including an optional GraphQL fundamentals section.
Discover how App Sync acts as the facilitator between client apps and AWS data sources, enabling real-time, offline-capable, secured APIs with a graphical schema, resolvers, and multiple data sources.
Learn how the AWS Amplify CLI accelerates serverless app development by configuring cloud services with commands, including modules for auth, analytics, storage, API with GraphQL, App Sync, and UI components.
Install commander, Node.js, and Visual Studio Code to set up a cross‑platform development workflow, enabling a graphical API server project with uniform commands and a capable IDE.
Install essential vscode extensions—auto import, GraphQL for vscode, GraphQL language support, path IntelliSense, and prettier—to speed up coding and prepare your first GraphQL server project.
Create your AWS account with the sign-up wizard to access the 12 months of free tier, or sign in if you already have one.
Install the Amplify CLI with npm and ensure Node.js is installed. Sign in to AWS, set a region, and create an IAM user with access keys to configure a profile.
Set up your first GraphQL project by creating a folder, initializing npm, and installing Express in a server directory, then open it with code to prepare for server-side JavaScript.
Set up a node express server by creating app.js, importing the express framework, instantiating the app, and listening on port 4000 with a callback log.
Install GraphQL and express-graphql, configure a /graphql endpoint in an Express app, enable the graphical interface for interactive queries, and use nodemon for automatic server reloads.
Create and understand a schema that defines types, fields, and relationships in a GraphQL API, serving as a blueprint for querying users, siblings, and hobbies.
Create and query a GraphQL schema by defining a user type with id, name, and age, set up a root query with arguments, and implement a resolve to fetch data.
Explore how the resolve method returns data by filtering a dummy users array with lodash's find, using an id to fetch name and age, and plan adding a new field.
Add a hobby type and a root query to a GraphQL API, define fields like id, title, description, and wire dummy user and hobby data to support queries.
Develop and query a post type in a graph data model by defining id and comment fields, wiring root queries, and exploring relationships between posts, hobbies, and users with GraphQL.
Explore one-to-many relationships by linking users, hobbies, and posts with IDs and array fields, enabling related data queries in the AppSync GraphQL schema.
Learn to create and resolve one-to-many relationships between posts and users by adding a user ID field, wiring GraphQL resolvers, and querying posts with their related user data.
Relate user data to hobbies in a GraphQL schema by linking user IDs to hobby records, enabling nested queries that fetch user details per hobby.
Extend the user type with a posts field to fetch related posts via a GraphQL list and a user ID filter. Retrieve nested data like comments and prepare for hobbies.
Define a hobbies field as a list in GraphQL and fetch user data, posts, and hobby details (description, title, id) in a single AppSync query.
Explore how mutations in GraphQL change data on the backend to complement queries. Combine queries and mutations to fetch and modify data within GraphQL.
Define and resolve a create user mutation in GraphQL, passing name, age, and profession and returning the new user. Then add a create post mutation aligned with the post type.
Create a post mutation with a user ID to establish the post user relationship and return the post, while enabling cascading data retrieval for related user details.
Create a hobby via a GraphQL mutation by providing a title, description, and user ID, and test it in the GraphQL playground alongside other mutations.
Learn how to query all users, hobbies, and posts with plural list fields in GraphQL, selecting user fields and nested hobbies and posts to fetch the full data tree.
Define GraphQL list types for posts and hobbies and implement resolve functions to return posts data and hobbies data in a React and AWS Amplify workflow.
Explore GraphQL scalar types and object types by defining a person type with id (ID), string, int, float, and boolean fields, using Express with GraphQL and schemas for testing.
Enforce non-null fields in GraphQL by wrapping base types with non-null, ensuring name and age fields cannot be null, and explain the exclamation mark as a non-null indicator.
Explore defining scalar and object types, adding fields to a root query, and using a resolve function to return a sample person with name and age in a GraphQL schema.
Explore how MongoDB stores data in collections and documents with an automatic object id as a primary key, offering flexible, schema-less storage with no joins.
Create a MongoDB atlas account, set up a free tier cluster, and enable ip access. Build a project, add a database user, and prepare the connection string for app integration.
Connect a node app to MongoDB Atlas using mongoose, configuring a JSON environment file with database, username, and password; install mongoose, set up the connection and port, and troubleshoot authentication.
Create and export mongoose models from schemas to store user, hobby, and post data in MongoDB, defining fields name, age, and profession, and set use find and modify to false.
Define hobby and post Mongoose schemas, adding title, description, and comment fields, export the models, and wire a hobby reference to support backend data storage in the app.
Create and save a user to the MongoDB backend via a mongoose model and mutation. Link and save a post with the user id, using server-side ID generation.
Explore querying a user and retrieving their posts and hobbies via a GraphQL schema, using user id relationships to filter posts and hobbies and traverse linked data.
Enable cors to whitelist requests, install and configure the cors package, and enforce non-null fields in graphql mutations to require name and age for user creation.
Finish adding nonnull constraints to fields across user, post, and hobby mutations, ensuring required user id, comment, title, and description for consistent data integrity.
Learn how to implement an update user mutation in GraphQL, passing id and fields name, age, and profession, using find by id update with new: true to return updated user.
Learn how to update a post with GraphQL mutations in AppSync and Amplify, including passing the post ID and updated fields, with meaningful names, and returning the updated post.
Update a hobby by defining the update hobby mutation, supplying id, title, and description, and verifying the mutation sits inside the root mutation object to execute correctly.
Implement a remove user mutation in GraphQL with a non-null id, using mongoose to find by id and remove, handling errors, and returning the removed user.
Remove a post and a hobby by passing the post ID and type, resolve, and execute the method, and return the removed items while handling errors.
publish the GraphQL api from local development to a real web server, such as Heroku, so you can share a stable endpoint and let others fetch data.
Deploy your API to a Heroku remote server using the CLI and a proc file. Configure MongoDB Atlas credentials as config vars and publish your GraphQL endpoint.
Explore GraphQL playgrounds to connect to your API and run queries and mutations. View documents and schemas, download the schema, and share a live endpoint hosted on Oracle.
Have you ever wondered how to create a production-ready backend API in AWS?
On top of it, what if it was all serverless and powered by GraphQL?
What if it could scale to millions of requests?
What if it was... easy!?
-----
AWS AppSync & Amplify is the BEST way to start deploying GraphQL-based applications in the AWS Cloud, all without deploying any servers that are infinitely scalable. Welcome to the great world of Serverless computing!
This course is fully hands-on, in which you'll get the chance to practice and learn:
GraphQL crash-course
How to deploy GraphQL-based backends in AWS
How to develop your next-gen web application using the AWS Amplify framework & AWS AppSync
You will see how you can quickly build a secure, scalable, functional, and real-time application in no time!
=======================================
Instructor
Paulo Dichone is the instructor of this course. He is a Software Engineer, a teacher, and the author of highly-rated Development courses on Udemy. He has already taught over 200,000 students online and received over 12,000 reviews. Students love his teaching methodology, which is heavy on a hands-on, project-based approach.
=======================================
Section Outline:
Section 1 – Course Introduction: Get an understanding of the course objectives, and how the course is structured, download the course code, and get ready!
Section 2 -What's AWS AppSync and AWS Amplify - Getting Started: Learn how AWS AppSync and AWS Amplify help us, developers, to build serverless's applications in record time.
Section 3 - Install Development Tools - Setting up our development environment and Installing Development tools
Section 4 through 11 - Full Course on GraphQL and Fundamentals: Deep-dive into learning all you need to know about GraphQL and how to create your own GraphQL API's using Express and Node.JS. This Section could be optional, but it's highly recommended that you at least skim through it.
Section 12 - The AWS AppSync Console - Build a full Serverless API using the AWS AppSync Console. Master AppSync Console by building a simple API.
Section 12 - Real World AWS AppSync API Using Amplify CLI: Getting started building our front-end/Client app with Next JS. Build the AWS AppSync API using Amplify CLI.
Section 13 - Real World AWS AppSync, Amplify CLI and Next JS - Navigation and Authentication with Cognito: Kee building the front-end and back-end functionalities into the Next JS App - Blop App. Adding Amazon Cognito User Pools
Section 14 -Real World AWS AppSync, Amplify CLI and Next JS - Blog App Post Data - Adding and saving posts to DynamoDB in the AppSync backend
Section 15 - Editing And Deleting User's Posts - Allowing authorized users to delete and edit posts.
Section 16 - Adding a Post Image with Amazon S3 Storage - Save images to S3 (Storage
Section 17 - Creating Comments - Using GraphQL mutations to create comments for posts.
Section 18 - Amplify Important CLI Commands - Learn some important amplify CLI commands
Section 19 - AWS Hosting - Hosting our Blog app in AWS Hosting- Preparing and deploying the web app in AWS Hosting using Amplify CLI
Section 20 - Subscriptions - Allowing the app to broadcast onPostCreated event using AppSync subscriptions - making the app real-time driven!
Section 13 - Next Steps!
=======================================
This Course Also Comes With:
Lifetime Access to All Future Updates
A responsive instructor in the Q&A Section
Links to interesting articles, and lots of good code to base your next template onto
Udemy Certificate of Completion Ready for Download
A 30 Day "No Questions Asked" Money Back Guarantee!
This is the course that could change your AWS skills.
Join me in this course if you want to learn how to deploy a Serverless GraphQL & React JS-based Javascript application in AWS Cloud and master the AWS platform!