We have been the International Tomsk Marathon’s partner since 2018. We had made a basic website for their first event and then took up several different tasks one of which consisted in Marathon EXPO System development.  

Traditionally, EXPO is the system for participants to any running events to register and get their bib numbers and runner’s kits.

A regular procedure for that is as follows. A pre-registered race participant arrives at a designated place where he or she is identified by a personal ID and picks up:

  • a bib number and a time chip
  • a marathon T-shirt
  • a runner's kit that may include a bag for the above with some promo materials or flyers/codes etc.

Some competitive long-distance races may also require a medical certificate for admission to a particular distance. Such certificates are to be verified by a physician present at the EXPO.

Runner’s kit content, at a larger marathon, depends on selected distance and cost of the slot (ticket to the marathon).

Marathon EXPO organization

Marathon organizers normally define EXPO procedure to determine:

  • the number of days of EXPO operation and EXPO procedure for event participants;
  • instructions, checklists for volunteers helping at the EXPO.

They also maintain volunteers’ engagement campaigns, assign and distribute volunteers’ roles and train them on how to follow particular EXPO procedures; Numerous smaller marathon EXPOs use manual data collection and paper records: a participant gets a check list to fill as her or she proceeds through the EXPO and picks up a bib and a running kit etc. and EXPO volunteers have their own record sheets (computer files at the best) to log the issues of the above.

Such method is quite time consuming and is connected with serious costs of volunteers’ engagement and their training. The more race participants you get, the more volunteers you need to find and train. Large amount of data increases the risk of human error, especially when EXPO lasts for a few days.

Late registration — when a participant takes a last-moment decision to buy a slot — is a separate issue that EXPO organizers have to solve.

Late registration processing requires:

  • Entering of new race participants details into a general list, a respective Start List, and handing over of both updated lists to marathon referees; entering of new participants 'details into electronic timing system. Besides, a volunteer may make a mistake, for example, misspell a participant's name which create delays in Start List and race results processing.
  • Maintaining a real-time inventory (of remaining slots, bib numbers, time chips, T-shirt and other) for different distances to avoid over sales.

Most of local marathons are choosing "paper EXPO" just because having a custom EXPO platform would be a rather expensive step up that only majors and large sportive events can afford. Purchase of a package platform, even if available, would also mean high integration costs.

EXPO for Tomsk Marathon 2018

First Tomsk Marathon EXPO was a "paper" one. Volunteers were distributed EXPO record sheets where they were to manually register issue of bibs, time chips and kits to every participant. Of course, it was slow taking even longer time for those who appeared towards the end of the EXPO. Next, there were errors. And, finally, it was hard to maintain the real time inventory (T-shirts of desired size, bibs issued etc.) when everything is done manually on paper.

Let's compare the number of Tomsk Marathon Participants in 2018 and 2019:

Tomsk Marathon 2018

Of 2,098 registered participants:  468 registered for full marathon, 1,034 — for half marathon and 596 — for 5 km race. Another 460 applications were for the Kid's Race.  

Participants at the start: 1,680 adult runners, 400 kids.  Four distances: full marathon, half marathon, five km race, 1 km race.

EXPO continued for 2 days.

Tomsk Marathon 2019

Of 4,139 registered participants:  598 registered for the full marathon, 1,679 — for the half marathon and 1,038 for 5 km race. Another 824 applications were accepted for the Kid's Race.

Participants at the start: 2,855 adult runners, 570 kids.

Eight distances were offered that year: full marathon, relay marathon, half marathon, relay half marathon, Nordic Walking half marathon & relay half marathon, 5 km and 1 km races.

EXPO continued for 2 days.

Tasks set for EXPO 2019

Tomsk Marathon organizers expected to see more participants registered for 2019 event with more different distances and they wanted to:

  • optimize EXPO's processes and make them more comfortable for the participants;
  • maintain inventory and to have an option to sell remaining slots immediately at the EXPO;
  • reduce EXPO costs to the minimum.

EXPO platform for sports events

Design and implementation

We started with analysis of other sports event of Tomsk Marathon Organizers and found out that their EXPO procedures may vary depending on type of event. For example, New Year's 3 km LoveRun was free with all ages accepted, no medical certificate was required and no T-shirts or runner's kits were issued.

Meanwhile the major event — Tomsk Marathon — offers a variety of races a runner can be admitted to on different conditions.

Our solution was to create a multi-purpose "set of building blocks" for EXPO procedures to provide race organizer with a tool to set up and adjust EXPO processes before the event and in the course of it.

We have defined requirements to the new system as follows:

  • flexibility of system setting to meet each particular event objectives;
  • unlimited number of races with different EXPO procedures;
  • system flexibility so the organizers can make changes in the time of EXPO;
  • ease of use for event participants;
  • system simplicity for organizers;
  • use of a very common hardware.

We realized that development of a mobile application would not be sufficient as such solution would create some limitations for event organizers and participants and also would mean more development labor and higher cost. It's often hard to estimate the time required for a mobile application modification so prompt fixing of a bug detected on use of it is just not feasible.

