An interactive Streamlit-based course recommendation app.
Users can select completed courses, train different recommenders, and compare model behavior inside the UI.
Try the deployed app here:
https://course-recommend-system-v2.streamlit.app/
- Modern Streamlit interface with interactive course selection (
streamlit-aggrid) - Multiple recommendation models:
Hybrid (Recommended)Course SimilarityKNN CollaborativeClustering with PCANeural Network(Keras)
- Sidebar controls for model and hyperparameters
- In-app model descriptions
- Built-in offline comparison metrics:
Hit@KCoverage
Course Recommend System/
├─ recommender_app.py # Streamlit UI
├─ backend.py # Model training/prediction logic
├─ ratings.csv # User-item ratings
├─ sim.csv # Course similarity matrix
├─ course_processed.csv # Processed course metadata
├─ courses_bows.csv # Bag-of-words/content features
└─ requirements.txt
python -m venv .venvWindows (PowerShell):
.venv\Scripts\Activate.ps1macOS/Linux:
source .venv/bin/activatepip install -r requirements.txtstreamlit run recommender_app.py- Select a model from the sidebar.
- Adjust model hyperparameters.
- Select completed courses in the main table.
- Click
Train Selected Model. - Click
Recommend New Courses. - Use
Model Evaluationto compare models withHit@KandCoverage.
Hybrid: combines content similarity and popularity.Course Similarity: pure item-item similarity approach.KNN Collaborative: collaborative filtering from user-item interactions.Clustering with PCA: dimensionality reduction (PCA) + KMeans clustering.Neural Network: Keras embedding-based rating predictor.
Note: SCORE scales are model-specific.
Compare scores within the same model, not across different models.
- Python 3.10+
- TensorFlow (CPU mode works)
- scikit-learn
- Streamlit
- Add missing models (
User Profile,NMF, embedding-based regression/classification) - Add more metrics (
Recall@K,MRR@K,MAP@K) - Add hyperparameter tuning and experiment tracking
If there is no license file in the repository, contact the project owner before reuse.