Inspired by the TV show Pointless, and the Topic feature of the Majestic API - as it uses Majestic and Pointless but there is no easy way to combine these names I called it M'pointless.
What it does
It's a multiplayer browser-based game where you play a (funky type of) Pointless game, but rather than generic concepts as in the TV show, it uses web topics and domain names.
Out of many players in the game, one is chosen as a contestant, the rest are the audience. Everyone is given a specific topic (eg. Video Games) and the audience must all submit one or more websites which they think are related to the given topic. After the round ends (after 30 seconds), the contestant must then choose a website themselves, and the aim is to pick the website which was chosen least by the audience (such as by picking a very obscure website) while still being related to the topic.
M'pointless uses the Majestic API to judge whether a given website is related to the topic,
How I built it
I started off not sure what to build, so I wrote an events system which allows the JS frontend to talk to the Bottle back-end through Ajax calls. After I wrote this, I needed to decide what to actually make that was multiplayer and web-based, so I brainstormed various game ideas until I came to TV shows, and realised that Pointless works well as it has a large audience.
Challenges I ran into
The JSON payload of each Ajax call is quite a lot if it's being sent to >100 people at once so I needed to find a way to condense all of the information in each event into as little space as possible.
Finally the Majestic API was very information-dense and returned a lot of numbers so I wrote my own Python wrapper around Majestic's Python wrapper around their own web API, to allow the server code to at least be a little bit maintainable
Accomplishments that I'm proud of
Literally the only frameworks I've used are Bottle on the backend and jQuery/Bootstrap on the front-end - everything else is done from scratch!
What I learned
Basically had to learn Ajax from scratch as I've never used it before, and also got to know some of the more detailed intricacies of routing in the Bottle framework
What's next for M'pointless
Make the website look nicer! :D
Try it out!
Try it out at http://tomgalvin.uk/