Git Product home page Git Product logo

meeple-matcher's Introduction

meeple-matcher

This project will recommend board games to gamers based on their current collection and stated interests, as described in their online gaming profile on BoardGameGeek (BGG).

It's my capstone project for the Foundations of Data Science workshop at Springboard.

You can read the project proposal on github.

The source code (and this proposal) are stored on github.

Sample reports will be stored on rpubs.

meeple-matcher's People

Contributors

mikec964 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

meeple-matcher's Issues

Batch load XML

Call function with a list of games to load. It returns the number loaded. Loop until you're happy because you're out of time, you've loaded them all, or you've loaded enough.

Make as many API calls at once as possible. Load games when available and make remaining API calls.

Tests are fragile

Some unit tests check for particular data: Games in the collection or ratings of a game. If the BGG source or cache files are updated, the tests will fail.

Need to possibly create special test files or test file directory for testing this specific.

get game stats

Function to read game stats from BGG XML API, store in data frame.

  • row per rating
  • col per rating, rater's username

get user collection

Function to read user's collection from BGG XML API, store in data frame.

  • Row per game
  • Col per rating, own, owned, want, want to trade, etc.

Load or sample ratings

Some games have over 12,000 ratings. API calls return pages of 100 ratings each: That's up to 120 calls per game!

When loading ratings, specify max number of pages to load.

Cache load XML

When loading XML files, if use-cache flag is set, load from disk instead of API.
When loading from API, if make-cache flag is set, store a copy on disk for later use.

Note, for 100 games in a collection, this will be at least 100 "thing" files.

get linked users

For a given user, get a list of users who have games in common with them

load into graph db

users as nodes. edges are based on affinity: games in common formula tbd

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.