Finding an open-source project to contribute to can be difficult. Although social coding platforms make it easier to find projects, not all projects you find will match your interests. We wanted a tool that would let us quickly understand how well a project matches our interests and skills without having to inspect the entire codebase.
What it does
Recon is a chrome extension for GitHub. Whenever you visit a repository, it computes a score for that repo representing a prediction of how suitable the repo is for you. It is generated from a variety of factors extracted from the user and the repo that is currently being viewed.
How we built it
We created a Flask server that uses GitHub's REST (v3) and GraphQL (v4) APIs to gather metrics. These metrics include both generic metrics about the user/repo as well as some of the social metrics that are provided. The server then weights these factors to produce a score, and the chrome extension displays the results.
What's next for Recon
We'd like to make recommendations along with our match predictions. New users have little data to work with, and since we have this match system, we can try to stochastically recommend repos based on match results of other users.
Additionally, we'd like to learn the weights automatically instead of tuning by hand. We originally wanted to train a neural net to learn the weights, but had difficulty constructing a good training set. To do so, we might use cached API results (GHTorrent) to create dataset.