Check the project out on my GitHub!

Try it out for yourself, here

Full Stack Serverless AWS App

A screenshot of the web applications homepage

This is a comprehensive full-stack AWS application, designed to provide a seamless user experience. Upon signing in or registering, users are welcomed by a beautiful homepage, offering easy access to their client portfolio. For new client additions, a sleek and efficiently designed form enables rapid data entry, directly updating a cloud-based database. Following submission, users are redirected to a dedicated client management page, showcasing a comprehensive list of all clients, including the newly added entry.


Technologies I utilized, and how they work...

Frontend

  • React: User interface and client-side logic

Backend

  • AWS CLI: Command-line tool for interacting with AWS services
  • AWS Amplify: Development platform for building scalable mobile and web applications
  • AWS API Gateway: RESTful API for handling client requests
  • AWS Lambda: Serverless compute service for executing business logic

Database

  • Amazon DynamoDB: NoSQL database for storing client data

Authentication

  • AWS Amplify Auth: Authentication library for managing user sessions
  • AWS Cognito: User identity and access management service

Other

  • AWS Amplify CLI: For local development, testing, and deployment of the application

How it all works...

User Authentication

  • Users sign in or sign up using AWS Amplify Auth, which utilizes AWS Cognito for secure user identity and access management.

Client Form Submission

  • When a user submits a client form, the application uses AWS API Gateway to send a PUT request to a Lambda function.

Lambda Function

  • The Lambda function interacts with Amazon DynamoDB, adding the new client data to the database.

Client Page

  • When a user navigates to the client page, API Gateway automatically triggers the Lambda function's GET method.
  • The Lambda function queries DynamoDB, retrieving all records associated with the logged-in user.
  • The application displays the retrieved data on the client page, providing a personalized view of the user's clients.