A few years ago I made an app that calculates your Eddington Numbers from your Strava activities. If you are unfamiliar with Eddington Numbers, I have done my best at explaining it on the app, but it is admittedly confusing to explain. Wikipedia defines it as “the maximum number E such that the cyclist has cycled at least E miles on at least E days.”
My app calculates the Eddington Number for each Strava activity type. So you can have a Run Eddington Number, a Ride Eddington Number, and so on.
To allow athletes to share their page required a few refactors:
- Previously, the home page of the app was the logged-in athlete’s page. You logged in, you saw your numbers. Sharing that URL with someone else prompted them to log in to see their own numbers. Now each athlete has a unique URL.
- Athlete accounts can now be set to Public or Private. The default is Private. It needs to be Public for someone else to be able to view it.
- The way data was loaded in the request pipeline needed to change to allow for the logged-in athlete to be different from the requested athlete page.
- With additional pages, the app required additional UI. There’s now a minimal navigation bar at the top, with either a link to log in for a non-logged-in user, or links to the logged-in-user’s page and settings.
- An action to toggle Public/Private added to the Settings view.
- Additionally, there's language on the logged-in athlete’s own Numbers page to indicate if their page is public or private.
- BONUS! For browsers that support the Web Share API, a logged-in athlete sees a “Share” button on their own Numbers Page.