Helping kids to practice math with a new coding language to reach Web, iOS, Android and other platforms
The game that I'm contributing to this "AWS Game Builder Challenge" in early 2025 is inspired by my family, especially by wife, who is a teacher in primary school in Germany. Finally I was able to also resolve an outstanding item from my bucket list that I've had since 2019! Wanna know which one? Keep reading!
Published Jan 2, 2025
Where and how can I play the game?
How can I submit feedback, ideas, comments?
Which AWS services have been used?
Was a GenAI agent or assistant harmed as part of this project?
My approach - technology, prompts, personal challenges
Additional personal challenges
This small game will help primary school kids (aged 6-10) to practice their mathematics skills in a funny and simple way! The game encourages kids to solve math challenges in many different languages and helps them get faster at solving them. Right now it allows and supports simple questions of 2-3 operands - but this can and will be expanded!Let me know what other maths challenges you would like to have asked!
This game is currently available on the web - https://flying-maths.lockhead.cloud.
There is also an Android and an iOS version available for testing - right now beta - as I work on app store acceptance - *please reach out to me with your eMail adress that you are using for your desired platform* and I will make it available for you :-)
You can of course directly start commenting in the comments BELOW!
Or, you raise an issue in the GitHub repository. Or, you reach out to me on socials or email ;)
Or, you raise an issue in the GitHub repository. Or, you reach out to me on socials or email ;)
This game currently uses:
- Amazon Q Developer (Visual Studio), especially `/dev` :-)
- AWS AppSync
- AWS Lambda
- Cognito
- S3
- CloudFront
- AWS Amplify Flutter
- and obviously IAM, CloudWatch and the other building blocks you need... but NO VPC ;)
No! But over 90% of the code base is generated by Amazon Q Developer!
Proof it?
To be fair, I think I did harm Q Developer "just a bit" - I've forced the agent to regularly "re-iterate" on a proposal it made and - to be honest - that's took a LOT of effort and nearly with every usage of
/dev
I maxed out on the maximum of "three" re-iterations. Can we please up this limit to 10 or more? :-)
Note to self: I need to work on my prompt engineering skills :-)
My approach for this challenge was simple: I needed a good idea!
Thankfully, my family was there for the rescue ;-)
The idea was born by my wife (she's a teacher in primary school) and improved by my kids. As my wife is also responsible for a bunch of IT things in her school, she manages the iPads and thus what I build needed to support at least iOS.
I also wanted to go with Serverless technologies to avoid big costs...and I wanted to use...Amplify Flutter.
Thankfully, my family was there for the rescue ;-)
The idea was born by my wife (she's a teacher in primary school) and improved by my kids. As my wife is also responsible for a bunch of IT things in her school, she manages the iPads and thus what I build needed to support at least iOS.
I also wanted to go with Serverless technologies to avoid big costs...and I wanted to use...Amplify Flutter.
I started with an empty Github repository!My first prompt was, following some ideas from Christian Bonzelet and PROMPT
It failed completely! Bad prompt engineering! ;)
Second try:
For your reference, here's the README I used:
This worked out pretty well and after a few usages of Amazon Q developer, the manual set up of the permissions to the AWS Account using OIDC and ... some iterations on wrong code, always using Amazon Q developer to triage & solve the issues, the first version of the game was up and running.
In total it took me **less than 5 hours** to get the initial version up and running.
In total it took me **less than 5 hours** to get the initial version up and running.
As already mentioned we use only serverless AWS services as part of this game right now:
Route53 is used for DNS managemnt, Amplify is only used in the code - using Amplify Flutter.
I've been trying to get something into the App Stores (Play Store, iOS) since 2022 and with this challenge I really wanted to make this work this time.
For that, I wanted to use Flutter and especially Amplify Flutter. And yes, I did it! ;)
I also wanted to cover multiple languages - especially languages that I can't speak - so I used Amazon Q Developer to generate the translations!
For that, I wanted to use Flutter and especially Amplify Flutter. And yes, I did it! ;)
I also wanted to cover multiple languages - especially languages that I can't speak - so I used Amazon Q Developer to generate the translations!
As already mentioned I used Flutter (so Dart) as programming languages.
And of course some `yaml` for the Github Actions :-)
I am using Github Actions for the CI/CD process for the complete application including the "Web" hosting.
The iOS and Android applications are build and pushed to the app stores using Codemagic (which by the way also runs on AWS).
And of course some `yaml` for the Github Actions :-)
I am using Github Actions for the CI/CD process for the complete application including the "Web" hosting.
The iOS and Android applications are build and pushed to the app stores using Codemagic (which by the way also runs on AWS).
The gameplay is pretty simple!
The user signs in using Cognito (or creates an account), then he selects the difficulty...
The user signs in using Cognito (or creates an account), then he selects the difficulty...
Afterwards, he gets the math challenge to solve and three different options:
These options move from the left to the right so the user needs to select the right item :-)
At the end, the user is presented with the results of his play:
At the end, the user is presented with the results of his play:
and he has the optionto now start again or change the difficulty.
At any time the user has the option to change the language of the game:
This is an amazing submission, of course, because:
- it solves a problem someone in my family had ("What should kids do that finished their assignments in school early?")
- it forced me to build and learn Flutter - something I had on my bucket list for a while
- it forced me to look at how to set up iOS App Store Connect and Google Play Store adminitration
- I learned a lot :-)
I need to acknowledge that this is not yet "good enough" to be used at schools :-)
There's a few things that I have in my head that I want to add:
There's a few things that I have in my head that I want to add:
- a leaderboard
- the option to play without an account
- better graphics
- availability in the app stores for real and not only through testing channels
And when all of that is done, I will need to add business functionalities like:
- groups of players
- teacher log in
- ...and a lot of other things :-)
I'd love to hear your thoughts and feedback - is this work investing further?