Skip to content

SidhartSami/WalkOver

Repository files navigation

Forks Stargazers Issues License LinkedIn


Get it on Google Play

WalkOver

A social fitness app that turns your walks into territory.
Claim Territory • Challenge Friends • Own Your City

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Walk Modes
  3. Social System
  4. Technical Design
  5. Built With
  6. Getting Started
  7. Availability
  8. License
  9. Contact
  10. Acknowledgments

About The Project

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.

(back to top)


Walk Modes

WalkOver offers three distinct modes, each serving a different intent:

Ghost Mode

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.

Duel Mode

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.

Competitive Mode

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.

(back to top)


Social System

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

(back to top)


Technical Design

Architecture

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.

Territory System

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.

Background Tracking

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.

Challenge Consistency

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.

(back to top)


Built With

  • Kotlin
  • Android
  • Firebase
  • Jetpack Compose

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

(back to top)


Getting Started

Prerequisites

  • 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

Installation

  1. Clone the repository

    git clone https://github.com/SidhartSami/WalkOver.git
  2. Open the project in Android Studio.

  3. Sync Gradle files to download dependencies.

  4. Configuration:

    • This project uses Firebase. Place your own google-services.json file in the app/ directory.
    • Configure local properties if necessary for API keys.
  5. Build and Run:

    • Select your target device and click Run (Shift+F10).

(back to top)


Availability

WalkOver is live on the Google Play Store.

Get it on Google Play

(back to top)


License

Distributed under the MIT License. See LICENSE for more information.

(back to top)


Contact

Sidhart SamiLinkedInsidhartsami@gmail.com

Project Link: https://github.com/SidhartSami/WalkOver

(back to top)


Acknowledgments

(back to top)

About

A modern social fitness app combining real-time walk tracking, gamified challenges, and interactive maps. Built with Jetpack Compose & Firebase.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors