So I attended my first proper hackathon last weekend, and it was fantastic. After the 9-hour drive (yes, 9 hours!) up to Edinburgh, my 2 friends and I were totally unprepared for the 30 hours of caffeine-fuelled, sleep-deprived insanity that followed - including people singing Taylor Swift songs at 4am, people sleeping in the WEIRDEST of places, and people basking in the strange cameraderie that you get after being shut in the same building for 2 days.

The weekend was broken up with fun/humiliating events (it’s funny how often those two things coincided) like slideshow karaoke (which involves standing up in front of 100 people and presenting a slideshow you’ve never seen), werewolf (a guessing game involving blindfolds and very in-depth role-playing - not my thing but fun to watch!), and “coding in the dark” - which made staying awake a little less arduous.

We made an online multiplayer top-trumps-style card game using real-time stock market data. Essentially players are able to access a uniquely-generated URL, share that URL with others and play an interactive multiplayer top-trumps style card game in real-time over the internet.

## What it’s built with

We built the server in Node and the client with HTML5 and JavaScript. The client-to-server communication is done with WebSockets (a nice simple two-way communication protocol with persistent connections). The entire project took about 24 hours to build with the 3 of us working on it together - we almost hit 180 commits over the weekend!

We originally started designing the web server in Python 3 (Python 3 is my most productive language and I was originally responsible for writing the server), but for some reason I couldn’t get the asyncio WebSockets library working correctly. After a couple of hours struggling with this and being conscious of time, we decided to do a U-turn and use Node - a language that none of us were particularly familiar with and that we essentially learned overnight!