Inspiration

I used to be one of those kids playing cool math games on the web! (on no particular site though...)

What it does

PathMath is a dynamic mental math maze searching game designed to help students improve arithmetic fluency.

How we built it

AWS services utilized:

  • Amplify: app hosting
  • AmplifyUI: design components
  • Cognito: manage user authentication
  • Lambda: write API functions
  • API Gateway: manage API requests
  • RDS: connect to relational database
  • S3: host static images
  • EC2: create security groups connecting Lambda and RDS-proxy
  • IAM: manage user backend/database access
  • CloudWatch: manage logs for debugging
  • Billing and Cost Management: keep track of my budget 🥴
  • Q: make the magic happen!

Non-AWS parts of the stack:

  • Frontend: Next.js, TypeScript
  • Backend: Python, REST APIs
  • Database: MySQL

I used Amazon Q as a plug-in to VSCode as well as the AWS Lambda code console. Examples of efficient use-cases:

  • Initializing the base layout of pages and React components through the Chat
  • Generating monotonous functions like API POST requests or setting up controlled components with one move
  • (my favorite) Fixing language-specific syntax errors (I highlight a portion of code with errors and type "fix" to Q)
  • Generating long blocks of code/text for constants representing mock data or board initialization states or entire css classes
  • Refactoring self-contained files or blocks of code

Challenges we ran into

This was my very first time using AWS on my own! I was surprised by how similar certain concepts were in building a CRUD app with AWS relative to other MERN-type stacks, but it still took some time getting used to the interface and connections across different services.

Accomplishments that we're proud of

I initially utilized Amplify's Next.js template, pre-configured with a GraphQL API connection through AppSync and a built-in Amplify datastore (which seems to be based on DynamoDB?), which was simple to get up and running. But I wanted to challenge myself to set up the infrastructure with potential for scale, so I opted to set up a relational database using RDS, Lambda functions, and API Gateway, which definitely improved my chops as a full-stack developer.

What we learned

I learned how to manage resources using some of AWS' premier services.

What's next for PathMath

I have built a larger puzzle games collection that I hope to merge the logic of PathMath into. I hope to pitch PathMath to schools or tutors to help elementary school kids around the world!

Share this project:

Updates