Online medicine shopping portal

Search optimization for an online medicine shopping service using Amazon Elasticsearch Service

The project description

To perform a quick and exhaustive search of medicines, the system was integrated with different data sources saving information about medicine prices and availability; these sources of data were represented by databases of different warehouses and pharmacies that save raw data in different formats, and with a deal of entry errors.

The solution used by the client needed an upgrade, specifically, a regular resource-intensive database indexing needed to be replaced by a more flexible mechanism. To be productive under heavy loads, the system was in need of a scalable and more powerful solution. We suggested integrating the system with an open-source search engine Elasticsearch based on Amazon Web Services.

The Solution

The customization of Elasticsearch done by our software development team allowed optimizing the search procedure and minimizing the time needed for user requests execution under heavy system loads when it is needed to process a big amount of requests during a short time period. The system was deployed on the AWS,- an Amazon application platform, with further customization. 

To modernize the system and to make it more available our developers also built a mobile application for the portal. 

The team consisted of two full-stack developers, two mobile application developers, and an HTML coder. 

Facts & figures:

  • The system’s index size was about 20 GB.
  • After the improvements medium response time didn’t exceed 70 ms while processing up to 100 parallel requests.
  • Downloading index data to Elasticsearch from scratch took about 5 hours, and now the point updates take milliseconds.

Technology stack


Angular, TypeScript Angular CLI, SASS Karma, Jasmine


C# .NET Framework, WCF, NUnit Async, Networking, REST API AWS S3 SQLite


Kotlin Room, Google Maps Koin, Firebase


Swift 5 CoreData, MapKit, Moya KeychainSwift, ExpyTableView, ClusterKit

Looking for something specific? Use the internal search