spark-it solutionsspark-it
Otorafit
Mobile

Otorafit

Gamified fitness app - claim real-world territories, earn points, stay active.

Objective

The Goal

Build a cross-platform mobile app where users claim real-world GPS territories to earn points. Phase 1: auth, territory claiming, points engine, community feed.

Challenge

The Problem

Accurate GPS territory detection with Turf.js, battery-efficient background location tracking, preventing GPS spoofing, and rendering real-time map updates smoothly across iOS and Android.

Solution

How We Solved It

React Native + Expo for cross-platform, Google Maps for territory visualisation, Turf.js for point-in-polygon and area calculations, Node.js/MongoDB backend for points and community management.

What We Built

Key Features

Territory Claiming

Claim predefined or custom-drawn territories using GPS coordinates and earn points.

Real-Time GPS Tracking

Battery-optimised background tracking detects territory entry automatically.

Geospatial Engine

Turf.js powers point-in-polygon detection, area validation, and boundary logic.

Google Maps Integration

Live map showing territories, claimed areas, and user position.

Points System

Points awarded by territory size and difficulty, with achievement milestones.

Community Feed

Admin-managed posts keeping users engaged between sessions.

In Action

Screens

Interactive map showing territories and user location and territory points.

Interactive map showing territories and user location and territory points.

Community feed with admin posts.

Community feed with admin posts.

User profile Creation steps.

User profile Creation steps.

Outcome

Results

Phase 1 CompletePhase
Within 10–20mGPS Accuracy
iOS & AndroidPlatforms
Predefined & CustomTerritory Types

Lessons Learned

Geolocation is harder than it looks - GPS drift, battery drain, and OS-level permission handling across iOS and Android required significant iteration. Turf.js saved us considerable time on spatial calculations.

Built With

Tech Stack

mobile
React NativeExpo SDKReact NavigationExpo Location APIAsyncStorage
frontend
Mapbox MapsTurf.jsContext API
backend
Node.jsGoogle Cloud FunctionsFirebasePush Notifications
infrastructure
Expo Application Services