Nomad


Track

Health & Wellness

Inspiration

As CS majors, we sit a lot. Doing homework, sitting. Entertainment, sitting. Commuting to campus, sitting in car. In class, sitting. Eating, sitting. Our campus is small, so there isn't much built-in walking. This is bad for our health and makes it surprisingly hard to reach 10,000 steps a day.

Reaching 10,000 daily steps is a widely recommended target to increase physical activity. It's associated with reduced risk of cardiovascular disease, type 2 diabetes, and certain cancers, while supporting weight management, lowering blood pressure, improving mental health, and increasing longevity.

What it does

Nomad is a mobile app that turns your daily steps into a mission. It reads your phone's pedometer to track steps in real time, then uses your location and height to recommend nearby places — landmarks, campus buildings, parks, cafes — showing exactly how many steps you'd earn by walking there, how far it is, and how long it'll take.

Key features:

  • Live step counter with a progress bar and walking stick figure that moves as you get closer to your goal
  • Faded map background centered on your location (NRC-inspired)
  • Collapsible weekly activity chart pulled from Apple HealthKit
  • Nearby place cards showing distance, walking time, and steps gained — tap to open walking directions in Apple Maps or Google Maps
  • Custom onboarding that collects your name, height (for stride calculation), and step goal, then walks you through Health and Location permissions before any system dialogs appear
  • Automatic dark mode that follows your device theme, including the map

How steps are calculated

We estimate steps to a destination using the user's height:

stride_length = 0.415 × height_in_inches
steps = (distance_miles × 5280 × 12) / stride_length

How we built it

Frontend:

  • React Native with TypeScript, Expo managed workflow
  • Expo Router for file-based navigation
  • expo-sensors (Pedometer) for HealthKit step data
  • expo-location for user positioning
  • react-native-maps for the background map

Backend:

  • Flask (Python) server
  • Google Places API (Nearby Search) to find landmarks, campus buildings, parks, gyms, restaurants, and more
  • Google Distance Matrix API to get walking distances and durations
  • Minimum distance filter (0.15 mi) so you don't get results for the building you're already in
  • Results sorted by distance, capped at 20

AI Tools:

  • Claude Opus 4.6 (claude.ai)
  • Cursor

Storage:

  • No database, user preferences (name, height, goal) stored on-device with AsyncStorage

What's next for Nomad

  • Multi-stop routes: "Walk to the park, then the library, then back home" to hit your goal with a loop
  • Longer path options: the Distance Matrix API returns the shortest path, but sometimes a longer scenic route earns more steps
  • Apple Health sync: import name and height from HealthKit so users who grow (or update their profile) stay in sync automatically
  • User-defined places: let users pin their own favorite destinations
  • Gamification: streaks, badges, celebrations when you hit your goal, weekly challenges

Built With

  • React Native
  • TypeScript
  • Expo
  • Flask
  • Python
  • Google Places API
  • Google Distance Matrix API
  • Claude AI

Demo

[Video link here]

Built With

Share this project:

Updates