Back to projects

OptIt triangle setk

JS
The project was designed for a private company, which is an SMS-marketing provider.
programmer-software-developer-2022-08-01-03-18-47-utc (1)

Problem

The project was designed for a private company, which is an SMS-marketing provider. Their know-how allows a company of any size to conduct promotional campaigns and realize marketing strategies.

The offered solution is an entertaining/advertising web platform, which allows viewers to subscribe to the news presented in various categories. In turn, a company can perform targeting and orchestrate more effective advertising campaigns, delivering the localized mobile content to the subscribers via text messaging.

The solution had strict criteria in terms of performance and reliability. SMS-marketing is a paid-for service, so message delivery must be entirely guaranteed. Especially when the overall number of subscribers can exceed 100,000 people.

The newly developed solution was a replacement for an earlier one, which was deemed to be outdated in terms of efficiency and performance stability due to the explosive growth of the client base.

Solution

The offered solution is composed of a few separate web applications. They are integrated with the help of REST service and RMI, while also employing a single database and shared central components.

The principal motive for breaking up the mentioned solution into a number of independent modules is about their allocation among different hardware elements. This know-how provides a higher scalability of the solution, while also guaranteeing that the intensive workload won’t negatively affect performance of the application’s subsystems or hinder user experience. (A big SMS campaign queue processing with 100,000 subscribers is an example of such workload).

  • Optit core is a set of general components used by other web applications including user authentication, general business logic guidelines, servlets, error processing, SMS delivery function, efficacy of incoming message processing, message dispatch queue, and so on.
  • Picture storage is a non-visual component, which is used along with other Optit modules for storing images and allowing quick and smooth access to them.
  • Provider is a web application with a user interface, which enables companies and their employees creating advertising campaigns, registering with a system, creating keywords and interests related to the news, which can generate more subscriptions and, therefore, provide data related to the viewers’ interests.
  • Communities are a web application with a rich user interface, where visitors can complete registration, enjoy customization, select interests and preferences, subscribe to the news, create and manage their own networks, upload photos, etc.
  • ‘Sieve’ is a web application developed for the platform’s moderators. It has a concise and simple user interface, as well as powerful features for filtering out obscenities, inappropriate images and also for moderating content. At the development phase, the main goal was to make this app as simple and quick as possible to provide moderators with a flexible and powerful content-moderation tool. Among all else, it includes search function, filtration, batch processing, data importing/exporting, etc.
  • ‘Mobile applications’ are a web application that allows the end users registering with the Optit system and subscribing to the news according to their interests: a) from their mobile gadgets b) from a widget-like web interface c) or with an SMS sent to a specific phone number.
  • API is an application devoid of a user interface, which allows integration of the third-party apps with the Optit ecosystem. In turn, it enables users to use its features and available services automatically, without having to visit the user web interface all the time. Besides, it helps Optit to fulfil some of its own needs: processing SMS delivery notifications, incoming requests from external applications used by Optit, etc.
  • SMS delivery is performed with reliable and failproof message queues with a smart error processing system — they provide guaranteed message deliveries. Each SMS delivery attempt is accompanied by a result check. If for some reason the attempt fails — network issues, insufficientphone signal — a message-to-be-delivered ‘returns’ to the queue. A message won’t reach its destination if only the subscriber’s phone number is blocked or deactivated by the mobile network provider.

A cost-efficient outsourcing team of IT-experts with a vast experience in web/server/Java technologies managed to analyze architectural shortcomings, design flaws and performance-related bottlenecks of an earlier system. As a result, they created a well-structured, reliable and scalable solution supported by a set of more powerful libraries and technologies, reducing time necessary for implementing a next-gen software solution for the client’s needs.

The developed solution provides a maximum user convenience, as well as a guaranteed SMS delivery. It can dispatch more than 80 million messages monthly with a leeway for scaling in case the client database will grow even bigger in the future. An intensive SMS flow can be easily maintained with a relatively minimal effort.

lendoit

Process

Each application has a multi-level architecture, which includes a number of layers.

  • The interface layer serves for providing a user interface, while API was created for integration with the third-party apps.
  • Business logic layer controls the app’s logic, user authentication, access distribution, message processing queues, exceptions processing, etc. Plus it’s responsible for SMS campaigns.
  • Integration layer serves for implementing the inner integration among applications with REST services and RMI.
  • Data access level isolates the data (from the database) from the business logic.
  • The database is used for storing the application’s data.

Tech Stack