SapientPro and Networktables: being on time was never easier
One of the key skills of a successful person in the XXI century is the ability to bounce between all possible activities a new day can bring. It requires excellent time-management and organizational talents. For some people, it comes naturally to plan everything in advance. For less fortunate, events platforms come to rescue. This article deals with such a platform, to the development of which we were happy to contribute.
How it all began
Summer 2016 was marked by a meeting with the CEO of Networktables BV, a company from Amsterdam which specializes in events automatization. With the help of their platform, it is convenient to organize meetings, conferences, public events, sign up for any events or follow public events and be aware of what is happening nearby. Let’s take a deeper dive into how they manage to do that and what other benefits the company can bring to its customers.
Platform customers get access to the admin panel, which enables them to create events, sessions, add guests, moderate content and conduct mailing. For the guests, a micro portal is created where they can see event descriptions, schedule sessions, register for events, ask questions about meetings, while lecturers can invite people to the events they hold.
At that moment, we were given the task to strengthen the development team, as the rapid growth of the platform and a large number of customers led to a constant need of work optimization, integration of external systems and customizations in relation to each customer.
What is the technical background of the platform? The system is quite complex and consists of several microservices, such as
- the core of the system (database, main business logic and API for communication);
- an admin panel, accessible only to administrators, which communicates with the core via API;
- a client part is publicly accessible, with the possibility of authorizing guests, which communicates with the core via ARI;
- a mailing list mode to which the core is addressed;
- an external systems integration module (EventBrite, Pathable, Halito);
- a logic module for event management;
- CDN with shared libraries and other resources.
This structure allows its users to balance the load on the system and update the code in parts to ensure better stability.
As time went by, we undertook the whole platform development and modernization process. Our main responsibilities included optimization and acceleration of existing parts, further development of new modules, an increase of the system’s endurance in relation to the number of users and conducting exclusive customizations at the request of events organizers.
DescriptionLet’s explore the users’ options which the platform can provide. An event organizer can create events, import event calendars, sessions, lectures or users. The users can attend sessions/meetings as well as be their moderators or presenters. All involved individuals can log in the microportal and see information, guests, their own plans and manage their schedule. The system offers three types of sessions: meetings (users sit at the table along with the host, there is a seating arrangement) — suitable for celebrations, club meetings and board games. workshop (users sign up for events, there is no seating arrangement) — suitable for lectures, conferences, etc. face-to-face meetings (a special algorithm mixes users in such a way that everyone can hold a short meeting with the chosen person) — perfect for start-up meetings, investors meetings, signing books by the authors, speed-dating. The users also receive automated emails with alerts and event options, as well as schedules and possible suggestions for the day.
On the roadThe growth of events scale. If at first, the average number of users of the event ranged from a few hundreds to a few thousands of users, later on, more and more events covering more than fifty thousand visitors began to appear. This led to problems with excessive memory use and data generation speed in many parts of the system that worked with the lists. To overcome these problems, it was necessary to conduct a global code refactoring in order to process the data in portions. This allowed the system to become much more flexible and withstand hundreds of thousands of registered users at the same time. GDPR. Apparently, there is no need to explain how this data processing regulation hit the entire European IT-cluster. Software products had to change approaches to the whole organization of data storage and data collection in a very short period of time. To cut it short, for each new action requiring the provision of private data, user permission was needed, as well as providing the users with the possibility of destroying their data or anonymizing them. To do this, a micro-modifier has been developed, which stores a user consent for data processing, a channel management system for alerts and scripts which can anonymize the user data upon request. It is beneficial for a user as it allows him/her to stop appearing in the system as well being effective for the event administrator allowing to keep the usage statistics. Performing service of American and intercontinental events. At the very start, the platform was targeted only at Europe. However, with a course of time, more and more events started to be held in the United States, East Asia, and eventually, there were events involving people from all over the world who could participate simultaneously. This caused challenges with events processing in different time zones and converting time to completely different time zones. For instance, a user in the U.S.A. should see an event created in Europe in his/her local time. There were also problems with time standards, because in some places it is common to use a 12-hour time format, and in others, it is the 24-hour format, as well as there are different formats for writing dates. That’s why the system was developed in a way that it flexibly defined the visitor's location standards and time zone and displayed them in the appropriate format. Besides, all received data were normalized to a single standard.