{"id":24782166,"url":"https://github.com/cnoret/book_recommender","last_synced_at":"2026-05-08T10:34:01.009Z","repository":{"id":274642906,"uuid":"923582265","full_name":"cnoret/book_recommender","owner":"cnoret","description":" Streamlit-based application that provides personalized book recommendations using a k-Nearest Neighbors (kNN) model.","archived":false,"fork":false,"pushed_at":"2025-02-02T15:27:40.000Z","size":74997,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-03T09:43:20.551Z","etag":null,"topics":["knn","python","recommendation-system","scraping","streamlit","truncated-svd"],"latest_commit_sha":null,"homepage":"https://book-recommender-eng.streamlit.app","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/cnoret.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,"zenodo":null}},"created_at":"2025-01-28T14:06:21.000Z","updated_at":"2025-02-02T15:27:44.000Z","dependencies_parsed_at":"2025-07-03T09:44:10.993Z","dependency_job_id":null,"html_url":"https://github.com/cnoret/book_recommender","commit_stats":null,"previous_names":["cnoret/book_recommender"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cnoret/book_recommender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnoret%2Fbook_recommender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnoret%2Fbook_recommender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnoret%2Fbook_recommender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnoret%2Fbook_recommender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cnoret","download_url":"https://codeload.github.com/cnoret/book_recommender/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnoret%2Fbook_recommender/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32776856,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["knn","python","recommendation-system","scraping","streamlit","truncated-svd"],"created_at":"2025-01-29T11:16:19.564Z","updated_at":"2026-05-08T10:34:00.975Z","avatar_url":"https://github.com/cnoret.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 Book Recommender System\n\nWelcome to the **Book Recommender System**! This project is a Streamlit-based application that provides personalized book recommendations using a k-Nearest Neighbors (kNN) model, and a collaborative filtering approach via SVD.\n\n---\n\n## 🔍 Features\n\n### 🔢 General Statistics\n- Displays the total number of books and users in the dataset.\n\n### 🎮 Popular Books\n- Shows the most popular books based on the number of ratings.\n\n### 🌟 Top-Rated Books\n- Highlights the top-rated books in the dataset.\n\n### 🔍 Recommendations\n- Provides book recommendations based on user selection.\n- Allows users to rate recommendations and save their feedback.\n\n### 🕵️‍♂️ Advanced Search\n- Search for books by keywords.\n\n### 🌐 Random Book Discovery\n- Discover a random book from the dataset.\n\n### 🎨 Visualizations\n- View distributions of ratings and user interactions with books.\n\n---\n\n## 💪 Technologies Used\n\n- **Streamlit**: For building the web-based user interface.\n- **scikit-learn**: For implementing the kNN recommendation algorithm.\n- **pandas**: For data manipulation.\n- **plotly**: For creating interactive visualizations.\n- **pickle**: For saving and loading the pre-trained model and datasets.\n- **SVD (Singular Value Decomposition)**: For collaborative filtering-based recommendations.\n\n---\n\n## 🚀 How to Run the Application\n\n### Prerequisites\n\n- Python 3.9 or later\n- Required Python libraries (listed in `requirements.txt`):\n\n### Steps to Run\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/your-username/book-recommender-system.git\n   cd book-recommender-system\n   ```\n\n2. Install the dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. Place the required data and model files in the `artifacts/` directory:\n   - `knn_model.pkl`\n   - `svd_model.pkl`\n   - `book_titles.pkl`\n   - `book_df.pkl`\n\n4. Run the Streamlit app:\n   ```bash\n   streamlit run app.py\n   ```\n\n5. Open your web browser and navigate to `http://localhost:8501`.\n\n---\n\n## 🌄 File Structure\n\n```\nbook-recommender-system/\n├── app.py                        # Main application script  \n├── utils.py                      # Functions library\n├── tabs/                         # Tabs functions library\n│   ├── tab0.py\n│   ├── tab1.py\n│   ├── tab2.py\n│   ├── tab3.py\n│   ├── tab4.py\n│   ├── tab5.py\n│   └── tab6.py\n├── artifacts/                    # Contains model and dataset files\n│   ├── svd_model.pkl             # Trained SVD model\n│   ├── knn_model.pkl            # Trained KNN model\n│   ├── book_df.pkl              # Book DataFrame\n│   └── book_titles.pkl          # Titles of the books\n├── data/                         # Raw and cleaned datasets\n│   ├── dataset.csv              # Raw dataset with book info\n│   ├── Ratings.csv              # Ratings data\n│   ├── dataset_with_details.csv # Extended dataset\n│   ├── cleaned_data.csv         # Preprocessed dataset\n│   ├── Users.csv                # User data\n│   └── Books.csv                # Book data\n├── scrapper/                     # Scraping scripts\n│   ├── scrapper.py              # Main scraping script\n│   └── scrapper_cache_check.py  # Script to verify cached data\n├── notebooks/                    # Jupyter notebooks for model training and analysis\n│   ├── base.ipynb               # Basic EDA notebook\n├── Dockerfile                    # Docker configuration file\n├── train.py                      # Script for training the recommendation model\n├── requirements.txt              # Dependencies for the project\n├── runtime.txt                   # Specifies Python version for deployment\n├── README.md                     # Project documentation\n├── LICENSE                       # License information\n└── .gitignore                    # Git ignore file\n```\n\n### Description of Key Files\n\n- **artifacts/**: Contains all the generated artifacts from the training process, including the trained models and processed data.\n- **data/**: Directory for raw and cleaned datasets.\n- **scrapper/**: Contains the scraping scripts used to collect book and user data.\n- **notebooks/**: Jupyter notebooks for exploratory data analysis (EDA) and model training.\n- **Dockerfile**: Used for containerizing the application.\n- **app.py**: The main application file for deploying the recommendation engine.\n- **requirements.txt**: Lists all the Python dependencies required for the project.\n- **runtime.txt**: Specifies the runtime environment for deployment (e.g., Python version).\n- **train.py**: A standalone Python script for training the recommendation engine model.\n\n---\n\n## 🎨 Screenshots\n\n### 🌐 Home Page\n![Home Page](https://via.placeholder.com/600x300)\n\n### 🔍 Recommendations\n![Recommendations](https://via.placeholder.com/600x300)\n\n### 🎨 Visualizations\n![Visualizations](https://via.placeholder.com/600x300)\n\n---\n\n## ⚖️ License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n\n---\n\nThank you for exploring the Book Recommender System! 🚀","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnoret%2Fbook_recommender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcnoret%2Fbook_recommender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnoret%2Fbook_recommender/lists"}