Wednesday, November 17, 2010

Hacking education with Twilio powered spelling tests

I built an app over the weekend for the Twilio developer contest called The goal of the app was to automate spelling test practices. Allowing kids to practice spelling using the telephone.

On the surface, this project was a combination of scratching a geek itch and laziness. I've been reading words to my kids every week for five years now. And yes it does get boring. But not just for me. The kids are dying for new and more interesting ways to learn. I've tried experimenting with games and I try to have fun using the words in sentences. I'm always looking for news ways to make the chore of homework and studying more interesting and fun. This app was very much in that vein.

While the end product still needs some polish, there are a number of elements that make this a net win. First, they type in the words to create tests (practice in itself). Second, they love to record the words using their own voices and hear them back on the phone. Third, spelling words on the phone makes them feel like they are hip, texting, teenagers.

The features

The app only has a couple of moving parts and the initial implementation was very much focused on an individual practicing.

  • Create a spelling test - Let anyone bundle a set of words into a "test", apply a grade level, and name it. I wound up adding a record option for each word as well. This gives the kids a chance to record their own voice.

  • Quiz yourself on those tests - Let anyone take a test by responding to prompts on the phone.

There are a lot of community/social opportunities to get kids more engaged. Challenges, leader boards, average scoring, analytics on tricky words, etc. All for another day...

The Twilio magic

The initial goal was to process 100% of the test via voice. I thought I could use my pseudo-synchronous transcription hack and have the kids spell the words one letter at a time - "B-A-N-A-N-A". But I quickly discovered that the transcription service doesn't do letters. It likes words. So I turned to Plan B which uses the <Gather> verb to have the kids use the phone keypad to spell out the word.

The two new things for me on this adventure were the call flow dynamics as well as the call-out feature from the browser. While testing, I never tired from pressing my little phone button in the browser UI and having my phone ring. It brought a smile to my face every time. :)

If you're interested in seeing the nitty gritty details of how I built it, I've posted the code - a Google App Engine project - to github. Not well commented with plenty of shortcuts, but as I noted, I built that in a day. I'm putting it out there so there are more examples for others to learn from. The Twilio API code itself should be a pretty example for you, however.

Now go test your spelling -!