What We'll Build

Our Goal

In this workshop, we’ll build an app with quite a few features, including:

  • Allowing user sign up and authentication, so we know who owns which photo albums

  • Building an API server, so our front end has a way to load the appropriate albums and photos to show a given user

  • Storing data about albums, photos, and permissions of who can view what, so that our API has a fast and reliable place to query and save data to

  • Storing and serving photos, so we have a place to put all of the photos that users are uploading to albums

  • Automatically creating photo thumbnails, so we don’t need to deliver full-resolution photos when users browse a photo album’s list of photos

  • Automatically detecting relevant labels for each uploaded photo and making photos searchable based on these labels

The Architecture

Here’s a map of the services we’ll use and how they’ll all connect.

Serverless Photo Albums Architecture

Our Tools

If we were to try and build scalable and highly-available systems to handle each of the above concerns on our own, we’d probably never get around to building our app! Fortunately, AWS provides services and tooling to handle a lot of the undifferentiated heavy lifting involved in building modern, robust applications. We’ll use a number of these services and tools in our solution, including:

If any or all of these services are new to you, don’t worry. We’ll cover everything you need to know to get started using everything mentioned above. And there’s no better way to learn than to build, so let’s get started!