Modular Platform based on Behavioral Targeting Designed to Attract People to Events

checklist
  • Duration: 2 years
  • Industries: Marketing, Advertising, Sales; Media & Entertainment; Ticketing
  • Services: Product Development; Backend Development; Frontend Development; Manual Testing Services; Project Management; CI/CD Implementation & Modernization. DevOps Services
  • Software Categories and Types: B2C Solutions
  • IT Architecture Paradigms and Approaches: Test Driven Development (TDD); Plugins Architecture and Development; Object-Oriented Programming (OOP)
  • Technical Expertise: Java Server Side Development; Web Development; Expandable Software Solutions (Plugin Systems)
  • DevOps Expertise: Advanced build organization; CI/CD Basics
  • Technologies: IntelliJ IDEA; phpMyAdmin; Data Bases; JUnit / TestNG; RabbitMQ; Project Management, Collaboration and Bug Tracking; Docker; Jira; Git; CI/CD Automation Servers; Apache Maven; Jenkins; Apache Tomcat; MySQL; Java; Java Enterprise Edition (EE); Frontend; ReactJS; Backend; JavaScript; JavaScript Frameworks; IDE; Build and Dependency Platforms and Tools; JavaScript Libraries; Containers and DevOps Tools; Spring; Mockito; Gerrit; EasyMock; Test Automation; Source Code Management (SCM); CI/CD and DevOps; Message Queues and Service Buses; Software Engineering and Management Tools; JavaMail API; Web and J2EE Servers, Java Runtimes; log4js
project-team
  • Team size (12):
  • 1 Project Manager
  • 2 QA Manual
  • 4 Frontend
  • 5 Backend

Provided services

Product Development, Backend Development, Frontend Development, Manual Testing Services, Project Management, CI/CD Implementation & Modernization. DevOps Services

Client

A company that organizes large events and wanted to develop an automated system for managing all its business processes.

Product

An ERP system serves as an advertising platform for various events, the organizers of which are interested in attracting the target audience.

The main task of the system is to notify users about upcoming cultural events (concerts, theatrical performances, etc.) taking into account their interests, chosen location and preferred method of communication.

How the product works?

The base of contact data for notification is created based on visitor surveys held on the days of events. Visitors who want to keep updated later can leave their data to the volunteers (the city in which they would like to know about the events, events of interest, topics and musical genres, as well as a convenient way of communication for notification: SMS, e-mail, Viber, Telegram).

After collecting information, the volunteer enters the user into the general database. After that, depending on the selected criteria, the contact is included into a specific group. It provides additional flexibility when sending notifications. Visitors interested in a particular event are selected based on the tags and event location. For example, the contact person mentioned in the questionnaire that he or she lives in New York city, listens to rock music and is a frequent theatre-goer. When an event that matches his or her interests and location is registered in the system, the contact person is included into a group that the organizer can choose as a target one. So, the system makes it possible to notify only interested users about the event.

Product features

  • The system has a user-friendly web interface and functionality for several roles: volunteers, organizers and the administrator.
  • The role of volunteers is to directly collect information about new visitors and enter it in the system base.
  • The organizer is engaged in creating new events, setting up notification mailings. Notification setting up allows choosing preferred communication methods, creating a message template, etc.
  • The system provides the possibility to dynamically track detailed mailout information: progress, number of unsuccessful mailings, addresses of unsuccessful mailings, reasons for failures when sending notifications. In addition, the organizer can manage financial resources required for sending notifications (balance replenishment, funds distribution).
  • The administrator has full access to the system, can add accounts for new event organizers.
  • The potential of the service is not limited by anything: you can create any events, inform users in any existing way. There is a promising opportunity to integrate the largest ticket sales platforms or build your own payment system.

Challenge

Our company developed the project from scratch. Along with other technological challenges, one of the main challenges was architectural. The focus was on making the application extensible on the server side and the client side. This required the implementation of an end-to-end plugin system, which involved the extension of both the server side and the client side.

Despite the fact that the customer had serious plans for system expandability, at the same time it had to be used from the first days in production and, accordingly, be stable. Therefore, from the very beginning it was necessary to implement CI/CD and automated testing.

JazzTeam Challenge

Our team worked in conditions of short development time and dynamically changing requirements.

Similar projects

Solution

Initially, it was clear that the task of ensuring system extensibility required careful planning and design of the architecture. Therefore, an architect with experience in developing plug-in solutions and frameworks was involved in the project. He studied the customer’s requirements and proposed his own architecture, which was evaluated for a long time. The team was in no rush to code, but rather worked on a conceptual level.

As soon as the architecture was approved, in parallel with development, we began to prepare the necessary documentation for plugin developers. The plugin developers were then tasked with implementing the solutions.

Plugins communicate using RabbitMQ queues. Each of them can run on the same or on different servers (which may be necessary to distribute the load in the case of a large number of users). Some plugins are developed by teams with extensive experience working with a specific user interaction channel (Viber, Telegram).

Technological Overview

Backend part built on the basis of Java REST API services (Spring MVC). The project also uses JavaMail API, RabbitMQ, Jenkins, Docker. Java developers used JUnit + Mockito to write tests.

The frontend part of the application was implemented on the popular ReactJs framework.

Result

The system was prepared on time from scratch, is currently being deployed on production servers and is used to organize events. To ensure application stability, continuous integration and delivery, as well as automated testing, have been successfully implemented.

To ensure software extensibility, a system of plugins with a modular architecture was developed. This solution helped to generalize the user menu expansion, as well as add new screens and user action handlers at the user interface level. Moreover, the simple extension algorithm allows other developers to update applications as easily as simply installing various plugins on the servers, which determines the subsequent behavior of the user interface. The plugin development process is streamlined and carried out by different development teams, while maintaining a high level of system stability.

An algorithm has also been implemented that allows you to choose the optimal way to notify the user and get the maximum response. In order to scale horizontally and expand communication methods, each notification channel is implemented as a separate, independent module. Thus, over time, additional notification modules can be developed, while in the process of their creation and testing, other modules will continue to work stably. All modules communicate using RabbitMQ queues. A module has been implemented designed to inform users via email, SMS and VK. All modules can run on the same or on different servers (which may be necessary to distribute the load in the case of many users). In addition, a system has been created for selecting personalized events for each user.

The use of the system had a positive impact on the number of participants’ activities and their involvement.

JazzTeam Achievement

  • Quick dive into the subject area and technical details of the project in a very short time.
  • A wide stack of frameworks and technologies was applied.
  • Successful work under the conditions of dynamically changing requirements.

Screenshots

Technologies

Stack: Java, JavaMail API, Spring, Apache Maven, Apache Tomcat.

Frontend: JavaScript, ReactJS.

Infrastructure: Jenkins, Docker, Git/Gerrit, IntelliJ IDEA, Jira.

Message broker: RabbitMQ.

Test Automation libraries: JUnit + Mockito.

DB: MySQL.

Clients about cooperation with JazzTeam

Related projects

Recent Work

    Contact Us

    What happens next?
    • 1

      Leave your project request. We will contact you and schedule a call.

    • 2

      Signing of the NDA to ensure the project info confidentiality.

    • 3

      Negotiation of your request and the required services.

    • 4

      Team forming, coordination of workstages.

    • 5

      Contract signing and project start.