Provided services
Client
A company that organizes large events and wants to develop an automated system for managing all its business processes.
Product
An ERP system for managing all aspects of event organization, including functionalities related to maintaining the client base, ticket sales, visitor feedback, and newsletters about upcoming events.
Business challenge
The customer wanted the system to be 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.
Technological features
- The frontend part of the platform was implemented on the ReactJS framework.
- A non-trivial architectural solution, the development of which required a high level of knowledge and analytical skill from the programmers.
PROJECT TASKS AND CHALLENGES
To extends the automated ERP system of business processes management for a company that organizes large events
Extension of both server-side and client-side
Item icon Thorough planning and architecture development
SOLUTION STAGES
-
1Engaging an architect with experienced in developing plugin solutions and frameworks Studying the customer’s requirements Developing and approving the product-specific architecture
-
2Preparing documentation for plugin developers Preparing the necessary documentation and transferring it to the developers
-
3Plugin implementation Developing plugins with a specific user interaction channel (Viber, Telegram)
-
4Product quality assurance Application of best practices of automated testing in order to ensure stable operation of the system modules
RESULTS
-
A plugin system with a comples modular architecture, and the possibility of further expansion and upgrading, was implemented
-
The system is stable
-
Best practices of the engineering approach of frontend developers were applied
Approaches and solutions
- Engaging an architect. Initially, it was clear that the task required careful planning and elaboration of the architecture. Therefore, an architect with experience in developing plugin solutions and frameworks was involved in the project. He studied the customer’s requirements and proposed his architecture, which was evaluated for a long time. The team was not in a hurry to program, and worked on the conceptual level.
- Preparing documentation for plugin developers. As soon as the architecture was approved, we started preparing the necessary documentation for plugin developers in parallel with the development. The plugin developers then received the task to implement the solutions.
- Implementing the plugins. Plugins interact using RabbitMQ queues. Each of them can run on either the same or different servers (which may be needed to distribute the load in case of a large number of users). Some plugins were developed by teams with extensive experience in working with a specific user interaction channel (Viber, Telegram).
- Ensuring the product operation quality. Special attention was paid to automated testing: this was necessary to prevent bugs in individual plugins from affecting the work of the entire application. This means that additional modules can be developed over time, while during their creation and testing, other modules will continue to work stably.
Results and achievements
- A plugin system with a modular architecture was implemented. This solution helped to generalize the extension of the user menu, and the addition of new screens and user action handlers at the UI level. Moreover, the simple extension algorithm allows other developers to upgrade the applications as easily as simply installing various plugins on servers, which determines the further behavior of the UI.
- The process of developing plugins by different teams of developers was established, all while maintaining a high level of system stability.
- The engineering approach of our frontend specialists was successfully applied. This made it possible to work with the level of abstraction necessary for the task implementation.
Technologies used
What happens next?