The Quiz Up Android app was released a couple of months back and has been a viral hit. A few of my friends invited me to try it out.

With questions spread over 500+ topics, they really have a huge database of Q&A. You can either play with a random opponent or your friends either real time or offline by challenging them. I began playing some of the popular categories like Word Scramble, Computer Science and a few other with my friends real-time. The detailed reports, statistics and visualizations after each game is neatly done.

Screenshot_2014-05-10-01-12-56-1  Screenshot_2014-05-10-01-13-12-1


What particularly intrigued me was that the game play was perfectly synchronized despite network delays at either sides and the players get a great quizzing experience. Asynchronized game play experience is almost the same as real-time. For example, I can challenge my friend and play the game immediately. When my friend accepts it and plays the game, say, a day or two later, they’ll have the same experience as playing with me real-time.

Another interesting thing is that no matter which obscure category you choose there is always a random opponent available to play against you. And the way some of these players play often doesn’t make sense (like scoring 0 even in the simplest of quizzes) which often makes me wonder whether they are really humans or just some bots.

Quiz Up is written using Python, Flask, Backbone.js, React, Redis, Postgres and ElasticSearch Cluster.

PS: A colleague of mine from Global Analytics created a Python Quiz Web app based on this. It is available at pyquiz.com. Do check it out.

Update: As per QuizUp CEO’s Facebook comment in Nov 2013, they do use bots as a fallback strategy when they are not able to match you up with a random opponent real time.