Generates customer profile/restaurant preferences based on user check-ins, and reviews. This is a microservice intended to integrate with the entire Yelp-alitics system.
See CONTRIBUTING.md for contribution guidelines.
Create a MongoDB database to hold customer profiler data with the following collections: users; restaurants; reviews; check-ins; clicks; queries.
To run this in isolation from other microservices, simulated data needs to be generated. Create a set of simulated historical data using the following steps:
-
Generate simulated restaurants, users, and user clicks, reviews, check-ins, and queries by running the scripts that end in Generator.js in the dataGeneration folder. This will add a JSON file for each collection in a MongoDB-friendly format to the data folder.
-
Import each generated file into MongoDB using the following command:
mongoimport --db YOUR_DB_NAME --collection YOUR_COLLECTION --drop --file YOUR_FILE_PATH/data/FILENAME --jsonArray
To simulate the flow of data into the system, run dataGeneration/streamData.js
This service accepts data via Amazon Web Services SQS. The sqs folder contains the scripts that need to be running in order to receive messages from other services.
- Node 6.11.1
- MongoDB 3.4
Install dependencies with npm install
View the project roadmap here