
Welcome to this course! I'm so glad you're here. We have tons of great technologies to cover and a fantastic and unique serverless video chat application to build.
This is very much a learn by doing course. Follow along and we will build, step by step, a complete serverless video chat application that uses the latest technologies including webRTC, react and a comprehensive collection of serverless cloud technologies.
In this section we cover some core concepts around webRTC signaling and networking.
In this video we describe the various video chat architectures.
In this video we explain what network address translation is and why we need to use STUN servers to discover our external IP address.
In this video we explain the signaling process for webRTC.
In this video we discuss the role of the signal server in the webRTC signaling process.
In this video we provide an in-depth description of the webRTC signaling process.
In this section we step through everything you'll need to do to setup your development environment for this course.
In this video I show you how to setup VS Code and Node.js
In this video I show you how to create our project using vite.
In this video we start to build our application with a few declarative routes and a few placeholders for components we will build in the upcoming lectures.
In this section we build out the Auth provider as well as the Header and Status components.
In this video we build out the Header component.
In this video we build out the Login component and use it in the Header.
In this video we build out the AuthProvider context.
Add a bottom status bar to the home page, display the current user's email when authenticated, and toggle login state with conditional rendering using Tailwind CSS styles.
In this section we build out our main app state context, the AppStateProvider and create our LocalStream and RemoteStream components.
In this video we build our AppStateProvider.
In this video we create our LocalStream and RemoteStream components. These components present the video and audio content for the caller and the callee.
In this video we get the user media and display it in the LocalStream component.
In this video we create two components to select the video source and the audio source.
In this section we provide an overview of Amazon Web Services (AWS) and we create and setup a free tier account.
In this video we explain what AWS is.
In this video I show you how to create a free-tier account. With this free-tier account you total bill for the work you do in this course should be less than $5 (US).
In this video I show you how to configure your account and, most importantly, how to set up a budget so that you are warned if for some reason your spend exceeds what you expected.
In this video I explain identity and access management in AWS and I show you how to set up an IAM account.
In this video we cover the core concepts around AWS IAM and IAM policies.
In this video I describe what the AWS API Gateway is and how we use Lambda functions in AWS.
In this section we start building our our Signal Server in AWS.
In this video we get started using the AWS API Gateway.
In this video we write the code to connect to our Signal Server.
This is part one of a three part series in which we build out the Setup process. In this video we describe the process and start by building our our DynamoDB table.
In this second part of the Setup series we build out the code that accesses our Signal Server in a separate class.
In this final part of the Setup series we complete the setup with the Lambda function for the $connect route.
After our video chat has terminated and the user wants to sign out, the final step is to Teardown the connection. We build out the Teardown path in this video.
In this section build out the complete signaling process for the video chat.
In this video we build the user selection process. This is how the caller selects the callee.
In this video we build out the peer connection. The peer connection is the central coordinating point for the webRTC connection.
In this video we build out sending the Offer to the callee.
In this video we build out the code that the callee uses to process the Offer from the caller.
In this video we continue working on the callee's perspective. Here the callee responds to the caller's Offer with and Answer.
In this video we build out how the caller handles the Answer received from the callee.
In this video we complete the code need to connect the video chat. This includes the final step: exchanging the ICE Candidates.
In this video we build out the Decline path. The callee uses this path to decline the Offer from the caller.
In this video we build out the HangUp path. This path is used by either the caller or the callee to terminate the video chat.
In this section we replace our temporary authentication process with a secure process using AWS Cognito.
In this video we describe what AWS Cognito is.
In this video we configure a user pool in AWS Cognito and create a Cognito app.
This video is part of a two part series in which we refactor our app to use Cognito. In this part, we refactor our declarative routing to so that we can handle the redirects during the signin and signout processes.
In this second part we complete the refactoring of our code. Here we handle the redirects from the signin and signout processes.
In this video we secure our Signal Server by verifying the identity token we received from Cognito. We verify this token on the $connect route.
In this section we build our code for deployment and configure AWS to host our static site.
In this video I explain what AWS S3 is and how it is used. We create a bucket and apply an IAM policy that allows us to use this bucket as an origin for a CloudFront distribution.
In this video I explain what AWS Route 53 is and I show you how to register your own domain.
In this video I explain what AWS Certificate Manager is and I show you how to create your own certificate for your domain.
In this video I explain what AWS CloudFront is and we create a distribution from our S3 origin and secure the site with the certificate we created.
In this video we complete the process by building our app for deployment and deploying it to our S3 origin.
Ever wanted to build a video chat application or perhaps just a video chat component in a larger web application but didn't want the potential high cost and hassle of managing servers? Ever want to learn how to build a real world React application? Curious about how AWS Cloud serverless works? Well this is the course for you! We cover all this and much more.
Our course project is a secure, completely serverless peer-to-peer video chat application you can use as a portfolio project, a part of a larger application you are building or even extend it and provide it as a service.
Along the way we cover a lot of diverse topics and technologies. Just like any real world application, it takes much more than just knowing one or two technologies to build a meaningful application. I'll show you step-by-step how to use each of these cutting-edge technologies to build a real-world serverless application.
Here is just some of what we cover:
- Core React development with Tailwind CSS using VS Code and vite.
- Amazon Web Services (AWS) cloud serverless offerings including: Lambda Functions, API Gateway, DynamoDB, Cognito, S3 and CloudFront
- Javascript development with React
- Python development for AWS Lambda Functions
- Clean project design