Cognix Systems has had a ticketing service for a few years and organisers had to use a barcode scanner linked to a computer to validate tickets during events.
Since this wasn't the most practical nor competitive way to accomplish this task, it was decided to build a mobile app to replace the software.
The app had to :
- be easy to use
- be responsive
- work even if connection was lost for a few moments
- be build for ios and android
Having no native developer in the company, Ionic was chosen to build mobile apps.
This is where I come into play (with my colleague who build the api).
I wasn't involved in the app design early on but still provided insights and suggestions as development went on.
The two first points are quite mandatory when it comes to any app design and mostly appeal to good UX and always having performances in mind while making decisions about development.
For some applications it might not be relevant to keep every functionnalities when connection is lost but here we are talking about validating tickets to let people in and out of an event. If the one scanning tickets was stuck when he lost internet it would make them lose a lot of time and would not be a positive experience for themselves or attendees.
It meant I had to handle datas locally to provide the same experience whether the user was connected to internent or not.
It included tasks as :
- stocking datas locally
- checking tickets status locally
- updating tickets status locally
- preparing datas to be sent when / if connection was up
- updating datas regurlarly when / if connection was up
Since several devices can be used to control one area it means there is a possibility to have one ticket being scanned by several devices at the same time.
That is a margin of error chosen to manage efficiently the flows of attendees.

