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.
- Languages: Python, SQL (PostGRES), JavaScript, HTML, CSS
- Frameworks: Flask, Jinja, React, Flask-SQLAlchemy
- W3.CSS
- Libraries:
.
├── api_utils.py # Helper functions interfacing with api
├── config.py # Configuration variables
├── db_utils.py # Helper functions interfacing with the database
├── experiments.ipynb # Jupyter NB including SVD tests
├── model.py # Flask-SQLAlchemy classes for the data model
├── requirements.txt # Defines requirements
├── rec.py # Recommender system functions
├── server.py # Flask routes
├── test_db_utils.py # Tests for db_utils.py
├── test_model.py # Tests for model.py
├── test_rec.py # Tests for rec.py
├── test_server.py # Tests for server.py and front-end
├── test_utils.py # Tests for utils.py
├── timelog.py # Decorator for logging
├── update_pkey_seqs.py # Script by Katie Byers to introspect DB & set autoincrementing primary keys
├── utils.py # Helper methods for server.py
│
├── 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
- SciPy Sparse Single Value Decomposition
- Matrix Factorization for Movie Recommendations in Python
- How the Facebook content placeholder works
- d3
- Katie Byers @lobsterkatie — Wrote update_pkey_seqs.py
- Sarai Rosenberg @Saraislet — Software engineer and mathematician, looking for opportunities