The Price Comparison and Personal Offers platform instantly provides an overview of all shops and their offers for a product that a customer is looking for. Personalized offers can be made just-in-time taking into account a customer’s profile and market data.
The *instinctools Company was involved in a price comparison project with a unique capability to make personal offers to customers based on their profile and current market conditions. The Price Comparison platform aggregates offers from all shops, and shows them to the customer using a browser add-on and mobile application while the user is looking for the product.
The Personal Offers platform allows shops to offer personalized deals using a rule engine, taking into account a customer’s profile and competitor’s offers. This allows shops to implement a loyalty program and compete for best offer in terms of price, delivery terms or additional value.
The whole process takes a split second. Therefore, the best deals are presented to a customer while he is looking into a product and is ready to buy it right away.
We delivered online and offline deal-making process by collecting requirements, designing a new system, planning a change to the existing product and successfully integrating it together. The existing functionality has been maintained throughout the process. It was covered with automatic tests and redesigned to support a growing number of requests.
To support operations, we implemented monitoring of backend services while providing reliable tracking of transactions and making user’s behavioral data available for data analytics.
We have done major refactoring to unify approaches used throughout the micro-services, which lowered costs for operations and maintenance.
The client has obtained the desired functionality in time to run partnership programs with online and offline shops. The delivered platform was cloud-ready and modular, allowing the scaling of hot spots and handling business growth and peak load.
The benefits of the delivered platform are:
The client was pleased with our fulfillment of the requirements and the recommendations of the affiliate partners. We are currently continuing to maintain the stable operation of the platform.
The system was deployed to Amazon EC2 using Terraform, Ansible and Docker, with core components independent from AWS platform offerings. The delivered solution is not locked to AWS.
MongoDB, Elasticsearch and Redis were used as operational data storages.
Continuous integration and delivery were implemented around Git repositories using the Gitflow model. The integrated setup of Jenkins, Docker, Slack and GitHub Status API was used to implement DevOps practices.
Prometheus and Graphana were used to build a backbone for backend monitoring. Sentry was used on both the frontend and backend to catch runtime errors from all environments.
Node.js and React were chosen as two pillars to establish a common ground and allow, among other things, server-side rendering and code reuse between web application, browser add-ons and mobile application created in React Native.
Amazon Kinesis, Redshift and S3 were used to build analytics platform open to third-party analytics products, e.g. Tableau and Amazon Quicksight.
An increasing number of offers and data crunching tasks were gracefully handled by a scalable pool of workers getting jobs from the RabbitMQ queue.
npm was used for public and private package registry. The combination of semantic versioning, GitHub Releases and private npm registry allowed the sharing of knowledge inside a distributed team.