Skip to content

LMBraca/borderpulse-mobile

Repository files navigation

BorderPulse

Real-time US–Mexico border crossing wait times with hourly forecasts, built as a cross-platform mobile app.

Drivers approaching the border have to guess which crossing will be fastest. Official CBP data is published but scattered and not predictive. BorderPulse ingests that data, fits hourly forecasts per lane type, and surfaces the result as a native-feeling app — wait times on a map, a trend chart that blends recent observations with a forecast, and a best-time-to-cross suggestion.

BorderPulse icon

Highlights

  • Forecast chart — custom SVG chart with a monotone-cubic interpolation so the blend between observed history and predicted future reads as a single line. Tap any point for the value, p25/p75 range, and confidence tier.
  • Best time to cross — per-crossing suggestion ranks the next several hours by predicted wait and confidence, falling back gracefully when historical coverage is thin.
  • Map + list views — crossings plotted on a Mapbox basemap, or browsed as cards with favorites pinned.
  • Localized — full EN/ES via i18next, driven by the device locale.
  • Dark-first — custom theme tokens, DM Sans / Outfit type pairing.
  • Strict TypeScript, no anytsc --noEmit is clean.

Stack

Layer Choice
Runtime Expo SDK 54, React Native 0.81, React 19, New Architecture
Navigation Expo Router (typed routes)
Server state TanStack Query
Charts react-native-svg (hand-rolled — no chart library)
Maps react-native-maps + Mapbox tiles
i18n i18next + react-i18next
Icons lucide-react-native

Project layout

app/          Expo Router routes (tabs + crossing detail)
components/   Reusable UI — CrossingCard, WaitTimeChart, etc.
hooks/        Query hooks wrapping the API
lib/          API client, shared types, timezone helpers
theme/        Color tokens, typography
assets/       Icons, splash, fonts

Running locally

npm install
cp .env.example .env   # fill in API URL + Mapbox token
npm run ios            # or: android, web

Scripts

  • npm start — Expo dev server
  • npm run ios / android / web — platform-specific launch
  • npm run typecheck — strict TS check
  • npm run format — Prettier

Status

Built solo as a portfolio project. Backend (ingest + forecasting) lives in a separate repo.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors