aws-samples / aws-bookstore-demo-app

AWS Bookstore Demo App is a full-stack sample web application that creates a storefront (and backend) for customers to shop for fictitious books. The entire application can be created with a single template. Built on AWS Full-Stack Template.
MIT No Attribution
619 stars 305 forks source link

Implement Friend recommendations #7

Open deejvince opened 5 years ago

deejvince commented 5 years ago

Is your feature request related to a problem? Please describe. Its hard to demo the recommendation engine because there's no notion of friends in the system, also - i didn't see and insert into neptune in the code.

Describe the solution you'd like I'd like to see that if two different users buy a book, it will show that a friend has bought it. also it would be nice to get recommendations upon checkin out - do you want to add this book too?

triggan commented 5 years ago

Hi Lior,

There are a few components missing from the app that we just didn't have time to get around to before launch. We're happy to except PRs on any of these if someone would like to help address these items:

  1. No mechanism currently exists for adding new users to the graph. In order to provide the functionality that you mention above, we would need to add functionality such that a new user added in Cognito could be added. This could simply be done using a Lambda function triggered off of an event from Cognito.
  2. The social network that we used for this application is completely fabricated. We created the 'friendOf' relationships in the graph manually via the initial dataset. It would be nice to add a feature to the user registration where a new user could add friends of users that already exists in the application.
  3. The DynamoDB Stream that was used to update Elasticsearch and ElastiCache needs to be extended to also update Neptune. As of today, no new transactions are being added into the existing graph.

If anyone would like to help address these items, I am happy to help provide background on existing components of the application related to the existing Neptune and recommendation engine.