WHIP: A Mobile App for Motorbikes
Developing a mobile app for the world of off-road racing. Django, Python, and route matching.
We are excited to congratulate our partners WHIP, who have been selected by Nana Bianca (a startup studio and incubator based in Florence, Italy) for their acceleration program. WHIP’s an Italian startup that had the bright idea to innovate the world of off-road racing, creating the WHIP Live App to analyze data from motocross, enduro and downhill riders.
And it’s really taking off! Being involved in Nana Bianca’s incubator is another sign of their success, and we think it will be a great opportunity for the WHIP team to grow into its next phase.
Evonove supplied WHIP with the app development and the software backend behind the WHIP Live App that fuses raw data from sensors on devices like smartphones, action cameras, smart watches and sport trackers to create pro-level, user-friendly metrics, readable directly on the App.
Developing the Mobile App
Route matching for GPS data.
WHIP came to us with a problem. They needed an algorithm that would allow the app to match slightly different routes of riders. They wanted to create the digital gamification of off-road sports within their app, and this meant that they needed a way to compute and compare matrixes of the riders, so that users could create challenges, fight for a position on leaderboards, and earn badges and prizes.
And here was where we ran into our first big challenge. When two or more riders are on the same segment (a path known to and recognized by the system), their GPS data is very similar, but not exactly the same.
Since this was also one of our first experiences with GPS data, and representing a segment or path in a database, we had to study and research before we actually began the process of developing. First, we had to find a route matching algorithm, or a theory, and finally in March, we found this paper on Practical Polyline Matching for GPS Data, the thesis research of a Phd student, that was an answer to our problems.
We were able to implement the theory practically and, along with our most relied upon stack technologies, Django and Python, were able to satisfy WHIP’s requirements and create a functional backend based on microservices infrastructure.
User friendly mobile app features.
The app analyzes smartphone sensors to create simple data readouts. Riders just need a smartphone with the WHIP LIVE app installed, and the implementation of this technology allows their activity to be split into a neatly mapped timeline. Users get a snapshot of what they did and how to improve their skills. They can invite their friends to challenges, and anyone can create a new shared track to compare their performances and running times in specific leaderboards.
Microservice infrastructure, Python & Django, and creating a functional system.
This project was really the first time our team created a microservice infrastructure on this scale, where we had different modules of software with specific tasks. It was the first time we had to think about data flowing through our services and computing performances and matching paths in real time. Luckily, we are all avid learners and researchers, and together we managed to find this theory that would allow us to match routes, one of the biggest challenges we had to overcome, and create this microservice infrastructure.
This, along with stack technologies Django and Python, allowed us to create a system that could match different routes on similar paths, so that riders could compete head to head, or challenge their own personal best on a given track. All first tests have run smoothly, and now we look forward to WHIP publishing it publicly, so we can see how the app performs in the real world.