EXPO elements

We have singled out a few large building blocks of any EXPO, including:

Team roles — roles at the EXPO, for example, "Volunteer" or "Physician".

Functions — a list of participant's actions (EXPO procedure steps).

Team Members — a reference list of team members admitted to EXPO with indication of their roles.

Instructions — a set of functions for each distance. 

Here are some examples:

a) Non-competitive 5 km race. Each participant visiting the EXPO produces his or her ID and then receives their bib number, time chip, T-shirt, bracelet and runner's kit.

b) Half Marathon, 21 km. A participant produces his or her ID and a medical certificate. Medical certificate should be checked before issue of a participant's bib/time chip and a bracelet that will work as a pass to their respective Start Zone. A T-shirt and a 21 km runner's kit are issued even if a person's medical certificate fails the check.

Workplaces — functions grouped by physical places of Team Members' operation. A Volunteer, for example, performs two Functions at one Workplace: "Bib Number Issue" and "Bracelet Issue".

Workplaces are created coming from an average rate of Volunteer's operation and potential workload.

All these building blocks are interconnected and can be set up in EXPO Management System by System Administrator.

EXPO Management System

System Administrator is the one who actually builds EXPO system of available building blocks. Another task of System Administrator consists in input of Volunteer's details and their roles distribution. Administrator sets up Functions and Instructions, in other words — all relations and dependencies for each particular event.

Important! System Administrator can reconfigure the system to eliminate possible bottle necks at the time of EXPO itself. Some new Functions and Roles can be added, for example, or Team Members can be relocated to other Workplaces, New Team Members can be added.

EXPO Team Member Account

Our solution implies using of tablets and mobile phones for Team Members to perform their respective roles and functions. Participant authentication is by a QR code generated upon processing of online registration. A very simple and friendly interface is developed for Volunteers to find a participant in the system database by a QR code or participant's name and open his or her details page that also contains an instruction for the participants (with his or her EXPO procedure progress indicated) and the things that Volunteers can do for such participant at their Workplace.

Personal Account of an event participant

Twelve hours before EXPO opening (the time can be set on EXPO system building) QR codes and EXPO instructions become visible in Personal Accounts of all event participants. The instructions and the QR code can be downloaded to a mobile phone in pdf or printed if desired.

A personal ID (passport) is still required to be shown once at arrival to the EXPO. Participant identification at all other steps is by the QR code that gave access to the EXPO.

Technology and hardware

  • Operating system: FreeBSD
  • Coding: HTML, CSS, LESS, БЭМ
  • Frontend: JavaScript, jQuery
  • Version control systems: Git
  • Programming languages: PHP
  • Data Base: MySQL
  • Website content management system Adx CMS
  • Dedicated server
  • 7-inch tables

No special software or internet connection required for system operation Local wi-fi network for tablets operation is the only requirement.

Electronic EXPO implementation for Tomsk Marathon

Main parts of the system were ready by June 5, and we were still adjusting and writing instructions on June 6.

Team Members' Training

On June 7, we had time to train Physicians and Volunteers, an hour before the EXPO. Such a quick training is only possible with very simple interface and clear simple instructions.

Tomsk Marathon had 18 people working with participants immediately, 2 Volunteer service managers and 3 Information Center desk men.

Volunteers were issued their tablets, they logged in to the system and were ready for work.

A Plan B was prepared for the Organizes that they could use in case of system failure.

Slava Krampez, Company СЕО is training an Information Center worker:

Electronic EXPO

Tomsk Marathon Expo continued for two days — June 7 and 8.

On June 7, we had 1,500 participants and everything went smoothly.

It would take a participant 5–6 minutes in average to go through the entire EXPO procedure, with 1–2 minutes spent per step. A passport or other ID would have to be produced once, at EXPO entrance for participant identification. It would be a bit slower for those who had missed the instruction on the website and didn't have their QR code downloaded from their personal accounts. Such participants would have their QR codes printed at the Information Center.

On June 8, 10pm, some participants chose to purchase their slots immediately at EXPO. Issue of runner's kits and slot sales continued until closure of the EXPO.

Security and DDoS attack

Most of Tomsk Marathon participants chose to register on the second day of the EXPO. And that's when we faced a DDoS attack that started 3 pm and that we managed to stop by 4:30. So we had a 1,5-hour interruption in system operation.

A lesson learned. We took the measures so that it doesn’t happen again. We now have Electronic EXPO set up to be separated from the Internet, with a local copy of the server used at the EXPO and periodically synchronized with the main system.


Electronic Marathon EXPO is a solution that was implemented within a very limited time and with exceptional quality.

Design and development of the system took two months of a very intensive work as Requirements Specifications would change (we got the latest change request 18 days before the event, with system start and testing scheduled on June 5). The system is flexible and multi-purpose and can be used for any sports event that require implementation of processes similar to marathon EXPO procedure.

Customer advice:

  • order the organization of the Expo (with an already created scheme) — at least 1 month before the event
  • order the organization of the Expo «from scratch» — preferably 6 months before the event