VibeWalk is a modern, high-performance React Native mobile application built on Expo SDK 54 paired with an AI Analytics Engine. It tracks daily steps, calories burned, distance covered, active duration, walking cadence, GPS routes, achievement milestones, and 30-day activity trends with a futuristic Electric Cyan & Cyber Violet OLED dark interface, smooth liquid flow UI-thread transitions, audio coaching & cadence soundscapes, and hardware sensor step filtering.
- Outer Progress Ring: Visual step goal arc (
#00F5FFβ#9D00FFβ#FF007A) powered byreact-native-reanimatedspring physics. - Inner Sub-Arc: Sub-metric calorie target track.
- Center Readout: Ultra-bold hero step count, target goal readout (
TARGET 10,000), mini progress bar, and dynamic status tags (β‘ GOAL CRUSHED,π₯ ALMOST THERE).
- Tab Focus Morphing (
LiquidScreenWrapper.tsx): Fluid UI-thread slide, scale, and cross-fade animations on tab switches powered byreact-native-reanimatedand@react-navigation/native. - Staggered Wave Sections (
LiquidSection.tsx): Cards, grids, and timeline elements enter with organic staggered spring physics (FadeInDown.springify().damping(13)) and touch rebound interaction.
- Live Audio Coach (
voiceCoachService.ts): Speech-synthesized text-to-speech updates usingexpo-speechannouncing session start, pause, finish, and per-kilometer split updates ("Kilometer 1 complete. Average pace: 5'32" per kilometer"). - Cadence Soundscapes (
soundscapeService.ts): Ambient audio tracks (Synthwave Pulse,Cyber Rain,Lo-Fi Walk Groove) featuring a dynamic tempo multiplier (0.85x to 1.35x) adjusting live to your walking cadence (steps/min).
- Real-Time Mapping: Interactive map integration displaying real-time user movement polyline trails (
#00F5FF). - GPX Export (
gpxService.ts): Export tracked workout sessions into standard.gpxXML files ready for Strava, Garmin, or Apple Health import usingexpo-sharing. - Bookmarked Favorite Trails (
favoriteTrailsService.ts): Bookmark AI-suggested routes in the AI Planner (β Save Trail) and select them on the GPS Walk screen via a horizontal trail carousel.
- Environmental Status Card (
weatherService.ts): Displays live outdoor environmental conditions on the GPS Walk screen including Temperature (Β°C/Β°F), Weather Condition, Humidity %, UV Index rating, Air Quality Index (AQI 1-5), and outdoor walking safety advice.
- π₯ Calories: Burned kilocalories with individual progress mini-fill (
#FF007A). - π Distance: Kilometers covered with pace calculations (
#00F5FF). - β± Active Duration: Active walking minutes (
#9D00FF). - β‘ Walk Pace: Real-time walking cadence in
steps / min(#FF9900). - Action Control Dock: Floating pill dock featuring
+100 Quick StepsandAuto Walkmode toggle for instant testing on desks or emulators.
- Interactive Week Selector: Tap any weekday pill (MON β SUN) in History to inspect that specific day's step breakdown, date stamp, and target achievement ratio.
- Dual-Gradient 30-Day Chart: Built with
react-native-gifted-charts, featuring a target reference threshold line, average steps pill badge, and color-coded bars (Cyan for goal met, Violet for moderate, Red/Orange for low). - Weekly Pace Comparison Split Card: Dual progress bars comparing this week's daily average versus last week's daily average with trend percentage diff badges (
+14% β).
- Tiered Milestone Badges: Unlockable achievements categorized across step goals, streak milestones, distance benchmarks, and active time consistency.
- Visual Progress Tiers: Color-coded badges (
#00F5FF,#9D00FF,#FF007A) showing completion percentage, unlocked dates, and locked criteria previews.
- Dynamic Weekly Schedules: Customized daily step targets based on recent activity performance and AI wellness score recommendations.
- Route Suggestions & Window Times: Recommends optimal circadian walking time windows and neighborhood routes with one-tap trail bookmarking.
- System Widget Previews: Interactive preview component (
WidgetPreviewCard.tsx) rendering Home Screen, Lock Screen, and Dynamic Island ongoing notification controls. - Quick Metrics Glance: Displays live step count, ring completion arc, and active timer telemetry directly in widget formats.
- Impact Acceleration Threshold (
1.42g): Prevents slight hand movements or wrist turns while sitting/resting from triggering false steps. - Rhythmic Step Cadence Window (
[320ms, 1100ms]): Requires at least 3 consecutive rhythmic steps matching human walking cadence before steps are counted. Isolated hand twitches while resting or sleeping are completely discarded.
AI power is integrated at both the Backend Engine and Client-Side Fallback System:
+-------------------------------------------------------------------+
| VibeWalk App Flow |
+-------------------------------------------------------------------+
|
[30-Day Activity Vector Data]
|
v
+-------------------------------------------------------------------+
| AI Analytics Engine |
| (FastAPI / Express or Offline AI Fallback) |
+-------------------------------------------------------------------+
| | |
v v v
[Pattern Analysis & [0-100 Dynamic Wellness [Ranked Contextual AI
Trend Mining] Performance Score] Insight Generation]
| | |
+-----------------------------+----------------------------+
|
v
+-------------------------------------------------------------------+
| Cyber Frontend Timeline |
| (Renders Ranked AI Insights: Success, Warning, Alert) |
+-------------------------------------------------------------------+
- The AI engine processes 30-day historical step arrays
[s1, s2, ..., s30]sent by the mobile app. - Calculates exponential moving averages (EMA), rolling 7-day averages, and week-over-week variance to detect upward momentum (
up), activity dips (down), or steady consistency (stable).
- Evaluates four weighted dimensions:
- Goal Consistency Rate (weight: 50%)
- Active Streak Multiplier (weight: 20%)
- Week-over-Week Growth Rate (weight: 15%)
- Volume Stability (weight: 15%)
- Assigns dynamic performance tier badges:
OPTIMAL(85β100),HEALTHY(65β84),MODERATE(45β64), andLOW ACTIVITY(0β44).
- Generates severity-ranked health cards with emoji tags and actionable coaching:
success(π₯ Streak & π Momentum): "You've hit your 10,000 step goal 5 days in a row!"warning(β οΈ Activity Dip): "Your steps dropped 18% compared to last week."alert(π¨ Inactivity Dip): Detects multi-day inactivity and suggests recovery targets.info(π Benchmark Insights): Compares weekend vs. weekday walking patterns.
- If the remote AI backend is unreachable (offline mode or dev network change),
apiService.tsautomatically executes an embedded client-side AI analysis algorithm so users always receive accurate wellness scores, trends, and smart insights.
- Framework: React Native SDK 54 (
expo@~54.0.0,react-native@0.81.5,react@19.1.0) - Navigation:
@react-navigation/native&@react-navigation/bottom-tabs - Animations:
react-native-reanimated(UI-thread liquid flow spring animations) - Audio & Voice:
expo-speech(Live Voice Coach TTS & Cadence Soundscapes) - Sharing & Files:
expo-sharing&expo-file-system(GPX route export) - Data Visualization:
react-native-gifted-charts&react-native-svg - Maps & GPS:
react-native-maps&expo-location - Notifications:
expo-notifications - Sensors & Pedometer:
expo-sensors(Accelerometer&Pedometerwith Rhythmic Cadence Filtering)
Available in both Node.js / Express and Python / FastAPI:
- Node.js: Express.js (ES Modules, CORS enabled)
- Python: FastAPI, Pydantic, Uvicorn
stepCounter/
βββ backend/ # AI Analytics Engine Backend
β βββ app/
β β βββ analytics.js # JS AI Analytics Engine logic
β β βββ analytics.py # Python AI Analytics Engine logic
β β βββ main.js # Express.js entry point & endpoints
β β βββ main.py # FastAPI entry point & routes
β β βββ models.py # Pydantic schema models
β βββ package.json
β βββ requirements.txt
β
βββ mobile/ # React Native Mobile App (Expo SDK 54)
βββ mocks/ # HealthKit / Pedometer mock module
βββ src/
β βββ components/ # UI Components
β β βββ BarChart.tsx # 30-day interactive bar chart
β β βββ HealthSyncBanner.tsx # HealthKit / Health Connect sync banner
β β βββ InsightCard.tsx # AI insight card renderer
β β βββ LiquidScreenWrapper.tsx# Fluid liquid tab focus screen wrapper
β β βββ LiquidSection.tsx # Staggered wave section container
β β βββ PermissionGate.tsx # Permission gate wrapper
β β βββ SplitTableCard.tsx # Weekly pace comparison split card
β β βββ StepRing.tsx # Holographic concentric hero dial
β β βββ WidgetPreviewCard.tsx # System Widgets & Live Activity controller
β βββ hooks/ # Custom React Hooks
β β βββ useAnalytics.ts # AI analytics hook
β β βββ useStepHistory.ts # Step history state manager
β β βββ useSteps.ts # Sensor & hybrid pedometer hook
β βββ screens/ # Main Tab & Feature Screens
β β βββ BadgesScreen.tsx # Gamified achievements & milestone badges
β β βββ HistoryScreen.tsx # 7-day selector & 30-day analytics history
β β βββ HomeScreen.tsx # Main dashboard screen
β β βββ PermissionScreen.tsx # Sensor & location permissions screen
β β βββ PlannerScreen.tsx # AI health planner & route bookmarking
β β βββ TrackerScreen.tsx # Live GPS route map, audio coach, & weather
β βββ services/ # App Services & Integrations
β β βββ apiService.ts # Backend API client & offline fallback engine
β β βββ badgeService.ts # Achievement & badge evaluation service
β β βββ favoriteTrailsService.ts# Bookmarked favorite routes manager
β β βββ gpxService.ts # GPX route XML export & sharing
β β βββ gpsService.ts # Location tracking & route management
β β βββ healthService.ts # Native health platform sync bridge
β β βββ notificationService.ts# Local push notification scheduling
β β βββ soundscapeService.ts # Cadence soundscapes & dynamic tempo engine
β β βββ voiceCoachService.ts # Audio Voice Coach TTS announcements
β β βββ weatherService.ts # Outdoor weather & AQI telemetry
β β βββ widgetService.ts # Widget configuration service
β βββ theme/ # Styling & Color System
β β βββ colors.ts # OLED Cyber Dark color palette
β βββ utils/ # Helper Utilities
β βββ normalize.ts # Responsive font & layout normalization
βββ App.tsx # Root App Component & Navigation Stack
βββ app.json # Expo application configuration
βββ babel.config.js # Babel compiler configuration
βββ index.js # Entry point registration
βββ metro.config.js # Metro bundler config
βββ package.json # Node dependencies & scripts
βββ tsconfig.json # TypeScript configuration
- Node.js:
>= 20.x - Expo Go app installed on your physical mobile phone (iOS / Android) or simulator/emulator.
git clone https://github.com/Ayush08k/VibeWalk.git
cd VibeWalkcd backend
npm install
npm run devServer runs at
http://localhost:8000
cd backend
python -m venv venv
# On Windows:
.\venv\Scripts\activate
# On macOS / Linux:
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000API interactive documentation available at
http://localhost:8000/docs
cd mobile
npm install
npx expo start -c- Physical Device (Recommended):
- Open Expo Go on your iOS or Android phone.
- Scan the QR code printed in the terminal.
- Android Emulator: Press
ain the terminal after launching Expo CLI. - iOS Simulator (macOS only): Press
iin the terminal.
Distributed under the MIT License.