/serverless-ecommerce-workshop

A workshop to learn how to create a simple serverless e-commerce and deploying it on AWS

Primary LanguageCSSMIT LicenseMIT

Serverless e-commerce workshop

Test

A workshop to learn how to create a simple serverless e-commerce and deploying it on AWS


What are we going to build?

A screenshot of TimelessMusic

It turns out we have accidentally discovered time travel! 😱

There is only one rule though: we cannot use time travel to bet or play the lottery! 😖

So, how can we profit from this amazing discovery? 🤔

Well, I have an idea: since we are cloud engineers and entrepreneurs, why don't we build a startup that allows music fans to go back in time and attend some of the concerts that made the history of music?

Sounds cool, right?

In this workshop we will be building TimelessMusic, a serverless e-commerce to sell the tickets for our music-time-travel business! Are you ready to get rich? 🤑

Warning We can't promise you'll get (economically) rich with serverless, but taking this workshop will certainly enrich your skills. And who knows where that might lead you...

Learnings

This workshop will explore the following topics

  • How to host a Single Page Application (SPA) on S3
  • How to write APIs with AWS Lambda and API Gateway
  • How to use DynamoDB to store the data for your APIs
  • How to process forms with AWS Lambda
  • How to store unit of works on SQS
  • How to create background workers with AWS Lambda
  • ... and a lot of other useful things, like:
    • Serverless Application Model (SAM)
    • AWS Roles, Policies and the security model in general
    • The AWS Command Line interface
    • Some bash tricks
    • Some other cool details about AWS and Serverless

Disclaimers

  1. While we are going to build a fully functional application (somewhat), this application is not to be considered production-ready™️. We'll cut a few corners along the way.
  2. The goal is to learn the basics about AWS and Serverless (and few other related things), but we are not going to be comprehensive. We will favour an hands-on approach where possible.

Requirements

Before getting started, make sure you have the following requirements:

To make sure you have everything configured correctly, you can run the following command in your terminal:

aws sts get-caller-identity

If all went well, you should see something like this:

{
    "UserId": "XYZ",
    "Account": "123456789012",
    "Arn": "arn:aws:iam::123456789012:username"
}

Finally, make sure to clone this repository locally and run:

npm install

To install all the necessary dependencies.

Getting started

We will start by deploying a static website (our ecommerce frontend) to AWS!

➡️ Lesson 01 - Deploying the frontend

Contributing

In the spirit of Open Source, everyone is very welcome to contribute to this project. You can contribute just by submitting bugs or suggesting improvements by opening an issue on GitHub or by submitting a PR.

License

Licensed under MIT License. © fourTheorem