A content-based recommendation system that suggests similar books based on a given input using cosine similarity on user-book interaction data.
-
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.
-
Python
-
Pandas, NumPy, Scikit-learn
-
stramlit for frontend design
-
Pickle for model serialization
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- Clone the repository
git clone https://github.com/danaelshrbiny10/Book-recommendation-system.git
cd book-recommendation-system- Create virtual environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows- Install dependencies
pip install -r requirements/base.txt- Run the application
streamlit run app.pyVisit http://localhost:8501/ in your browser.
For questions or contributions, feel free to reach out at [email protected].
This project is open-source under the MIT License.