Please note that this project is unfinished.

Inspiration

Board games have always been a gathering point for families and friends. From Candy Land to Risk, board games provide a great environment for friendly competition and bonding. Especially during COVID-19, many groups have played games virtually as a way of staying connected. However, finding a new game that is the right level and everyone can enjoy is often difficult. This site aims to create a centralized listing of board games and use a recommendation engine to suggest new games based on previous likes and dislikes.

What it does

This site is essentially Netflix for games. Based on initial user likes and dislikes, manufacturer categories and information and (eventually) crowd sourced ratings, the site then recommends games. It also is able to filter games by complexity and type of the user wants to browse options themselves. The recommendation is built on a clustering algorithm called Hierarchical K-means which groups games into categories based on their similarity to others. This allows it to make weighted predictions based on what games the user has previously enjoyed.

How I built it

This site is built using a Django framework and deployed on tjCSL’s Director. It uses various python libraries like urllib to scrape for games to add to the site and SciKit-Learn to implement the K-means algorithm.

Challenges I ran into

Due to the limitations of the deployment platform, it is very difficult to automate the launch of the long running processes needed to scrape for new games and to periodically retrain the K-means. These can both be done manually of course, but it would be nice to automate.

What I’ve learned

Web scraping is annoying when one is trying to come up with a standardized format.

What's next for GameGuidance

Eventually, this will probably get deployed on Heroku which allows for long running processes. There are a couple of dependency issues to work out first, but Heroku is generally more stable for long term deployment.

Share this project:

Updates