A modern, cross-platform travel itinerary planner built with React Native and Expo. Plan multi-city trips, generate smart AI-powered day-by-day itineraries, reorder days and activities, and export your plans as text files.
- Multi-city trip planning with custom nights per destination
- AI-powered itinerary generation (OpenAI GPT-3.5/4 via backend proxy)
- Modern, responsive UI with dark/light theme support
- Reorder days and activities (works on web and mobile)
- Export itinerary as a plain text file (web and mobile)
- Beautiful cards, hover states, and smooth UX
assets/ # Images, icons, splash, etc.
components/ # Reusable UI components (Header, Logo, etc.)
context/ # React context providers (ThemeContext)
pages/ # Main screens/pages (Landing, TripPlanner, Itinerary)
utils/ # Utility/helper functions (create if needed)
App.js # App entry point, navigation setup
server.js # Backend proxy for OpenAI API
index.js # Entry for Expo/React Native
babel.config.js # Babel config
app.json # Expo app config
package.json # Project dependencies
git clone <your-repo-url>
cd Waypointnpm install
# or
yarn install- For the backend proxy, create a
.envfile in the root:OPENAI_API_KEY=sk-...your-openai-key... - (Frontend uses the backend proxy, so no need to expose your key in the app.)
npm install express node-fetch dotenv
node server.js- The proxy will run on
http://localhost:5001/api/openaiby default. - Make sure your
.envfile is present and correct.
npx expo start- Press
wto open in web browser, or scan the QR code for mobile. - For web, the app will be at
http://localhost:19006(default Expo port).
- On the Itinerary page, click the Export Itinerary button.
- On web: downloads a
.txtfile. - On mobile: saves to device using Expo FileSystem.
- Place reusable UI in
components/. - Place main screens in
pages/. - Place context providers in
context/. - Place images/icons in
assets/(create subfolders as needed). - Place helpers in
utils/(create if needed). - Place navigation logic in
App.jsor anavigation/folder if it grows.
- Use clear, descriptive commit messages.
- Keep code modular and organized by feature/folder.
- Write clean, commented code.
- Open issues or pull requests for bugs, features, or improvements.
MIT (or specify your license)