Choosing which product to buy shouldn't be hard. After having bought multiple products online with "high" ratings only to be disappointed. We decide to make an app that helps shoppers make a more informed decisions.
CensView is a Chrome extension that condenses and summarizes customer reviews of a product page. Using Cohere's NLP, the app gathers the general consensus of the reviews to help customers make a more informed decision.
The frontend is built using HTML, CSS, and JavaScript. The backend is coded in Python and Javascript, it receives the product URL, scraps the review data from the product site with Puppeteer, and uses Cohere's NLP to analyze the data. Communication between front and back is handled using ExpressJS and Flask.
- Communicating between frontend and backend.
- GET and POST requests
- Finding selectors for Puppeteer
- Created a working application
- Support for BestBuy and Amazon
- Teamwork
- Creating chrome extensions
- Working with Cohere
- Full Stack Web Development
- Adding support for more storefronts
- Hosting the server for the extension online
- Improving the UI look
You'll need two seperate terminal windows (terminal1 & terminal2)
- Clone repository from GitHub
- Run
npm install
in terminal1 - Create environment
- Mac - run
python3 -m venv venv
in terminal2 - Windows - run
py -3 -m venv venv
in terminal2
- Mac - run
- Activate enivronment
- Mac - run
. venv/bin/activate
in terminal2 - Windows - run
venv\Scripts\activate
in terminal2
- Mac - run
- Run the following pip installs in terminal2
pip install Flask
pip install cohere
- Create a file with your Cohere API token called
dumby.py
. The contents of the file should look like below:
token = 'API_TOKEN'
- In terminal2 window run
flask --app app run
- In terminal1 window run
node app
- Can send a GET request to flask for array result, sample results below
Example GET Requests
http://127.0.0.1:5000?siteurl=https://www.bestbuy.ca/en-ca/product/sonos-arc-sound-bar-black/14597172&website=bestbuy
http://127.0.0.1:5000?siteurl=https://www.amazon.ca/dp/B09F1QQZM2&website=amazon