{"id":21461112,"url":"https://github.com/rishi-gupta-data/book-recommendation-system","last_synced_at":"2026-05-04T10:37:41.728Z","repository":{"id":262833499,"uuid":"888499827","full_name":"Rishi-gupta-data/Book-Recommendation-System","owner":"Rishi-gupta-data","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-19T07:50:31.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T04:48:08.387Z","etag":null,"topics":["pandas","python3","scikit-learn"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rishi-gupta-data.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-14T14:02:41.000Z","updated_at":"2025-02-19T07:50:35.000Z","dependencies_parsed_at":"2025-02-19T08:36:42.821Z","dependency_job_id":null,"html_url":"https://github.com/Rishi-gupta-data/Book-Recommendation-System","commit_stats":null,"previous_names":["rishi-gupta-data/book-recommendation-system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rishi-gupta-data%2FBook-Recommendation-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rishi-gupta-data%2FBook-Recommendation-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rishi-gupta-data%2FBook-Recommendation-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rishi-gupta-data%2FBook-Recommendation-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rishi-gupta-data","download_url":"https://codeload.github.com/Rishi-gupta-data/Book-Recommendation-System/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243976493,"owners_count":20377692,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pandas","python3","scikit-learn"],"created_at":"2024-11-23T07:07:32.352Z","updated_at":"2026-05-04T10:37:41.720Z","avatar_url":"https://github.com/Rishi-gupta-data.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 Book Recommendation System\n\nA sophisticated book recommendation engine powered by collaborative filtering techniques (KNN \u0026 SVD), featuring an intuitive web interface.\n\n---\n\n## ✨ Features\n\n- 🤖 **Intelligent Recommendations** using Collaborative Filtering (User-User \u0026 Item-Item)\n- 📊 **Similar Books Discovery** via ISBN\n- 🌐 **Interactive Web Interface** (Flask-based)\n- 🔑 **API Endpoints** with Rate Limiting\n- 📈 **Performance Metrics** (RMSE, MAE, Precision@K)\n- 🔄 **Efficient Data Processing Pipeline**\n- 🗂️ **Well-Structured Codebase** for scalability\n\n---\n\n## 🛠️ Tech Stack\n\n| Category           | Tools/Libraries               |\n|--------------------|-------------------------------|\n| 👨‍💻 **Language**   | Python 3.8+                   |\n| ⚙️ **Framework**    | Flask                         |\n| 📊 **Data Handling**| Pandas, NumPy, scikit-learn   |\n| 📚 **Recommenders** | KNN (Collaborative), SVD (Matrix Factorization) |\n| 🎨 **Frontend**     | HTML, CSS, Bootstrap, Font Awesome |\n\n---\n\n## 📁 Project Structure\n\n📦 **BookRecommendationSystem/**  \n│  \n├── 📂 **data/**                        \n│   ├── 📝 **raw/**                   # Original datasets (Books, Ratings, Users)  \n│   └── 📊 **processed/**             # Cleaned \u0026 preprocessed data  \n│  \n├── 📂 **frontend/**                  \n│   ├── 🎨 **static/**                # CSS, JS, assets  \n│   └── 📄 **templates/**             # HTML files (Jinja2 templates)  \n│  \n├── 💾 **models/**                    # Trained KNN \u0026 SVD models  \n│  \n├── 📓 **notebooks/**                 # Jupyter notebooks for experiments  \n│  \n├── 🔧 **src/**                       # Core Python modules (ETL, recommenders)  \n│  \n└── 📝 **app.py**                     # Flask entry point  \n\n---\n\n## 🔄 Workflow Overview\n\n```mermaid\nflowchart TD\n    A([📝 User Input: Book/ISBN/User ID]):::start --\u003e B{{📊 Data Processing}}\n    B --\u003e C[🧹 Clean \u0026 Preprocess Data]\n    C --\u003e D[📦 Load Models: KNN / SVD]\n    D --\u003e E[🤖 Generate Recommendations]\n    E --\u003e F[📈 Evaluate with Metrics]\n    E --\u003e G[🌐 Render Web Interface]\n    G --\u003e H([📚 Display Recommended Books]):::end_node\n\n    classDef start fill:#00b894,stroke:#fff,color:#fff,stroke-width:2px\n    classDef process fill:#0984e3,stroke:#fff,color:#fff\n    classDef decision fill:#fdcb6e,stroke:#2d3436,color:#2d3436\n    classDef analysis fill:#6c5ce7,stroke:#fff,color:#fff\n    classDef end_node fill:#d63031,stroke:#fff,color:#fff,stroke-width:2px\n\n    B:::decision\n    C:::process\n    D:::process\n    E:::process\n    F:::analysis\n    G:::process\n````\n---\n## 🧠 Models Used\n\n### 1️⃣ **KNN (Collaborative Filtering)**\n\n* Uses similarity between users/books based on ratings.\n* Finds *nearest neighbors* (similar readers or books).\n* Recommends books that similar users liked.\n\n### 2️⃣ **SVD (Matrix Factorization)**\n\n* Decomposes the User-Item rating matrix into latent factors.\n* Captures *hidden patterns* in reading behavior.\n* Generates **personalized recommendations** even for sparse data.\n---\n\n## 📊 Data Pipeline\n\n```mermaid\nflowchart LR\n    A([📥 Raw Data: Books + Users + Ratings]) --\u003e B[🧹 Preprocessing: Missing Values, Normalization]\n    B --\u003e C[🗂️ Train-Test Split]\n    C --\u003e D1[🔎 KNN Model Training]\n    C --\u003e D2[📐 SVD Model Training]\n    D1 --\u003e E[📊 Evaluation]\n    D2 --\u003e E\n    E --\u003e F([📚 Final Recommendation Engine]):::end_node\n\n%% 🎨 Styling\nclassDef end_node fill:#d63031,stroke:#fff,color:#fff,stroke-width:2px;\n```\n## 🚀 How to Run\n\n1. Install the required dependencies:\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n2. Run the application:\n    ```bash\n    python src/webapp/app.py\n    ```\n\n3. Open your browser and visit:  \n    👉 [http://localhost:5000](http://localhost:5000)\n\n---\n## 📈 Evaluation Metrics\n\n**RMSE \u0026 MAE** → to measure prediction errors.\n\n**Precision@K \u0026 Recall@K** → to evaluate recommendation accuracy.\n\n**Hit Rate** → to measure how often recommended books match user preferences.\n\n\n## 📸 Screenshots\n\n\n![Screenshot (15)](https://github.com/user-attachments/assets/cb62f845-0272-48eb-8f81-1a8e2b9a2426)\n\n\n![Screenshot (16)](https://github.com/user-attachments/assets/7e2149a0-eeac-435b-81db-ba71f5458c8a)\n\n\n![Screenshot (17)](https://github.com/user-attachments/assets/41cc0518-4a36-4145-b309-02e94aec8d62)\n\n\n![Screenshot (18)](https://github.com/user-attachments/assets/39f259f7-002f-4a2c-9cbc-e5a880b17835)\n\n\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishi-gupta-data%2Fbook-recommendation-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frishi-gupta-data%2Fbook-recommendation-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishi-gupta-data%2Fbook-recommendation-system/lists"}