ABCloudz team decided to proceed with the iCleanse Swift UV web project using .Net Core with SignalR for realtime communication and hosted on AWS. The .NET Core backend leverages Amazon RDS for PostgreSQL database for housing customer data, while Amazon S3 stores video content.
The advertisement display system was written in Java and uses Java SDK, which serves as a connecting layer between the client’s Android app and REST API backend. This SDK eliminates a need to perform low-level tasks such as HTTP communication with server. It allows the client to operate with each tablet as single object, encapsulating routine tasks and ad displays schedules while maintaining a high level of object abstraction and data serialization. Angular administration portal helps administrators to manage their organization and associated devices. It also protects the system from potential malicious attacks and cyber threats.
Stationary tablets mounted on disinfection devices synchronize with the Admin Panel settings and play the set of videos defined for each particular device or device group. Advertisements are showed randomly with the frequency set for each ad campaign.
iCleanse administrators can gain access statistics for each device or an aggregated overview. The data includes the number of advertisement displays and the percentages of increased or decreased advertisement displays compared to the previous day, week, or month. In order to streamline the storage of ad display records, the development team integrated a clever approach to the application’s at the business logic level. At the beginning of the next day, week, or month, the records from the previous period (day, week, month) are consolidated and recorded as a single entry in the statistics. Thanks to this optimization, our clients experience reduced server loads and benefit from cost savings on cloud resources.
Our specialists also optimized database performance through the use of unique indexes. These indexes eliminate potential duplication of data in statistical tables that can be caused by two parallely running instances of APIs. As a result, we sped up performance thus reducing the need from maintaining 4 CPUs and 16GB RAM at 80% load to 2 CPUs and 8 GB RAM at approximately 10% load. We also adjusted the number of requests to the server in order to reduce overall load.
Additionally, the iCleanse Swift UV panel allows administrators to manage company’s devices and distribute new application versions via the OTA Manager.
As for the advertising campaign owners, their level of access grants an ability to create and manage advertising campaigns. They are also able to link specific groups of devices to run predetermined sets of images and videos. This functionality provides advertisers control over the type of content that is displayed and provides excellent advertisement customization capabilities.