Your intelligent travel planning companion with AI-powered itineraries, AR navigation, and seamless trip management.
- Google Gemini AI integration for intelligent itinerary generation
- Personalized recommendations based on preferences, budget, and travel style
- Smart destination suggestions with weather-aware planning
- Multi-day trip planning with optimized routes
- Google Maps integration with real-time directions
- AR Navigation with camera overlay for immersive guidance
- Nearby places discovery with ratings and reviews
- Location-based recommendations and points of interest
- AR Camera with travel-focused features
- Photo capture with location tagging
- Gallery management and trip photo organization
- Social sharing capabilities
- Supabase Auth with email/password and OAuth support
- Google OAuth integration (configurable)
- Secure user profile management
- Session persistence and automatic login
- Real-time Weather integration with Tomorrow.io API
- Trip favorites and bookmarking system
- Gamification with travel achievements
- Offline support with local data caching
- React Native
^0.81.4- Cross-platform mobile development - Expo SDK
~54.0.0- Development platform and tools - Expo Router
~6.0.7- File-based navigation system - TypeScript
~5.9.2- Type-safe development
- React Native Reanimated
~4.1.0- High-performance animations - React Native Gesture Handler
~2.28.0- Touch interactions - Expo Linear Gradient
^15.0.7- Beautiful gradient backgrounds - Expo Blur
^15.0.7- iOS-style blur effects - Lucide React Native
^0.544.0- Modern icon library - React Native Animatable
^1.4.0- Smooth animations
- React Navigation
^7.1.8- Navigation library - TanStack React Query
^5.89.0- Server state management - React Context API - Global state management
- Zustand (via custom providers) - Client state management
- Supabase
^2.39.3- Backend-as-a-Service with PostgreSQL - tRPC
^11.5.1- End-to-end typesafe APIs - Hono
^4.9.8- Lightweight web framework - Zod
^3.25.76- Runtime type validation
- Google Gemini AI
^0.24.1- AI trip planning and recommendations - Google Maps API - Places, geocoding, and directions
- Tomorrow.io Weather API - Real-time weather data
- Supabase Real-time - Live data synchronization
- Expo Camera
^17.0.8- Camera functionality - Expo Location
^19.0.7- GPS and location services - Expo Media Library
^18.2.0- Photo/video management - React Native Maps
^1.20.1- Map components - Expo AV
^16.0.7- Audio/video playback
- Expo Secure Store
^15.0.7- Secure key-value storage - Expo SQLite
^16.0.8- Local database - React Native Async Storage
^2.2.0- Simple key-value storage
- Node.js (v18 or higher)
- npm or yarn
- Expo CLI (install with
npm install -g @expo/cli) - Expo Go app on your mobile device
-
Clone the repository
git clone https://github.com/Mastan226ie/Trajecta.git cd Trajecta -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Configure your API keys in
.env:# Google Maps API Key EXPO_PUBLIC_GOOGLE_MAPS_API_KEY=your_google_maps_api_key # Google OAuth Configuration EXPO_PUBLIC_GOOGLE_CLIENT_ID=your_google_client_id # Gemini AI API Key EXPO_PUBLIC_GEMINI_API_KEY=your_gemini_api_key # Tomorrow.io Weather API EXPO_PUBLIC_WEATHER_API_KEY=your_weather_api_key # Supabase Configuration EXPO_PUBLIC_SUPABASE_URL=your_supabase_url EXPO_PUBLIC_SUPABASE_KEY=your_supabase_anon_key
-
Start the development server
npm start
-
Run on device
- Scan the QR code with Expo Go app
- Or press
afor Android emulator - Or press
ifor iOS simulator - Or press
wfor web browser
# Start development server
npm start
# Run on Android
npm run android
# Run on iOS
npm run ios
# Run on web
npm run web
# Lint code
npm run lint
# Reset project (clean start)
npm run reset-project- Go to Google Cloud Console
- Enable Maps JavaScript API, Places API, and Directions API
- Create credentials and add your API key to
.env
- Visit Google AI Studio
- Create an API key for Gemini
- Add to your
.envfile
- Sign up at Tomorrow.io
- Get your API key from the dashboard
- Add to your
.envfile
- Create a project at Supabase
- Get your project URL and anon key
- Run the database schema from
supabase-schema.sql - Configure authentication providers if needed
Run the SQL schema in your Supabase SQL editor:
# Copy the contents of supabase-schema.sql to Supabase SQL Editor
# This creates all necessary tables and policiesTrajecta/
βββ app/ # App screens (Expo Router)
β βββ (tabs)/ # Tab navigation screens
β β βββ home.tsx # Home screen with quick actions
β β βββ explore.tsx # Explore destinations
β β βββ profile.tsx # User profile
β βββ auth.tsx # Authentication screen
β βββ ar-camera.tsx # AR camera functionality
β βββ ar-navigation.tsx # AR navigation screen
β βββ trip-planner.tsx # AI trip planning
βββ components/ # Reusable UI components
β βββ ui/ # Base UI components
β βββ AITripPlanner.tsx # AI trip planning component
βββ lib/ # Core libraries and services
β βββ services/ # External API services
β βββ auth.ts # Authentication service
β βββ database.ts # Database operations
β βββ supabase.ts # Supabase client
βββ providers/ # React Context providers
β βββ AuthProvider.tsx # Authentication state
β βββ TravelProvider.tsx # Travel data state
βββ backend/ # tRPC API routes
β βββ trpc/ # API route definitions
βββ assets/ # Static assets (images, fonts)
βββ utils/ # Utility functions
βββ .env # Environment variables
- Powered by Google Gemini AI for intelligent recommendations
- Considers user preferences, budget, and travel dates
- Generates detailed day-by-day itineraries
- Weather-aware planning with seasonal recommendations
- Real-time camera overlay with directional guidance
- Integration with Google Maps for accurate routing
- Voice guidance and visual indicators
- Offline map support for remote areas
- Supabase Auth with email/password and OAuth
- Secure session management with automatic refresh
- User profile creation and management
- Social login with Google (configurable)
- Live weather updates during trip planning
- Real-time location tracking for navigation
- Instant trip sharing and collaboration
- Push notifications for trip updates
- End-to-end encryption for sensitive user data
- Row Level Security (RLS) policies in Supabase
- Secure API key management with environment variables
- OAuth 2.0 implementation for third-party authentication
- Local data encryption for offline storage
# Run unit tests
npm test
# Run integration tests
npm run test:integration
# Run E2E tests
npm run test:e2e- Expo Go: For quick testing and development
- Development Build: For full native functionality
- TestFlight/Play Console: For production testing
# Build for Android
eas build --platform android
# Build for iOS
eas build --platform ios
# Build for both platforms
eas build --platform all- Install EAS CLI:
npm install -g eas-cli - Configure
eas.jsonfor your build profiles - Set up app store credentials
- Configure environment variables for production
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test thoroughly
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the ISC License - see the LICENSE file for details.
- π Expo Documentation
- πΊοΈ Google Maps API Docs
- π€ Supabase Documentation
- π¬ Discord Community
- Check the Troubleshooting Guide
- Review Common Issues
- Search existing GitHub Issues
- Expo Team for the amazing development platform
- Supabase for the backend infrastructure
- Google for Maps, AI, and authentication services
- Tomorrow.io for weather data
- React Native Community for the ecosystem
Made with β€οΈ for travelers around the world
β Star this repo β’ π Report Bug β’ π‘ Request Feature