A social fitness app that turns your walks into territory.
Claim Territory • Challenge Friends • Own Your City
Report Bug
·
Request Feature
Table of Contents
WalkOver is a social fitness application that makes walking competitive and territorial. The core idea is simple: the areas you walk become yours. Every session you complete draws a polygon from your GPS path, claims that region on a shared map, and marks it under your name — visible to all users. Walk somewhere someone else already owns, and ownership transfers to you.
Beyond territory, WalkOver layers in friend challenges, daily goals, XP progression, and multiple walk modes to suit how you want to move on any given day.
WalkOver offers three distinct modes, each serving a different intent:
A personal, distraction-free tracking experience. Your walk is recorded — steps, distance, duration, and route — but nothing is shared. Territory is not claimed and no social data is updated. Useful for casual walks where you just want a log.
A head-to-head challenge between you and a friend. You issue a challenge for either 3 or 7 days. Whoever accumulates more total kilometers by the end wins. Duels are tracked in real-time so both players can see the current standings throughout the challenge window.
The core WalkOver experience. Every walk you complete in this mode traces a polygon from your GPS path and claims that area as your territory on the shared map. Territory is visible to all users. If another user walks through your claimed area in Competitive Mode, ownership is reassigned to them. Holding territory requires you to keep walking it.
WalkOver includes a friend system built around following — referred to in-app as Stalking, a deliberate design choice to keep the tone playful. You can stalk any user to track their activity, compare stats, and challenge them to duels.
Additional social features:
- Global and Friends Leaderboards — ranked by total kilometers and XP
- Daily Challenges — server-generated goals synced across all users at the same level, ensuring everyone competing at a given tier faces identical targets
- XP and Leveling — earned through walks, challenges, and streaks
- Streak System — rewards consistency with milestone bonuses
WalkOver is built on MVVM (Model-View-ViewModel) with Jetpack Compose handling the UI layer. Data flows reactively through Kotlin Coroutines and Flow, keeping the ViewModel and UI decoupled and testable.
The most technically involved part of the project. During a Competitive Mode session, the app continuously captures GPS coordinates as GeoPoints. On session end, these points are used to construct a polygon representing the walked area, which is stored in Firebase Firestore.
The challenge is ownership resolution: when a new polygon is submitted, the system checks whether it intersects with any existing claimed territory. If overlap is detected, ownership of the affected region is reassigned to the new walker. This is a computational geometry problem — polygon intersection on top of a NoSQL database that has no native spatial query support — solved client-side with coordinate-based boundary logic before writing the result back to Firestore.
GPS tracking and step counting run inside a foreground service, keeping the session alive reliably even when the app is backgrounded or the screen is off. This is handled carefully to maintain accuracy without excessive battery drain.
Daily challenges are generated server-side and keyed by user level, ensuring all users at the same tier receive identical goals simultaneously. This prevents any advantage from client-side timing differences and keeps leaderboard competition fair.
Key Technologies:
- Kotlin — Primary development language
- Jetpack Compose — Modern declarative UI toolkit following Material Design 3
- Firebase Auth & Firestore — Authentication and real-time cloud database
- OSMDroid — Open source map rendering and route visualization
- Coroutines & Flow — Asynchronous programming and reactive data streams
- Android Studio — Iguana or newer recommended
- JDK 17 — Required for building the project
- Android Device/Emulator — Running Android 8.0 (API Level 26) or higher
-
Clone the repository
git clone https://github.com/SidhartSami/WalkOver.git
-
Open the project in Android Studio.
-
Sync Gradle files to download dependencies.
-
Configuration:
- This project uses Firebase. Place your own
google-services.jsonfile in theapp/directory. - Configure local properties if necessary for API keys.
- This project uses Firebase. Place your own
-
Build and Run:
- Select your target device and click Run (Shift+F10).
WalkOver is live on the Google Play Store.
Distributed under the MIT License. See LICENSE for more information.
Sidhart Sami — LinkedIn — sidhartsami@gmail.com
Project Link: https://github.com/SidhartSami/WalkOver