Varsity College

An interesting way to judge hackathons

Tweet about this on TwitterShare on FacebookShare on RedditShare on Google+Email this to someonePin on Pinterest

A while back Taylor Gibb, Gordon Beeming, and I held a Windows Phone hackathon at Varsity College. Generally when we hold a hackathon the challenge is to build a Windows Phone (or Windows) app over the weekend, and then we award the “best” app with a phone etc. We walk around to each person and score their app against various criteria like quality, relevance, functionality, etc. The problem with this is that it is very formal. We aren’t in the business of rating code, and hackathons aren’t really about making the perfect app in a few hours. Hackathons are about learning and having fun.


We decided that it could be fun to let the attendees do the judging instead – but that was just as rigid and structured as us doing it. So Taylor came up with a rather interesting voting system to let attendees judge each others’ apps, which we then coded.


At the end of the weekend we allowed each person or team to go up to the front and present and “sell” their app for 2 minutes. After presenting we then allowed all attendees to vote. To vote, we gave each person a client app on their PC’s, which connected to a server app we wrote. The server was just hosted on a PC connected to the rooms projector.

The actual voting was very simple: tap your mouse. The more you like the app, the faster you tap, and then at the end of 60 seconds the server displays how many clicks the app got.

Both apps were very quickly thrown together, so are very basic. Here is the client app that each attendee ran on their PC’s and used to vote:

Client voting app

The server portion which was projected onto the wall is shown at the top of this post. Each click from a client caused one of those randomly colored blobs to expand, and the bar in the center indicates if the pace of clicking in increasing or decreasing.

I was pretty worried that the results were going to be either biased, or completely random. So as a backup, we scored the apps as we usually would. Here is the weird thing though: The clicky voting app somehow got almost exactly the same results as our own scoring. The only variance being the last few apps, which didn’t matter because only the top 3 got prizes.

Client Bit

The client app just has a big button in the UI. When it is clicked it sends a number over the network to the server app. We initially had up and downvoting but decided to removing downvoting.


Server Bit

The server app uses the following code to receive the upvotes:

The UI then subscribes to the UpVoteReceived event and creates instances of the animated circles.
For this we have a UserControl:

Which animates as soon as it is created, and kills itself when it is done:


Tweet about this on TwitterShare on FacebookShare on RedditShare on Google+Email this to someonePin on Pinterest