Strava Roster
Going for a ride or run is always more fun when you have company. A study even validated the idea that having active friends can spur you to be more active yourself. I built the Roster to allow any Strava athlete to visualize who they work out with the most.
After authenticating the user, the athlete’s workout history is retrieved, along with the activities of the athletes they were “matched” with. The total number of unique Strava athletes that the user has matched with is shown, along with a bar chart summarizing whether they tend to work out alone or with another person. The user’s Top Training Partners, broken down by sport type, are also shown. This view can then be shared via a link. Next, the user can explore their full workout history, organized by who they were with:
Toggles allow filtering by year and sport and the d3 tree layout is used to group your workouts together with the athlete you were with. After expanding an athlete node, the timeline bar chart highlights the activities in which you were paired with that athlete. Hovering on an activity shows other athletes that also participated.
The backend is hosted in a Scala Play app that allows access to Strava databases, using MySql queries and the Slick library. The app is hosted using our Mesos/Marathon/Docker ecosystem which allowed for rapid deployment and iteration. The frontend is deployed on Strava Labs and makes liberal use of various d3 libraries. Check it out on https://labs.strava.com/roster.