Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Implement Personalized Book Recommendations Based on User Search History #92

Open
1 task done
shreya5653 opened this issue Oct 28, 2024 · 4 comments
Open
1 task done
Labels
enhancement New feature or request gssoc GirlScript Summer Of Code gssoc-ext hacktoberfest hacktoberfest-accepted level3 GirlScript Summer Of Code - 35 points status: ready for dev You can asked for this issue to be assigned (if not already assigned)

Comments

@shreya5653
Copy link
Contributor

Is this feature already requested?

  • I have checked "open" and "closed" issues, and this is not a duplicate.

Problem or Missing Functionality

Currently, the system lacks personalized recommendations for users based on their interests and search behavior. Without targeted suggestions, users might struggle to discover new books relevant to their preferences, reducing engagement and retention. This feature aims to address this gap by tracking user search history and providing book recommendations based on previously searched genres, thereby enhancing the user experience and promoting book discovery.

Feature Description

The Personalized Book Recommendation feature suggests books based on a user’s past searches, primarily focusing on the last-searched genre. It enhances user engagement by offering relevant recommendations and promotes book discovery. If no search history is available, the system defaults to popular books, ensuring continuous functionality with minimal changes to the existing system.

Screenshots

No response

Would you like to work on this feature?

Yes

Implementation Plan

Implementation Plan

  1. Create User Search History Entity: Add a UserSearchHistory table to store user ID, searched genre, and timestamp.
  2. Implement Search Logging: Modify the search API to log each user's search with the genre and time.
  3. Update Repository Layer: Create methods in UserSearchHistoryRepository to retrieve the last-searched genre for a user.
  4. Build Recommendation Logic: Add a method in BookService to fetch books based on the user’s last-searched genre or return popular books if no history is found.
  5. Create API Endpoint:Add a new /recommendations/{userId} endpoint in BookController to serve the recommendations.
  6. Test and Verify: Use tools like Postman to test search logging and validate that appropriate recommendations are returned based on search history.
@shreya5653 shreya5653 added the status: awaiting triage Waiting for maintainers to verify (please do not start work on this yet) label Oct 28, 2024
@shreya5653
Copy link
Contributor Author

@ajaynegi45 I would like to work on this issue as well. Can you please assign it to me.

@Tanisha0708
Copy link

@ajaynegi45
i would like to work on issue would you assign me this issue .

@ajaynegi45
Copy link
Owner

@ajaynegi45 I would like to work on this issue as well. Can you please assign it to me.

Start working on it

@ajaynegi45 ajaynegi45 added enhancement New feature or request hacktoberfest-accepted hacktoberfest status: ready for dev You can asked for this issue to be assigned (if not already assigned) gssoc GirlScript Summer Of Code gssoc-ext level3 GirlScript Summer Of Code - 35 points and removed status: awaiting triage Waiting for maintainers to verify (please do not start work on this yet) labels Oct 30, 2024
@Tanisha0708
Copy link

@ajaynegi45 i would like to work on this issue please assign me this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request gssoc GirlScript Summer Of Code gssoc-ext hacktoberfest hacktoberfest-accepted level3 GirlScript Summer Of Code - 35 points status: ready for dev You can asked for this issue to be assigned (if not already assigned)
Projects
None yet
Development

No branches or pull requests

3 participants