BookVault is a Book Recommendation System that suggests books to users based on collaborative filtering and popularity. The project includes both a Jupyter Notebook (EDA + Model Building) and an interactive Streamlit Web App for book recommendations.
With the vast number of books available online, readers often struggle to find their next read.
This system aims to:
- Recommend books similar to the ones users enjoyed (personalized recommendations).
- Highlight trending/popular books based on ratings and reviews.
├── app.py # Streamlit app ├── book_recomm_Sys.ipynb # Jupyter Notebook (EDA + recommender logic) ├── books.pkl # Metadata of books ├── pt.pkl # Pivot table of user-book interactions ├── similarity_scores.pkl # Precomputed similarity matrix ├── Popular.pkl # Preprocessed popular books ├── requirements.txt # Dependencies
Dataset used is the Book-Crossing dataset, containing:
- Book-Title – Title of the book
- Book-Author – Author of the book
- ISBN – Unique identifier
- Image-URL-S/M/L – Book cover images
- Ratings – User ratings of books
-
Data Cleaning
- Removed duplicate/missing values
- Standardized author names & titles
-
Exploratory Data Analysis (EDA)
- Most popular authors and books
- Ratings distribution
-
Recommendation System
- Popularity-based filtering – books with highest ratings/reviews
- Collaborative filtering – similarity matrix (cosine similarity) built on user-item interactions
-
Web App Development
- Built with Streamlit for interactivity
- Book covers fetched dynamically from URLs/OpenLibrary API
- Clean UI with hover effects & two tabs: Popular Books and Personalized Recommendations
- Popular Books
- Displays trending books with ratings & reviews
- Personalized Recommendations
- User selects a book → App suggests similar titles
- Hover & UI Enhancements
- Smooth hover effects on book covers
- Clean, modern interface