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.
Let's Build this
Step 1: Hosting with AWS Amplify
- Go to the AWS Management Console and search for Amplify.
- Connect your GitHub repository to Amplify.
- Deploy your app and ensure the frontend is live.
Step 2: Add User Authentication
- Navigate to Amazon Cognito and create a new User Pool (e.g., EasyRideUserPool).
- Copy the User Pool ID and App Client ID, and update these values in your app’s config.js.
- Test the authentication flow by signing up and signing in on the live app.
Step 3: Ride Data Storage with DynamoDB
- Go to DynamoDB and create a table named Rides.
- Set the partition key as RideId (String data type).
- Copy the Table ARN for use in permissions.
Step 4: Backend Logic with AWS Lambda
- Create a Lambda function with the runtime Node.js 16.x.
- Attach an IAM role with DynamoDBWriteAccess to enable data storage.
- Write the booking logic in index.js, and ensure the table name matches your DynamoDB setup.
Step 5: API Gateway Integration
- Create an API in Amazon API Gateway.
- Add a POST method linked to your Lambda function for booking rides.
- Configure Cognito as the authorizer for secure access.
Step 6: Test and Deploy
-Test the entire flow:
- Sign up, sign in, and make bookings.
- Verify ride data is saved in DynamoDB.
Step 7: Clean Up
To avoid unnecessary costs, delete unused resources like:
- Cognito User Pool.
- DynamoDB table.
- Lambda functions and API Gateway resources.
- 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)