Juxtapose is a web application designed to help online shoppers tackle the difficulty of making well-informed and confident purchasing decisions by alleviating decision paralysis and information overload.
Backend Production
·
Frontend Production
Table of Contents
Juxtapose helps shoppers make improved purchasing decisions by ensuring they feel less overwhelmed by the number of product options and volume of information available. By aggregating specifications, peer reviews, expert reviews, and related videos, and providing tailored recommendations, shoppers can reach purchasing decisions with ease!
To use Juxtapose, you can:
- Search: Search for product category (ex. DSLR cameras)
- Set filters & preferences: Set filters and rank your feature preferences
- View recommendations: See the products we think you’ll like
- Compare: Compare products and pick your favourite one
To get a local copy up and running, follow these simple steps. You must always have 2 terminals open, where one terminal points to the backend folder and the other points to the frontend folder.
Ensure the following applications are locally installed:
Follow the steps listed below to setup your backend environment.
- Open a new terminal
- Change directory to the
backendfoldercd backend - Create a local virtual environment
python3 -m venv .venv - Activate the virtual environment
source .venv/bin/activate - Install
requirementsdependenciespip install -r requirements.txt - Install
NLTKdependenciesEnsure yourpython3 -m nltk.downloader vader_lexicon{PYTHON_VERSION}is identical to what's listed in your File Explorer. If you run into an error, try runningpip install certifi /Applications/Python\ {PYTHON_VERSION}/Install\ Certificates.command - Create a
.envfiletouch .env - Reach out to the team for the environment variables, adding them to the
.envfile - When needed, deactivate the local virtual environment
deactivate
Follow the steps listed below to setup your frontend environment.
- Open a new terminal
- Change directory to the
frontendfoldercd frontend - Install node dependencies
npm install - Create a
.envfiletouch .env - Reach out to the team for the environment variables, adding them to the
.envfile
To add additional packages when developing, follow these steps.
- Change directory to the
backendfoldercd backend - Activate your virtual environment
source .venv/bin/activate - Install the additional packages. As as example:
pip install pandas - Update the
requirementsdependenciespip freeze > requirements.txt - Commit the
requirements.txtfile
- Change directory to the
frontendfoldercd frontend - Install the additional packages. As as example:
npm install antd - Commit the
package.jsonandpackage-lock.jsonfiles
To locally run the application, the following steps can be run. The backend can be run independently, but to run the frontend, the backend needs to also be run.
- Change directory to the
backendfoldercd backend - Activate your virtual environment
source .venv/bin/activate - Start the
backendserviceflask --debug run --no-debugger
- Change directory to the
frontendfoldercd frontend - Start the
frontendservicenpm start
To locally run the backend and frontend automated tests, run the following steps.
- Change directory to the
backendfoldercd backend - Activate your virtual environment
source .venv/bin/activate - Run the
backendtestspython3 -m unittest discover
- Change directory to the
frontendfoldercd frontend - Run the
frontendtestsnpm test
Several acknowledgements to be made includes Prof. Kejia Zhu along with the following technologies
Backend APIs
Frontend Libraries
