BiteWalk
Walk-to-earn rewards for UCSC students · 4-person team, solo technical builder

Overview
A walk-to-earn rewards app built for UCSC students. I worked on a four-person team as the only technical builder. The product turns walking into points students can redeem for deals at local restaurants. BiteWalk made the semifinals of the Santa Cruz Launch Pad pitch competition.
Frontend / Mobile
A TypeScript monorepo with an Expo/React Native mobile app and a separate Next.js business dashboard. The mobile app includes home, distance, map, and discounts tabs with auth and onboarding gating. Step tracking uses native iOS HealthKit and Android Health Connect behind a shared abstraction. The distance view shows today's steps, distance, points balance, daily goals, streaks, recent walks, and a 7-day chart. Deal discovery works through both list and map views, with category and radius filters. Redemption routes users into a voucher screen with a one-time code and expiry countdown.
Backend / API
Backend logic is mostly handled through Supabase RPCs, policies, and Edge Functions. RPCs cover points balance, deal redemption, voucher validation, nearby deals, daily goals, streaks, and merchant review workflows. Supabase Edge Functions handle customer redemption and merchant voucher validation with auth checks and structured errors. The business dashboard includes server-side routes and actions for business search, waitlist signup, claim submission, approval and rejection, merchant reward validation, deal management, reward history, analytics, and profile editing.
Database / Storage
Supabase Postgres stores users, walks, point ledger entries, businesses, deals, vouchers, business applications, subscriptions, waitlist entries, friends, and leaderboard entries. PostGIS powers nearby deal discovery through spatial distance queries. Merchant assets live in a Supabase Storage bucket. The database includes Santa Cruz and Capitola restaurant and deal seed data for local rollout.
Integrations
HealthKit, Health Connect, foreground location, background fetch and task manager, notifications, SQLite offline persistence, native maps, Google Places business search, Supabase, and email sending for waitlist flows.
Testing / Reliability
Vitest covers shared logic, mobile libraries and hooks, dashboard code, SQL migration regressions, business-claim behavior, Santa Cruz seed data, step-tracking behavior, and UI scope. CI runs lint, typecheck, and tests. Reliability work includes offline walk queueing in SQLite, replay after network recovery, duplicate insert handling, and native background sync every 15 minutes.
Outcome
An end-to-end student rewards system with native step ingestion, point tracking, reliable sync, local restaurant inventory, voucher redemption, and a merchant dashboard for operations.