alexQi / gitrec

A recommender system for GitHub repositories based on Gorse

Home Page:https://gitrec.gorse.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitRec

test Website Discord Twitter Follow

GitRec is the missing recommender system for GitHub repositories based on Gorse.

Browser Extensions

Architecture

  • The trending crawler crawls trending repositories and insert them into Gorse as new items.
  • The user starred crawler crawls user starred repositories and insert them into Gorse as new feedback.
  • GitRec web service pulls recommendations from Gorse and show to users. It also submits a crawling request to the user starred crawler when a new user signed in.

Quick Start

  • First, clone the repository and enter the folder.
git clone https://github.com/zhenghaoz/gitrec.git
cd gitrec
  • Create a .env file.
GORSE_DASHBOARD_USER_NAME=xxxxxxxx
GORSE_DASHBOARD_PASSWORD=xxxxxxxx
GITHUB_ACCESS_TOKEN=xxxxxxxx
GITHUB_OAUTH_CLIENT_ID=xxxxxxxx
GITHUB_OAUTH_CLIENT_SECRET=xxxxxxxx
SECRET_KEY=xxxxxxxx
  • Generate a personal access token from GitHub and fill the GITHUB_ACCESS_TOKEN variable in the .env file.
GITHUB_ACCESS_TOKEN=xxxxxxxx # personal access token
  • Create a GitHub OAuth app. The authorization callback URL should be http://127.0.0.1:5000/login/github/authorized. Then, fill following variables in the .env file.
GITHUB_OAUTH_CLIENT_ID=xxxxxxxx     # client ID
GITHUB_OAUTH_CLIENT_SECRET=xxxxxxxx # client secret
SECRET_KEY=xxxxxxxx                 # random string
  • Start the cluster using Docker Compose.
docker-compose up -d
  • Download the SQL file github.sql and import to the MySQL instance.
mysql -h 127.0.0.1 -u gorse -pgorse_pass gorse < github.sql
  • Restart the master node to apply imported data.
docker-compose restart
  • Play with GitRec:
Entry Link
GitRec http://127.0.0.1:5000/
Grafana Dashboard http://127.0.0.1:3000/
Master Dashboard http://127.0.0.1:8088/
Master Prometheus Metrics http://127.0.0.1:8088/metrics
Server RESTful API http://127.0.0.1:8087/apidocs
Server Prometheus Metrics http://127.0.0.1:8087/metrics
Worker Prometheus Metrics http://127.0.0.1:8089/metrics

About

A recommender system for GitHub repositories based on Gorse

https://gitrec.gorse.io

License:Do What The F*ck You Want To Public License


Languages

Language:JavaScript 61.9%Language:Python 25.3%Language:Vue 10.3%Language:Dockerfile 1.1%Language:HTML 1.0%Language:Makefile 0.4%