Skip to content

booleanhunter-tech-blog/e3-retail

Repository files navigation

E³Retail

An E-commerce products-list website that demonstrates the application of Elasticsearch in retail & online shopping.

App Screenshots

Home Page

Screenshot of home page

Products filter page

Screenshot of products filter page

Features

Search features

  • Search for a product by typing in the search input.
  • Search within a category.
  • Search across multiple categories.
  • Filter by brand, pricing and ratings.
  • Sort by relevance, ratings or price.
  • Paginate through search results.
  • Search input autocomplete suggestions (requires JavaScript to be enabled).

Requirements

  • A laptop or a desktop computer.
  • Chrome browser.
  • Internet connectivity.

Instructions to install

  1. Requires AWS OpenSearch
  2. Initialize environment variables. If you're running the app locally, create a .env file:
    NODE_ENV=development
    ELASTICSEARCH_HOST=your-elasticsearch-domain
    ELASTICSEARCH_PORT=443
    ELASTICSEARCH_USER=your-elasticsearch-master-user
    ELASTICSEARCH_PASSWORD=your-elasticsearch-master-password
    ELASTICSEARCH_INDEX=index-to-search-on
  1. Install Node.js
  2. Clone or fork this repo
  3. Run npm install in your project root
  4. Run npm start to start the app server

Common commands

Creating an index

npm run create-index your-index-name

Bulk uploading Data

Syntax for uploading data in .ndjson format:

curl -XPOST -u 'username:password' 'your-elasticsearch-url/_bulk' --data-binary @datasets/flipkart-products-bulk.ndjson -H 'Content-Type: application/json'

Known issues

  • Images may not load if they have been removed at the source.