CityStrides started with me (James Chevalier) wondering if I could run every street in my city. I had a way to track my running, but I didn't have a way to figure out which streets I had run. That's where OpenStreetMap came in. I could gather the streets for my city from there, and then compare that data to my running data.
I'm a Rails developer, so it wasn't very difficult for me to add the ability for others to jump in on the game. The real difficulty is in expanding the city data from just the city I live in out into the entire world. That's the goal, anyway: the entire world running their city.
On August 29th, the creator of CityStrides was a guest on the Ruby on Rails Podcast.
He spoke with the show's host, Sean Devine, about how the site started & a lot of the technical aspects of how it works.
If you're interested in hearing more about how CityStrides works, listen to episode #165 of the Ruby on Rails Podcast.
All cities (including their streets) are created from OpenStreetMap data.
OpenStreetMap hasn't been used to this level of detail before. Most of the organization of its data only goes down to the State/Province level. This makes it difficult to collect just the streets within a city's borders, especially since some cities don't even have their borders present within OpenStreetMap.
Along the way, CityStrides has been generating a lot of city-level data that wasn't previously available. All of the polygon files that have been generated for CityStrides are available for free in this github repository. You can use these polygon files to extract cities from an OSM file for your own projects, or you can Contact Me for access to generated OSM files.
If your city is missing, please add it to the list of requested cities.
All new users default to completely private accounts. CityStrides users can change their privacy settings during the signup process or at any time in the Settings page. There are privacy settings both for the Activities themselves as well as the location data (maps, completed/progressed streets, running cities, and the leaderboard). The options for each of these are 'Everyone' (completely public), 'Just Me' (completely private), and 'Per Activity' (individually set on each Activity).
CityStrides collects all of the 'Running' type activities that are in your MapMyFitness/RunKeeper/Strava account. All of this data is stored in the CityStrides database. If your CityStrides user account is deleted (by revoking access from within your run tracking service), then all of your activities (and the data associated with your activities) is deleted as well.
All of the polygon files that have been generated for CityStrides are available for free in this github repository. You can use these polygon files to extract cities from an OSM file for your own projects, or you can Contact Me for access to generated OSM files.
CityStrides keeps track of your shoes by associating each of your activities to a pair of shoes. You can set a default pair of shoes, too, and all activities will automatically be associated with that pair of shoes. CityStrides shows you how many miles you've put on your shoes & how much your shoes cost per mile.
Some activity pages include weather information from the day of that activity. That information is gathered from Dark Sky by sending it the start time & the location of the activity. CityStrides saves that day's weather alongside your activity.