An E-commerce products-list website that demonstrates the application of Elasticsearch in retail & online shopping.
- Responsive on web and mobile.
- Built using Progressive enhancement philosophy.
- 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).
- A laptop or a desktop computer.
- Chrome browser.
- Internet connectivity.
- Requires AWS OpenSearch
- 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
- Install Node.js
- Clone or fork this repo
- Run
npm install
in your project root - Run
npm start
to start the app server
npm run create-index your-index-name
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'
- Images may not load if they have been removed at the source.