DEV Community

Cover image for Master AWS by Building a Scalable Car Rental Web App
Lucky Singh Chauhan
Lucky Singh Chauhan

Posted on

Master AWS by Building a Scalable Car Rental Web App

Tired of reading about AWS services without actually using them? Let’s change that! In this project, you’ll master AWS by building EasyRide, a scalable car rental web app. From user authentication to booking logic, this project will teach you how to handle real-world challenges using Amplify, Cognito, Lambda, and more.

By the end, you’ll have a slick project and the cloud skills to back it up—because who wants to stop at theory? Let’s turn your AWS skills into something cool.

Project Overview

This project was inspired by Tiny Technical Tutorials aka Amber Israelsen ma'am, I customized it to enhance my skills. With Easy Ride, users can browse, book, and ride cars seamlessly.
you can check her YouTube tutorial here - [https://www.youtube.com/watch?v=K6v6t5z6AsU&t=4s]

AWS Services Used + Git hub

Amplify: Hosting static files (HTML, CSS, JS).
Cognito: User authentication and management.
API Gateway: Interface for frontend-backend communication.
Lambda: Booking and business logic.
DynamoDB: NoSQL database for ride data storage.

Aws services

Let's Build this

Step 1: Hosting with AWS Amplify

  1. Go to the AWS Management Console and search for Amplify.
  2. Connect your GitHub repository to Amplify.
  3. Deploy your app and ensure the frontend is live.

Image description

Step 2: Add User Authentication

  1. Navigate to Amazon Cognito and create a new User Pool (e.g., EasyRideUserPool).
  2. Copy the User Pool ID and App Client ID, and update these values in your app’s config.js.
  3. Test the authentication flow by signing up and signing in on the live app.

Image description

Step 3: Ride Data Storage with DynamoDB

  1. Go to DynamoDB and create a table named Rides.
  2. Set the partition key as RideId (String data type).
  3. Copy the Table ARN for use in permissions.

Image description

Step 4: Backend Logic with AWS Lambda

  1. Create a Lambda function with the runtime Node.js 16.x.
  2. Attach an IAM role with DynamoDBWriteAccess to enable data storage.
  3. Write the booking logic in index.js, and ensure the table name matches your DynamoDB setup.

Image description

Image description

Step 5: API Gateway Integration

  1. Create an API in Amazon API Gateway.
  2. Add a POST method linked to your Lambda function for booking rides.
  3. Configure Cognito as the authorizer for secure access.

Image description

Image description

Image description

Step 6: Test and Deploy

-Test the entire flow:

  1. Sign up, sign in, and make bookings.
  2. Verify ride data is saved in DynamoDB.

Image description

Step 7: Clean Up

To avoid unnecessary costs, delete unused resources like:

  1. Cognito User Pool.
  2. DynamoDB table.
  3. Lambda functions and API Gateway resources.
  4. Amplify app deployment.

Conclusion
Congratulations! You’ve successfully built a car rental web app using AWS services. This project covers the full stack—from hosting with Amplify to backend logic with Lambda and secure data storage with DynamoDB.

If you encounter any issues or want to share your experience, feel free to comment or connect with me on LinkedIn. [https://www.linkedin.com/in/lucky-singh-87329b255/]

Top comments (0)