Inspiration

I have always been interested in tangible, physical things. A few years ago, I worked on some projects to capture 360Β° photographs of businesses and tourist locations. I also enjoy playing games and solving puzzles. One day, I combined all these passions, and that’s how the idea of a treasure hunt game was born, with a unique focus on physical exploration.

What it does

The "Treasure Hunter" is a web application designed to offer an exciting, gamified experience centered around treasure hunts. Through GPS integration, the app enables users to explore real-world locations, solve clues, and discover hidden treasures. Additionally, it features a treasure map creator that makes it easy to personalize and design unique adventures.

How we built it

We built Treasure Hunt using a technology stack composed of:

  • Backend:

    • We used Python with the Django framework to develop the game logic, handle user interactions, and manage the database.
  • AWS:

    • S3: Used to store all game assets, including images, configuration files, and multimedia resources.
    • ECR (Elastic Container Registry): To store and manage Docker images required for deploying the game services.
    • App Runner: Configured to run containerized applications using Docker in an automated and scalable manner, simplifying the deployment process.
    • Aurora: Implemented as a relational database to store all game data, including users, progress, and configurations. Aurora provides high availability and performance.
    • Amazon Q: Primarily used for AWS services, configurations, task management related to service administration, and resolving development issues.
  • Docker:

    • Used to containerize the applications, ensuring a consistent environment across development, testing, and production. This also facilitated integration with App Runner and ECR in AWS.
  • Frontend:

    • Developed using HTML, JavaScript, and CSS to create an interactive and engaging user interface.

Challenges we ran into

  • The main challenge was my knowledge of AWS. Although I have recently started working with AWS, I still don’t have much experience using it, which made creating and managing resources more complicated. However, Amazon Q was incredibly helpful, allowing me to efficiently solve many of the challenges I encountered and learn more about AWS in the process.
  • Developing the frontend was a challenge for me since my expertise lies in backend development, and I’m not as comfortable working with frontend technologies. For this reason, the first version of the application was built using Django, a framework I’m familiar with. However, in future versions, I plan to migrate the frontend to AWS Amplify to leverage its capabilities and optimize the development process.

Accomplishments that we're proud of

Creating this game has been a significant achievement for me. I had this idea in mind for a long time but hadn’t developed it due to work demands and lack of time. Despite those challenges, I’m very proud to have built a first version in such a short time and, moreover, to have done it using AWS, which added an extra layer of learning and satisfaction to the project.

What we learned

  • I discovered that new and highly useful language models, such as Amazon Q, are emerging, offering innovative and practical solutions, especially when working with AWS services.
  • Overcoming my fear of AWS. Although I had to configure billing for App Runner, consistently using these services has gradually helped me overcome the apprehension I had toward AWS.
  • I confirmed that Django is an exceptional tool for quickly developing projects, especially when resources are limited or there is little time for development.

What's next for Treasure Hunt

  • Leverage the services offered by AWS Amplify to optimize and modernize frontend development.
  • Improve the integration of AWS with the application by identifying and applying use cases where AWS services can provide significant value and enhance the project's efficiency.

Built With

Share this project:

Updates