Ticket Scanning App: Phase 2

December 05, 2018

The Need

During Softjourn’s phase 1 engagement with Ticketmaster, the team successfully developed the ticket scanning app. This success was instrumental in Ticketmaster Worldwide asking Softjourn to take on the second phase for using Xamarin to develop an offline scanning mode.
This mode enables ticket scanning when Internet connectivity is lost and storing scanned ticket data in the device’s local memory. When connectivity is restored, the data is sent to the server, which updates the database.

Ticketmaster’s concern was that if Internet connectivity goes down, database access is lost, even if only for a few minutes. To enable ticket takers to continue scanning tickets, event attendees to be admitted and event organizers to not have to hold things up while waiting until connectivity returns, offline mode is crucial.
The first task was to prove that Xamarin could handle developing offline mode. The Softjourn / Ticketmaster team established an offline mode flow, architecture, and functionality, comparing them to an older version of the software scanning solution.  The goal was to automate the solution so that it would scan tickets online or offline without requiring user intervention and would allow users to immediately see the mode in which the device was operating. 
Furthermore, the app would need to work the same way across all supported iOS and Android OS versions. The solution required the same API that was already being used for online scanning, but the offline mode architecture needed to be determined before code could be written or testing conducted.

The Solution

The offline ticket scanning solution developed consists of three high-level components:

  • Pipeline Manager: Manager runs the pipeline and through its configuration, determines which pipeline components to execute, in which order. It decides which of the executed components provides the best result and coordinates with the local token event queue.
  • Pipeline components: These self-contained modules have their own local storage, network access, and state. They’re pluggable, based on the scanning device’s configuration.
  • Local token event queue: On a confirmed local scan, the generated token event is sent to a local queue via the Pipeline Manager. The pipeline component can then consume it immediately or hand it off to a queue for later processing. Action can then be take on the token event, such as replaying scans to Ticketmaster’s check-in via online authentication when connectivity returns.

Core to the offline solution is the processing pipeline that executes a sequence of modules to attempt a scan. Modules run according to the mode available to the application at the time of the scan—online, offline or emergency. Pipeline Manager is responsible for running scans through the sequence and recording the results of scans in which offline mode is used. Once the application regains Internet access, scans are played back to the back end.
We chose Realm as the local database because it allows quick search and updates of the ticket base on the device. Additionally, it features built-in encryption.

Penetration Testing

Along with developing an offline mode solution for Ticketmaster, there was a need to ensure that the app wasn’t vulnerable to hackers and make sure the data—everything from access to the event, venue, and entrance settings—was safely stored.  A third-party firm was hired to conduct penetration testing and offer recommendations for any fixes needed. The feature set that secures the app and the data will resubmit it for was also implemented.
The initial offline project took three months and is being beta tested by Ticketmaster for a large event in Denmark in June where 60-70 different devices will be scanning and the offline functionality must work if there is any loss of Internet access.

Partnership & Recognition

Top 100
Microsoft Gold Partner
Inc 5000

Want to Know More?

Fill out your contact information so we can call you

Valid name is required.
Please enter a valid email address for shipping updates.
Valid name is required.
Please enter country.