Skip to content

danaelshrbiny10/Book-recommendation-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Book Recommendation System

Python Streamlit Pandas NumPy Scikit-learn Pickle

A content-based recommendation system that suggests similar books based on a given input using cosine similarity on user-book interaction data.

🚀 Features

  • Recommend books based on a user's favorite title.

  • Clean and intuitive streamlit-powered interface.

  • Top 50 popular books displayed on the home page.

  • Book metadata includes author, cover image, votes, and average rating.

  • Handles invalid or not-found inputs gracefully.

🛠️ Tech Stack

  • Python

  • Pandas, NumPy, Scikit-learn

  • stramlit for frontend design

  • Pickle for model serialization

📁 Folder Structure

Book-Recommendation-System/
│
├── app.py                     
├── system.ipynb               # model notebook
├── data/                      # for dataset
│   ├── Books.csv         
│   ├── Ratings.csv         
│   ├── Users.csv         
├── pages/
│   ├── Home.py            # Home page showing popular books
│   └── Recommend.py       # Recommendation results page
├── output/                # Serialized model and data
│   ├── books.pkl
│   ├── pt.pkl
│   ├── similarity_scores.pkl
│   └── popular.pkl
├── requirements
│   ├── base.txt           # List of dependencies
└── README.md              # Project documentation

📦 Setup Instructions

  1. Clone the repository
git clone https://github.com/danaelshrbiny10/Book-recommendation-system.git
cd book-recommendation-system
  1. Create virtual environment
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate on Windows
  1. Install dependencies
pip install -r requirements/base.txt
  1. Run the application
streamlit run app.py

Visit http://localhost:8501/ in your browser.

📬 Contact

For questions or contributions, feel free to reach out at [email protected].

📝 License

This project is open-source under the MIT License.

Contributors