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