In October 2018 my friends and I were invited to attend the 2018 Hack Harvard hackathon. We had an amazing time there - the event was 3 days long, but we spent the better part of a week in Cambridge, Massachusetts, exploring the city and taking a few fun photographs along the way:

My friends and I at the statue of John Harvard, subverting the usual tradition My friends and I at the statue of John Harvard, subverting the usual tradition

Our project for the hackathon itself was called HexLedger, and used the Multichain blockchain architecture to maintain a decentralised database of the hackathons that people had been to, the projects they had made, and the prizes they had won.

We built a RESTful API to access the blockchain, so users didn’t have to run their own client in order to access the database or make changes - they were perfectly welcome to, of course, but we wanted to make it as simple as possible for anyone to use.

The multichain architecture allows the creation of ledgers (effectively databases attached to the blockchain) and tokens (arbitrary extra ‘sub-cryptocurrencies’). We took advantage of both these features - Our system used ledgers to store data on users and hackathons, and each hackathon had its own token associated with it. Hackathon organisers could award tokens to users as proof of attendance to the hackathon, and any clients viewing that user’s profile would then display the ‘hex’ (hexagonal logo sticker) of that hackathon alongside some information on the user’s project.

We used a system of session tokens stored in a ledger on the blockchain to authorise users to make changes. An authorised admin address could generate session tokens for other users, temporarily authenticating them as that user and allowing them to make changes to their profile (and similarly authorise a hackathon organiser to award hexes to users).

The blockchain architecture worked pretty much flawlessly, but our real downfall was using Wix to build our web interface. We’d been enchanted by their offer of laptops as prizes, and forgot how hard it was to build a proper interface using these tools until it was far too late. While our tools worked very well from a technical standpoint, the web interface we’d built was an ugly mess of site-builder elements and hacked-together scripts. It worked, and was good enough for a demo, but we had to remove a few key features (session tokens being one of them) in order for the demo to work.

Our efforts were not in vain however - the hackathon organisers saw fit to award us the prize for “Most Useless Hack”, giving each of us a useless box similar to the one here as well as the pride of having won a prize at a hackathon hosted by one of the world’s most prestigious universities.

While this project was mostly for fun, I think it would be really interesting to build a proper interface for it sometime in the future. A hackathon profile system would be really useful, and we already have the base technology - all that’s left is making a pretty client through which to access it!