Skip to content

Repository files navigation

Park Day Diary — Expo app

A Disneyland trip companion: live wait times, weather, favorite rides with threshold-based alerts, and a per-trip diary (photos, ride/character/snack logs, fireworks, outfits, merch). Talks to the disneyapp-backend Spring Boot service for live data and notifications; uses on-device AsyncStorage for the diary.

Built with Expo (React Native), TypeScript, and Expo Router (file-based routing).

Tabs

Tab What it does
At the Park Live wait times for both parks, sorted by length; current Anaheim weather.
Favorites Pick rides from a curated land/ride picker; set an optional wait-time threshold to be notified at.
Alerts Shows favorites currently under their threshold. Bell-icon dot indicates new alerts.
My Trip Per-day diary: date, park, photos, ride/character/snack tracking, hotel, fireworks, outfit, merch.

Data sources & attribution

Live data comes from two free public APIs, both of which require attribution. This is rendered in-app as small "Powered by..." footers under the relevant data on the At-the-Park screen, and credited again here:

App code itself is independent of and not endorsed by The Walt Disney Company.

Get started

  1. Install dependencies:

    npm install
  2. Make sure the backend is running on http://localhost:8080 (see the disneyapp-backend repo).

  3. Start the app:

    npx expo start

    In the output you'll find options to open the app in:

You can start developing by editing the files inside the app directory.

Connecting to the backend

The Expo app reads its backend base URL from expo.extra.apiBaseUrl in app.json (defaults to http://localhost:8080).

  • iOS Simulator: localhost works as-is.
  • Android Emulator: handled automatically — lib/api.ts rewrites localhost to 10.0.2.2 (the emulator's alias for the host machine).
  • Physical device: set EXPO_PUBLIC_API_BASE_URL=http://<your-mac-lan-ip>:8080 before running expo start, and make sure the device is on the same Wi-Fi.

Project layout

app/
├── _layout.tsx                # root layout, AlertsProvider, theme
├── (tabs)/
│   ├── _layout.tsx            # tab bar config, AlertsTabIcon (notification dot)
│   ├── live.tsx               # At the Park: wait times + weather
│   ├── favorites.tsx          # Favorites list + add/edit modal
│   ├── alerts.tsx             # Current alerts, sorted with new ones pinned
│   └── index.tsx              # My Trip
components/                    # Reusable UI (modals, gradient background, etc.)
hooks/                         # use-wait-times, use-weather, use-favorites,
                               # use-alerts, use-pickable-rides
lib/                           # api client, storage, wait-time color helpers
constants/                     # theme, parks, curated ride lists

Learn more about Expo

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages