Back to Main
Learn System Design
In a Hurry
Core Concepts
Key Technologies
Patterns
Advanced Topics
Get Premium
Common Problems
Design a Fitness Tracking App Like Strava
Understanding the Problem
While Strava supports a wide variety of activities, we'll focus on running and cycling for this question.
Functional Requirements
Core Requirements
- Users should be able to start, pause, stop, and save their runs and rides.
- While running or cycling, users should be able to view activity data, including route, distance, and time.
- Users should be able to view details about their own completed activities as well as the activities of their friends.
Below the Line (Out of Scope)
- Adding or deleting friends (friend management).
- Authentication and authorization.
- Commenting or liking runs.
Non-Functional Requirements
Core Requirements
- The system should be highly available (availability >> consistency).
- The app should function in remote areas without network connectivity.
- The app should provide the athlete with accurate and up-to-date local statistics during the run/ride.
- The system should scale to support 10 million concurrent activities.