Inspiration

I started by creating a memory game, in which you needed to memorize the path. It was a great experience. First, I was making it with Pygame, then I tried to move it to a web-based version, but I wasn't happy because it wasn’t using the AWS services I wanted. I wanted to use Serverless. So, two days before the deadline for the game, I remembered a game I used to play as a child. I tried to create a proof of concept for it, and it took me less than two hours to create using Amazon Q. It was really fast, so I decided to abandon the other project. This project had the services I wanted: S3, DynamoDB, Bedrock, and my beloved Lambda.

What it does

A word of the day is chosen every day. Users should go and ask 20 questions to guess the word; if they are not successful, they need to wait until the end of the day.

How we built it

The backend code is written in Python; it was working great with FastAPI. However, because I wanted to deploy it on Lambda, I changed it. The backend uses a DynamoDB table to store the users' data and also uses Amazon Bedrock to respond to users with yes or no.

The frontend is a static website, uploaded to the S3 bucket. Everything is serverless.

Challenges we ran into

There were two main challenges: sometimes the functionality of the Amazon Q and the other one, Bedrock integration.

AmazonQ some times couldn't see my files while they were there, the session was expiring and all of my chat were gone after re authentication. I couldn't use it to work on two files at the same time.

I found it really challenging to use models with cross-region inference, so I used Llama 3 8B Instruct, which didn't need to create an inference profile.

Accomplishments that we're proud of

I sent the demo to some of my friends; they loved it and sent feedback to fix it. That was a great feeling for me.

I had started several startups back then, but I always had to wait for frontend/backend developers to deploy my ideas. This is one of my first projects I could create myself as a DevOps Engineer.

What we learned

This was the first time I was using Amazon bedrock inside my code, it is a little bit challenging, but it really works well.

What's next for The Query Game

Oh, I have so many ideas for it, from the UI/UX to the functionality of the game. One of the first features I will add to this is the leaderboard; the first three users who can guess the word will be shown in the leaderboard of that day.

Built With

Share this project:

Updates