My Todo App is a serverless task management application built on AWS infrastructure. It helps users track and manage their daily tasks. Leveraging Amazon Web Services' powerful serverless technologies, the application provides a seamless, scalable, and cost-effective solution for personal productivity.
- Clients: End-users accessing the application through web or mobile interfaces
- HTTP API: Amazon API Gateway managing request routing and API endpoints
- Lambda Function: AWS Lambda serverless compute service handling application logic
- DynamoDB: Amazon DynamoDB fully managed NoSQL database for storing task data
✔ AWS Serverless architecture with zero server management
✔ Automatic scaling using AWS elastic services
✔ Pay-per-use pricing model with AWS cost optimization
✔ High availability and fault tolerance
✔ Secure data management following AWS security best practices
This tutorial walks you through setting up, building, and deploying the my-todo-app React project on AWS S3 bucket.
Before you begin, ensure that you have the following:
- An AWS account to host your React app on an S3 bucket.
- Node.js installed on your local machine.
- npm (Node Package Manager) installed.
-
Download the
.zipfile of this repository. -
Extract the
.zipfile to a preferred directory on your local machine. -
Open a terminal and navigate to the extracted folder:
- Windows (PowerShell):
cd path\to\my-todo-app
- Mac/Linux (Terminal):
cd /path/to/my-todo-app
- Windows (PowerShell):
Before proceeding, check if Node.js and npm are installed.
-
To check the Node.js version, run:
node -v
-
To check the npm version, run:
npm -v
If Node.js is not installed, download and install it from the official website.
Once inside the project folder, install all required dependencies by running:
npm installThis will download and install all necessary packages for the React project.
To generate the production-ready files, run:
npm run buildThis command will create a dist/ folder inside the project directory.
Inside the dist/ folder, you will find an index.html file and an assets folder containing static files.
- Log in to the AWS Management Console.
- Navigate to S3 under Services.
- Click Create bucket.
- Provide a unique bucket name (e.g., my-todo-app-bucket).
- Select a region.
- Uncheck "Block all public access" if you want to make your site publicly accessible.
- Click Create bucket.
- Open the newly created S3 bucket.
- Click Upload.
- Select all files from the
dist/folder, including:index.html- The entire
assets/folder.
- Click Upload to store the files in the bucket.
- In the S3 bucket, go to the Properties tab.
- Scroll down to Static website hosting.
- Click Edit, enable Static website hosting, and choose "Host a static website."
- Set
index.htmlas the default document. - Save the changes.
To allow users to access the hosted website, you need to make the files publicly accessible:
- Navigate to the Permissions tab.
- Scroll down to the Bucket policy section.
- Click Edit and add the following policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}- Replace
your-bucket-namewith the actual name of your S3 bucket. - Click Save changes.
Once you have configured your API routes and connected your database via AWS Lambda, update the API URL in the TodoList.jsx file.
-
Open
src/components/TodoList.jsx. -
Locate the commented-out section:
// API_URL = "" -
Replace the empty string with your API endpoint.
-
Rebuild the project and redeploy to AWS S3 to ensure the changes take effect
Once your S3 bucket is configured for static hosting, you can access your my-todo-app via the S3 Bucket Website URL found under Static website hosting settings.
You have successfully built and deployed my-todo-app on AWS S3.
Next step --> Creating a Lambda Function for Todo Tasks Application







