Skip to content
GitHub repository recommendation engine using low-rank matrix approximation
Python JavaScript HTML CSS Jupyter Notebook
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Repo Recommender

Coverage Status

See Product Requirements Document on Google Docs.

The Repository Recommender system uses a Github-authenticated user's stars as machine learning features to recommend other repositories to follow, using low-rank matrix approximation.

Repo Recommender Demo Screencast

Built With

Key algorithms/methods

File structure

├──             # Helper functions interfacing with api
├──                # Configuration variables
├──              # Helper functions interfacing with the database
├── experiments.ipynb        # Jupyter NB including SVD tests
├──                 # Flask-SQLAlchemy classes for the data model
├── requirements.txt         # Defines requirements
├──                   # Recommender system functions
├──                # Flask routes
├──         # Tests for
├──            # Tests for
├──              # Tests for
├──           # Tests for and front-end
├──            # Tests for
├──               # Decorator for logging
├──      # Script by Katie Byers to introspect DB & set autoincrementing primary keys
├──                 # Helper methods for
├── static
│   ├── graph.js             # d3 for graph on homepage
│   ├── recs.jsx             # AJAX requests and functions to render React components
│   ├── repo.jsx             # React components for displaying repositories
│   └── style.css            # CSS
└── templates
    ├── base.html            # Template (includes navbar, header, & footer)
    ├── home.html            # Homepage
    ├── repo_recs.html       # Repo recommendations rendered with React components
    └── user_info.html       # Details about a user and their repositories


  • Plan features for 2.0:
    • Add AJAX to follow users
    • Write route to show stars of a user
    • Add like/dislike feature to "Like" a repo without starring
      • I.e., "see more like this" / "see less like this"
    • Write API requests instead of using PyGithub?
    • Build queue table and handlers instead of crawling recursively
    • Expand async calls to dynamically increase crawl breadth on login

Resources used:.



You can’t perform that action at this time.