A React Native app for exploring California State Parks. Get real-time safety tips, trail tracking, offline park info, and an AI ranger chatbot — all without needing cell service once you're in the park.
| Feature | Description |
|---|---|
| Park Browser | Search and browse all ~280 CA State Parks with offline support |
| Park Details | Hours, fees, rules, amenities, and contact info per park |
| Map | See your location within the park |
| Trail Tracker | GPS breadcrumb recording of your hike |
| PeterParker Chatbot | Ask an AI ranger about wildlife, safety, and sightseeing |
- React Native + Expo — works on iOS and Android, no build pipeline needed for dev
- Expo Router — file-based navigation (like Next.js but for mobile)
- NativeWind — Tailwind CSS styling for React Native
- Zustand — lightweight state management
- AWS Bedrock (Claude) — powers the AI ranger chatbot
- AWS Lambda + API Gateway — serverless backend
- DynamoDB — park data and trail history
- expo-location — GPS and trail tracking
- expo-sqlite + AsyncStorage — offline data storage on device
Prerequisites: Node.js 20+, and the Expo Go app on your phone.
# 1. Install dependencies
npm install
# 2. Set up environment variables
cp .env.example .env
# Fill in the values — get them from the team Slack/Discord
# 3. Start the dev server
npx expo startScan the QR code with Expo Go. That's it.
npx expo start --iosnpx expo start --androidapp/
(tabs)/
index.tsx # Parks browse/search screen
map.tsx # Map with user location
trail.tsx # Trail tracker
ranger.tsx # AI chatbot
park/[id].tsx # Park detail page
stores/
parksStore.ts # Park list data + offline cache
chatStore.ts # Chatbot messages + API calls
trailStore.ts # GPS trail recording
Copy .env.example to .env and fill in the values.
Get the real keys from the team — never commit .env to git.
| Variable | What It Is |
|---|---|
EXPO_PUBLIC_API_URL |
Backend API Gateway URL |
EXPO_PUBLIC_COGNITO_POOL_ID |
Auth pool (no login required, uses guest access) |
EXPO_PUBLIC_MAPBOX_TOKEN |
Map tiles token |
Built at a 24-hour hackathon. 2 Macs + 2 Windows — everyone develops via Expo Go, no Xcode or Android Studio required for basic dev.
This is an Expo project created with create-expo-app.
-
Install dependencies
npm install
-
Start the app
npx expo start
In the output, you'll find options to open the app in a
- development build
- Android emulator
- iOS simulator
- Expo Go, a limited sandbox for trying out app development with Expo
You can start developing by editing the files inside the app directory. This project uses file-based routing.
When you're ready, run:
npm run reset-projectThis command will move the starter code to the app-example directory and create a blank app directory where you can start developing.
To learn more about developing your project with Expo, look at the following resources:
- Expo documentation: Learn fundamentals, or go into advanced topics with our guides.
- Learn Expo tutorial: Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.
Join our community of developers creating universal apps.
- Expo on GitHub: View our open source platform and contribute.
- Discord community: Chat with Expo users and ask questions.