Online medicine shopping portal
Search optimization for an online medicine shopping service using Amazon Elasticsearch Service
-
Services:
Product Development and Consulting, Custom Software Development, Software Development Outsourcing
-
Industries:
Software Development, Cloud Solutions, E-commerce, Web Development
-
Technology Stack:
Frontend: ASP.NET MVC Razor, Bootstrap, SASS Backend: C# .NET Core, AWS Elasticsearch, AWS Redis, AWS Elastic Container Service (ECS), AWS SQS, AWS Lambda Android: Kotlin, Room, Google Maps, Koin, Firebase iOS: Swift 5, CoreData, MapKit, Moya, KeychainSwift, ExpyTableView, ClusterKit
-
Project Summary:
Tabletki.ua is a portal aggregator that allows finding and ordering medicines in the nearest location and at the lowest price.
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
Frontend
Angular, TypeScript Angular CLI, SASS Karma, Jasmine
Backend
C# .NET Framework, WCF, NUnit Async, Networking, REST API AWS S3 SQLite
Android
Kotlin Room, Google Maps Koin, Firebase
iOS
Swift 5 CoreData, MapKit, Moya KeychainSwift, ExpyTableView, ClusterKit