
Build a Flutter-powered shop app with AWS backend, connecting to DynamoDB, Lambda, API Gateway, and S3 for authentication, products, users, orders, and checkout.
Build a fully functional e-commerce application while learning AWS and Flutter, and become a cloud and Flutter developer; the only requirement is basic Flutter knowledge.
Explore serverless architectures versus traditional hosting, with scaling and pay only for what you use. See how infrastructure runs your code, scales up demand, and reduces costs for Node.js apps.
Explore how AWS serverless, via AWS Lambda, lets you run code only when needed, slashing costs from traditional always-on servers, with Coca-Cola saving 65% by switching.
Create an AWS account by navigating to AWS console, providing a root email, name, and payment details, completing verifications, and selecting the basic plan before accessing AWS management console.
Learn to install Node.js and the Serverless Framework, define Lambda functions locally, and deploy them to AWS.
Install AWS CLI to control and manage Amazon Web Services from your terminal, following OS-specific guides for Linux, Mac OS, and Windows, and verify with aws --version.
Configure AWS CLI by creating an IAM user with administrator access, generating an access key and secret access key, and running aws configure. Manage access to AWS resources with IAM.
Set up an authentication service backend using the Serverless Framework on AWS Node.js HTTP API, defining sign up, confirm, sign in, and sign out flows with Lambda resources.
Configure Amazon Cognito to enable sign up, sign in, sign out, and password reset for your app using the AWS Management Console and email as the sign-in option.
Create a signup lambda function using Cognito identity provider to register users with email, full name, and password, configuring region and app client ID, returning 200 on success.
Configure API gateway to expose the sign-up lambda over the internet, define an HTTP API event at /sign-up, and post user data to Cognito to create a new account.
Deploy the signup lambda function, configure the AWS region and Node.js 22 runtime, deploy with serverless, test the post endpoint via API gateway and Thunder Client, review Cognito user management.
Learn to verify user emails in Amazon Cognito by building an AWS Lambda function that confirms sign up with the confirm sign up command, parsing the event body JSON string.
Expose the confirm signup function via api gateway by defining an http api event with the path /confirm-sign-up and the post method.
Deploy the confirm sign-up function with sls deploy, use sign up and confirm sign up endpoints to trigger lambdas, then test by creating an account and confirming with Gmail code.
Implement a sign-in lambda that reads email and password from event body and uses Cognito initiateAuth with the app client ID, returning access, refresh, and ID tokens, or an error.
Configure an API gateway route to trigger the sign-in lambda function, define a new sign in function with path /sign-in and a post method.
Deploy the sign-in lambda function to aws, correct typos for username and password, and test via thunder client; enable username/password auth in cognito and retrieve tokens.
Securely store the client ID using AWS Systems Manager to protect your app configuration. See how to integrate this practice in your Flutter, Nodejs, and serverless shop app.
Configure your AWS region, then use aws ssm put-parameter with name CLIENT_ID and type string to securely store the client id in the systems manager parameter store, and verify.
Replace hard-coded client id by reading it from systems manager via an environment variable in the provider, then reuse it in sign up and sign in, and redeploy.
Implement a sign-out flow using Cognito's global sign out command, extract the access token from the event, call the sign-out, and return a success response.
Configure an api gateway route to trigger the sign-out Lambda function, using the access token with Cognito to terminate a specific user session, and deploy with serverless framework sls deploy.
Understand aws regions as physical data-center locations and learn why you may choose a region from the default for performance, compliance, or cost, aiming to serve users near your app.
Switch to US East 1, reconfigure Cognito for regional data, create a user directory and hub client, and update AWS CLI and Systems Manager parameter store with the client ID.
Deploy the auth service to a new AWS region, configure a region variable in serverless AutoML and process.env, and consider data residency rules for regions like EU West One.
Discover how Amazon DynamoDB stores user data with a fast, serverless NoSQL database designed for scalability and performance, while it automatically manages replication, backups, and optimization for modern applications.
Define and deploy a DynamoDB users table using infrastructure as code in serverless yml, specifying attributes, a partition key user ID, and pay-per-request billing via CloudFormation.
Create a node-based user model using uuid v4 for a unique id, define email, full name, location fields, and createdAt, then save to DynamoDB with put item.
Integrate the user model into signup.js, replace uuid with the built-in crypto generator, save the user to DynamoDB, deploy the signup endpoint, and verify DynamoDB put-item permissions.
Grant Lambda write access to DynamoDB by adding IAM role statements for put item on the users table, deploying with the Serverless Framework, and validating the signup flow.
Opt for the inbuilt crypto for auto generating user IDs, keep the uuid package only, delete the unused js file, install uuid with npm, and remove package.json, package-lock.json, and node_modules.
Install flutter and create a new flutter project named shop_app. Then cd into it and open the project in VSCode using the code . command to begin integrating APIs.
Organize a Flutter project using the MVC pattern by creating models, views, and controllers, mirroring backend data and implementing sign up, sign in, and email verification logic.
Create a dynamic sign-up screen by building a stateful widget in Flutter, using Scaffold and center alignment to display a 'create your account' text with a bold 20px style.
Create a styled sign-up button using a sized box spacer and a container with a linear gradient, 319 width, 50 height, 5px border radius, centered white bold text 'sign up'.
learn how to turn a sign-up container into a clickable flutter button by wrapping it with an inkwell, using onTap to print tapped, and testing in the debug console.
Take your mobile development skills to the next level by building a complete, production-ready Shop App from scratch using Flutter and AWS serverless microservices! This hands-on course is designed to teach you how to create modern, scalable apps by combining a powerful frontend with a fully serverless backend. You’ll write Node.js Lambda functions, connect them to DynamoDB, S3, and API Gateway, and deploy a backend that can handle real-world app demands without managing servers.
Throughout the course, you’ll learn by doing as you:
Implement user authentication and authorization, enabling secure sign-in and registration.
Build product catalog management features, including uploading images to S3 and storing data in DynamoDB.
Process orders and ensuring your app can function as a real online shop.
Write serverless Node.js functions to handle app logic, trigger events, and interact with AWS services.
Deploy your backend with the Serverless Framework, making your app fully scalable and cloud-ready.
Debug, test, and optimize your app for production, gaining confidence in building real-world applications.
By the end of this course, you won’t just understand serverless architecture—you’ll have a fully functional E-commerce Shop App in your portfolio and the skills to build and deploy scalable, cloud-powered mobile apps using Flutter, Node.js, and AWS. Whether you’re a beginner or an experienced developer, this course gives you the practical experience and knowledge to create modern, professional-grade applications from scratch.