Projects on AWS

Build a Modern Web Application

Deploy a web application, connect to a database, and analyze user behavior

Keep the learning party going
Build a pet adoption app...with mythical creatures!

Introduction: Build a Modern Web Application in Python

Follow step-by-step instructions to build your first modern application.

Overview

In this tutorial, you’ll build your first modern application on AWS. Modern applications are resilient, scalable collections of independent services that abstract away the underlying infrastructure. Modern application development leverages agile development practices, immutable deployments, and programmable infrastructure to continuously release new features to the business and end users.

You will build a sample website called Mythical Mysfits that enables visitors to adopt a fantasy creature (mysfit) as pet. You can see a working sample of this website at: www.mythicalmysfits.com

This tutorial is also hosted on GitHub, so you will be able to submit an issue if you have recommendations. You’ll also be able to initialize GitHub pull request if you want to collaborate on improving the code.

What You Will Learn

This tutorial will walk you through the steps to create a sample web application discussed above. You will learn to host this web application on a front-end web server and connect it to a backend database. You’ll also learn to set up user authentication and will be able to collect and analyze user behavior.

The site provides basic functionality such as ability to “like” your favorite mysfit and reserve your chosen mysfit for adoption. It also allows you to gather insights about user behavior for future analysis.

Application Architecture

The application architecture diagrams provide a structural representation of the services that make up Mythical Mysfits and how these services interact with each other. Don’t worry if you aren’t completely familiar with the services and features mentioned below. As we work through the tutorial, we’ll discuss the services in detail and point to resources that will help you get up to speed with them.

create a lex bot

(click to zoom)

Modules

You will implement Mythical Mysfits using these modules:

  1. Create Static Website Build a static website, using Amazon Simple Storage Service (S3) that serves static content (images, static text, etc.) for your website.
  2. Build Dynamic Website Host your application logic on a web server, using an API backend microservice deployed as a container through AWS Fargate.
  3. Store Mysfit Data Externalize all of the mysfit data and persist it with a managed NoSQL database provided by Amazon DynamoDB.
  4. Add User Registration Enable users to registration, authentication, and authorization so that Mythical Mysfits visitors can like and adopt myfits, enabled through AWS API Gateway and its integration with Amazon Cognito.
  5. Capture User Clicks Capture user behavior with a clickstream analysis microservice that will record and analyze clicks on the website using AWS Lambda and Amazon Kinesis Firehose. 

You will be creating and deploying changes to this application completely programmatically. You will use the AWS Command Line Interface to execute commands that create the required infrastructure components, which includes a fully managed CI/CD stack utilizing AWS CodeCommit, CodeBuild, and CodePipeline. Finally, you will complete the development tasks required all within your own browser using the cloud-based IDE, AWS Cloud9.

This tutorial is a great resource to get started building on AWS. To learn more about building on AWS, visit the AWS Developer Center.

 AWS Experience

Beginner

 Time to Complete

2 - 3 hours

 Cost to Complete

Many of the services used are included in the AWS Free Tier. For those that are not, the sample application will cost, in total, less than $1/day.

 Tutorial Prereqs

To complete this learning path, you will need:
✓ An AWS Account and Administrator-level access to it**

 

*This estimate assumes you follow the recommended configurations throughout the tutorial and terminate all resources within 24 hours.

**Accounts that have been created within the last 24 hours might not yet have access to the resources required for this learning.

Build a static website: Mythical Mysfits