> For the complete documentation index, see [llms.txt](https://dhavaln.gitbook.io/serverless-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dhavaln.gitbook.io/serverless-docs/before-you-start.md).

# Prerequisites

The front-end source code available here. I am using Vanilla JavaScript so that it would be easy for anyone to get started. **I will put the followup updates on React and Angular in the future.**&#x20;

{% embed url="<https://github.com/AppGambitStudio/serverless-docs>" %}

Copy the front-end code to an S3 bucket in your account. Make sure you `Do not block public acccess` of the bucket. Once the code is moved, apply the Public Read policy as mentioned below.

**WebApp Bucket Policy for Public Access**

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<your S3 bucket>/*"
        }
    ]
}
```

Create another S3 bucket to store all the file uploads. Update the CORS configurations for the files bucket as per below.&#x20;

{% hint style="danger" %}
Keep your files buckets as private and secure. You can block public access of the bucket to make sure no accidental configuration override.&#x20;
{% endhint %}

**Files Bucket CORS Configuration**

```
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
    <ExposeHeader>ETag</ExposeHeader>
</CORSRule>
</CORSConfiguration>
```

{% hint style="success" %}
Make sure you create Web Hosting and Document Storage buckets in the same region.&#x20;
{% endhint %}

## Quick test

If you open the application in your browser now, it will show that the Cognito Pool and Client is not configured.

![Basic setup is running with no configurations](/files/-MCfxNe08lXdmeBIUePR)
