AI-assisted coding interview preparation with AWS Amplify Gen 2, React and Bedrock

AI-assisted coding interview preparation with AWS Amplify Gen 2, React and Bedrock

This is a submission for the The AWS Amplify Fullstack TypeScript Challenge

What I Built

I have built a next-generation platform that enhances the coding practice experience by integrating AI-powered assistance. CodeChamp allows users to tackle coding challenges across a wide variety of topics and difficulties. The platform isn’t just about solving problems. Connected Components and Feature Full
We have used Connected Components and all four features: Data, Authentication, Serverless functions, and File Storage.

Data: The diary entries are securely stored in Amplify Storage (DynamoDB) with authorization rules ensuring that only the diary owner has access.
Authentication: The users are authenticated using Amplify Auth(Cognito) to access the Dashboard and create diary entries.
File Storage: Users can add images to the Diary Entries which are securely stored in Private/Protected S3 Buckets using Amplify Storage
Serverless Function: We utilize a serverless function to invoke the AWS Bedrock Model (mistral-7b-instruct) for enhancing diary text content and generating weekly highlights for users.t’s about learning and improving. Each challenge is dynamically generated to fit the user’s proficiency and interest areas, and as users progress, they receive real-time hints from an AI assistant. Upon completion, the AI reviews the code, offering constructive feedback and insights to refine the user’s coding skills.

Demo

Live Deployment

Onboarding / Authentication

Home / New Challenge

Run the solution

submit & Evaluate

Profile Page

Journey

Building a coding platform was both challenging and enlightening. I utilized several AWS services, including Amplify Hosting for deployment, Cognito for authentication, Lambda for server logic, Amazon Bedrock for AI integration, and DynamoDB for storing user data and challenge details.

For code execution and testing, I used another third-party solution called Judge0 which is an open-source service.

Connected Components and/or Feature Full
AWS Amplify Gen 2 has made building a complicated app from scratch a breeze. I used several features of Amplify Gen 2 and combined them with Amazon Bedrock to build this platform.

Data: The entire data layer is abstracted using AWS AppSync and DynamoDB provided by the Data feature. I also use Lambda functions to customize and insert data.

Authentication: Amplify Auth with Cognito was used for the authentication feature. Most of the functionalities were implemented using the Authenticator component and lambda triggers.

Lambda Functions: Most of the business logic lives on three different lambda functions. All are connected to Amazon Bedrock for generative AI integration.