Social Search Engine
Client Overview The customer was a startup who was seeking to redesign the mobile search experience, by integrating together places, events, deals, reviews with real time service integrations. Business Requirements The key business requirements put forward by the customer included:
- The mobile app which is the center-piece of the service should provide a re-defined and unique search experience.
- Integrate with a range of third party data APIs for places, events, deals and reviews with the capability to process large volumes of data
- The application should be able to scale to millions of data records without any deterioration in the search experience
- The application should provide a merchant portal which will allow third party merchants to sign-up and manage their business and services.
- Third party merchants can claim an already available business and can publish offers against this.
The Solution in Brief DeviceDriven developed a complete solution which included the following:
- Mobile Apps for iOS and Android: Given the need for rapid development and iterations towards the launch, the team chose the Ionic platform. The Mobile Apps integrated with the secure REST API’s exposed by the back-end to implement all functionality including login, registration, search, listings and personalization settings.
- Data Module: The API Integrations were implemented as a separate Data module that aggregated data from the a large number of API’s. Since the data was being integrated from a number of different services, the data had to be merged and de-duplicated. The Data module had to deal with large data volumes exceeding 20 million records and the application made extensive use of batch processing across a cluster of servers on AWS to achieve this.
- REST APIs: The REST API’s were implemented as a J2EE Spring based application using the Hibernate ORM. Elastic-Search was used to power the search. The search made extensive use of aggregations, geo-spatial queries and other Elastic Search query capabilities. Additionally the Percolotor APIs for used to provide an alerting function, which allowed to service to notify users about changes in data records they were following.
- Community Features: The application also implemented a range of community features which allowed users to like, follow other users and build collections of places, events, deals that they could share with other users and to the community in general.
- Merchant Portal: Merchants were also provide both a Web and mobile based merchant portal that allowed them to signup and manage their services. The web portal was implemented using Node.JS/AngularJS interfacing with the secure RES API’s while the mobile merchant portal was an Ionic application that featured OTP based signups and QR code based deal confirmations.
The DeviceDriven team delivered a complete product platform which met and exceeded the customer expectations Tags: Java, J2EE, Spring, ElasticSearch, Hibernate, MySQL, RabbitMQ, AngularJS, NodeJS, Ionic, AWS, S3, DynamoDB