Inspiration

I remember as a child in primary school, learning my multiplication times tables from 2 to 12. I specifically remember taking a weekly test. Having the answers ingrained into memory has been something that has been useful ever since. To be able to know the answer to a multiplication question instinctively without thinking is something everyone should be able to do up to the 12 times table. All it takes is practice, and this is why I made this skill.

What it does

Tests your mental aritmatic. The user can be tested on random multiplication questions, and given a score of how well they have done

Can be configured to teach - where it dictates the questions and answers

Can be configured to test on a specific number. E.g if the user wants to practice just the 9 times tables they will be tested on multiplications from the 9 times tables only.

Can be used to be tested on addition, division and subtraction as well as multiplication.

Can set a difficulty level to adjust the difficulty of the questions.

Can track progress in a colour coordinated way. Each user gets a specific url which they can browse to to see their progress.

How I built it

I built the skill as an Azure function, in c#. The API's are created in a serverless manner. The website report is also a serverless page and uses Vue.js and html.

The first iteration of Mental Maths simply asked random multiplication questions. The new and latest version has a whole host of new features, including saving settings specific to each user (like number of questions to be asked, or the difficulty level). It has a teach and test mode to practice specific numbers, and now also has the ability to provide detailed progress for the child in a webpage.

Challenges I ran into

One of the things I wanted to do was to use the childs name as part of encouraging them and praising them when they do well. Unfortunately this is not allowed for kids skill so I had to omit that feature, but still able to encourage or praise them without using their names.

Another challenge was creating the report. The card output formatting in the Alexa app is quite limited at the moment. In order to create a report for users I created a html page, and created a shortened url to allow them to browse to it.

Accomplishments that I'm proud of

I'm proud of creating the report aspect of the skill. The key is being able to track progress and for the user to identify their weak areas and keep improving on them.

What I learned

I learned to create a serverless website. Where a page is only served up when the url is requested. For this, I picked up vue.js framework to render the page.

I learned more about voice design, in understanding what route the user should be led down based on their responses.

What's next for Mental Maths

I want to make it easier for a multi user mode, Where more than one child in a household can use it and their respective scores are held separately so each child can have their progress tracked separately.

Built With

Share this project:

Updates