Skip to content

B-SERS: Books Search Engine and Recommendation System. This system combines the functionalities of a search engine and a recommendation system to effectively address the challenges of finding and suggesting books

License

Notifications You must be signed in to change notification settings

kevin-wijaya/Books-Search-Engine-and-Recommendation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

B-SERS: Books Search Engine and Recommendation System

home

Table of Contents

About

B-SERS: Books Search Engine and Recommendation System. This system combines the functionalities of a search engine and a recommendation system to effectively address the challenges of finding and suggesting books. By leveraging advanced algorithms and indexing techniques, B-SERS allows users to perform detailed searches across a large database of books.

The search engine uses the BM25 Okapi method for ranking, ensuring highly relevant search results. The recommendation system employs a multi-features weighting content-based recommendation method, specifically applied to the title and description of the books.

The dataset used for B-SERS comes from Kaggle. To complete the book details, I utilized ISBN data to scrape book descriptions from Amazon. In about a week, I successfully scraped descriptions for 79,436 books using a server that ran 24 hours a day.

Tech Stack

  • Web Application: JQuery, Tailwind CSS, Axios, Webpack
  • Experiment: Poetry, Numpy, Pandas, Scikit-learn, rank_bm25

Getting Started

These instructions will guide you through installing the project on your local machine for testing purposes. There are two methods of installation, with docker or manually using Linux and macOS commands.

Requirements

This project requires Python 3.10.

Installation (Docker)

Clone this repository

git clone https://github.com/kevin-wijaya/Books-Search-Engine-and-Recommendation-System.git

Change the directory to the cloned repository

cd Books-Search-Engine-and-Recommendation-System/

Run docker compose

docker compose up --build

Open your web browser and go to the following URL

# http://localhost:5500

Installation (Linux or MacOS)

Clone this repository

git clone https://github.com/kevin-wijaya/Books-Search-Engine-and-Recommendation-System.git

Change the directory to the cloned repository and then navigate to the server directory

cd Books-Search-Engine-and-Recommendation-System/server/

Initialize the python environment to ensure isolation

python -m venv .venv

Activate the python environment

source .venv/bin/activate

Install prerequisite python packages

 pip install --no-cache-dir -r requirements.txt

Run the uvicorn server

uvicorn run:app --reload --port=8001 --host=0.0.0.0

Open new terminal and change the directory to the cloned repository and then navigate to the client directory

# replace the /path/to/your/ with the path where your cloned repository is located
cd /path/to/your/Books-Search-Engine-and-Recommendation-System/client/

Change the directory to the production folder

cd .dist/

Run the Python HTTP server

python -m http.server 5500

Open your web browser and go to the following URL

# http://localhost:5500

Usage

To use this web application is easy, follow these 3 steps:

  1. Insert Text: Enter your text into the search field.
  2. Search: Press Enter or click the search icon to process the query. The system will then provide recommendations.
  3. Adjust Weight Parameters: Optionally, adjust the weights for the title or description parameters to see different results.

Screenshots

Here are some screenshots of the application:

test#1

params#1

params#2

test#2

test#3

test#4

detail

about

Author

  • Kevin Wijaya

About

B-SERS: Books Search Engine and Recommendation System. This system combines the functionalities of a search engine and a recommendation system to effectively address the challenges of finding and suggesting books

Topics

Resources

License

Stars

Watchers

Forks