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

JIRA-003 Designed Book recommendation system #3

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

AnjaBasara
Copy link
Owner

What?

Designed Book recommendation system. For more background, see ticket #JIRA-003.

Why?

This feature enhances the user book management experience, as the users are suggested similar books to the ones they like.

How?

This includes a migration for book ratings, rating controller, observer and new services for recommendation algorithms. Every time a user rates a book, RatingObserver dispatches a ProcessCreateRating job that calls the appropriate recommendation service to record that data. For those services, Strategy Pattern is used depending on which strategy/recommendation service should be used. ContentBasedFilteringService calls a third-party API, and CollaborativeFilteringService uses built-in algorithms. To refresh book recommendations, a custom command is made that uses the Recommender facade that builds the model, gets predictions, stores them etc.

Anything else?

ProcessCreateRating is chosen to be a Job since those ratings should be done asynchronously and not stop the user from using the application.

@AnjaBasara AnjaBasara added the enhancement New feature or request label Jun 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant