Uses Steam's WebAPI to help Steam users find other games they might like using their play history.
mkazin / three-games Goto Github PK
View Code? Open in Web Editor NEWGame recommendation system using Steam API
License: MIT License
Game recommendation system using Steam API
License: MIT License
Check the mock data in MockSteamApi and the tests using it to see if we are actually expecting to see recommended games owned by friends of friends. I'm not seeing any in crawling_test.py
I'm unhappy with what I'm seeing in the logs for crawling_tester.py
Let's clean it up, make it more helpful.
This may be useful in determining why I'm only seeing friends show up in that script, and no friends-of-friends.
Build out the recommendation engine by adding a second sorting algorithm.
The initial option will use a simple count of how many people own a game.
(later on, we will weight this based on friendship-distance)
When printing the list of game recommendations the column on which they games are sorted does not appear in the output. Only average hours is shown (alongside a list of users, split into friends and non-friends). This is unintuitive.
When I was working on traversing the graph I ran into some issues in the recursion.
First among these was recursing over already-queried Players (who had also been appended into the player_cache).
My naive solution to this was first to add a second parameter into the recursion function to allow checking for backtracking. I then determined I could simplify this by using player_cache.
I now believe this may have been a mistake.
The reason: a Player skipped due to backtracking may require different handling than one due to graph_depth.
Example:
Suppose the following list of relationships:
Alice -> Bob, Debra
Bob -> Carl
Carl -> Debra
Debra -> Eustice
Using the graph traversal system I currently employ, after three recursions the Bob branch would be:
Alice -> Bob -> Carl -> Debra
If the max_depth was set to 3, we would not query for Debra's relationships, but we would add her to the cache.
The problem occurs when we exit Bob's recursion stack, return to iterating over Alice's friends, and re-encounter Debra.
At this stage, Debra is skipped due to being in the cache. So despite being well within the specified graph depth, we would never build up the other branch under Alice:
Alice -> Debra -> Eustice
https://www.python.org/dev/peps/pep-0257/
Consider whether using doctest makes sense:
https://pymotw.com/2/doctest/
TravisCI is good, can use aws-sg-mngr as template
Set up static analysis
Set up test coverage
Add status badges in README
GraphDb's use of NetworkX isn't fully implemented.
Travis CI does not contain a config/auth.conf file .
It's failing on at least one of the unit tests due to trying to use a non-mocked function.
SteamApi was upgraded to handle a few edge cases:
Your mission should you choose to accept it:
I tried playing around with GameNameTraversalFilter in crawling_tester, changing it from filtering out multiple forms of Magic: The Gathering and ended up getting an empty recommendation list.
This was because it's implemented as a conjunction. Do I want to provide a mechanism for specifying disjunction is required?
Involves upgrading SteamApi to extend the APIClient class, then take a RateLimiter during initialization.
See: https://pypi.python.org/pypi/apiclient/1.0.2
It's Python project night.
Current CodeClimate reports project stats:
Let's pay down some debt!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.