Downloading the Code
Start course
1h 59m

For years, web development has continued to evolve alongside programming languages, tooling, and frameworks. It started out with static web sites before moving on to dynamic sites that were rendered on the server. Over time, as JavaScript frameworks gained functionality and popularity, there was a shift towards putting more of the logic into the front end, and using the back-end as a supporting API.

Throughout all the changes in web development over the years, the server has been a constant. Regardless of the languages, tools, and frameworks used, there’s always a server running the code. And that’s something that hasn’t changed. What has changed is that cloud providers now make it easy for software engineers to focus on writing their code, without having to focus on the underlying server.

In this course, you'll build a serverless web application using Python 3.6. You'll use Lambda, API Gateway, S3, DynamoDB, and Cognito to create a multi-user to-do list application based on Vue.js.

Note: The Apple M1 chip isn't compatible with this course currently. We recommend using a different device.

Learning Objectives

  • Outline the architecture of a serverless web application
  • Set up the AWS services required for the app
  • Create and deploy an API using Python 3.6
  • Explain the value of creating unit tests
  • Use a Cognito User Pool within your app

Intended Audience

  • Developers
  • DevOps Engineers
  • Site Reliability Engineers


  • Familiar with AWS
  • Development experience
  • Familiar with the CLI



Welcome back. In this lesson, we're going to download the code that we're going to use later on in the course. We're not going to go through it in this lesson, we'll go through it later on and I wanna get it locally, so that we'll have it when we need it. The code is in the whelmed repo here, it's called ca-python-serverless and I'll add a link to this in the description for the course.

That way you can click it, you don't have to type this out manually. So you can see here, there's not much to it, there's a directory for front end code, there's a directory for our tests. There's a directory for the actual API, that's the code that's we'll be deploying and a Vagrant file. We're going to use Vagrant to actually spool up the virtual machine and make sure it has all the development tools we need.

There's a deploy, and there's a test runner. So, there's not much to it, but it has what we need to finish the rest of the course. So, let's click on the copy here, we're gonna copy this link. And let's head into a terminal. So I'm already in the projects directory. This is where I want my code to live. So I'll just type git clone and command V to paste.

Okay, let's cd into that ca dash and tab. Perfect. If we list off the directory structure here, you can see that it matches what was in a browser. So we have our code, it's ready to go, but before we can actually do anything with it, we have to start setting up the services and that's what we'll do in the next lesson.

So if you're ready to setup some services in AWS, then I'll see you in the next lesson.

About the Author
Learning Paths

Ben Lambert is a software engineer and was previously the lead author for DevOps and Microsoft Azure training content at Cloud Academy. His courses and learning paths covered Cloud Ecosystem technologies such as DC/OS, configuration management tools, and containers. As a software engineer, Ben’s experience includes building highly available web and mobile apps. When he’s not building software, he’s hiking, camping, or creating video games.