Skip to content

SaiVarunPappla/Trajecta-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌍 Trajecta - AI-Powered Travel Companion

Trajecta Logo

Your intelligent travel planning companion with AI-powered itineraries, AR navigation, and seamless trip management.

Expo React Native TypeScript License


πŸ“± Features

πŸ€– AI-Powered Trip Planning

  • 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

πŸ—ΊοΈ Advanced Navigation & Maps

  • 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

πŸ“Έ Travel Photography

  • AR Camera with travel-focused features
  • Photo capture with location tagging
  • Gallery management and trip photo organization
  • Social sharing capabilities

πŸ” Secure Authentication

  • Supabase Auth with email/password and OAuth support
  • Google OAuth integration (configurable)
  • Secure user profile management
  • Session persistence and automatic login

🎯 Smart Features

  • Real-time Weather integration with Tomorrow.io API
  • Trip favorites and bookmarking system
  • Gamification with travel achievements
  • Offline support with local data caching

πŸ› οΈ Tech Stack

Frontend Framework

  • 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

UI & Styling

  • 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

Navigation & State Management

  • 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

Backend & Database

  • 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

AI & External APIs

  • 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

Media & Device Features

  • 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

Storage & Persistence

  • 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

πŸš€ Quick Start

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Expo CLI (install with npm install -g @expo/cli)
  • Expo Go app on your mobile device

Installation

  1. Clone the repository

    git clone https://github.com/Mastan226ie/Trajecta.git
    cd Trajecta
  2. Install dependencies

    npm install
  3. 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
  4. Start the development server

    npm start
  5. Run on device

    • Scan the QR code with Expo Go app
    • Or press a for Android emulator
    • Or press i for iOS simulator
    • Or press w for web browser

πŸ“‹ Available Scripts

# 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

πŸ”§ Configuration

API Keys Setup

1. Google Maps API

  1. Go to Google Cloud Console
  2. Enable Maps JavaScript API, Places API, and Directions API
  3. Create credentials and add your API key to .env

2. Google Gemini AI

  1. Visit Google AI Studio
  2. Create an API key for Gemini
  3. Add to your .env file

3. Tomorrow.io Weather API

  1. Sign up at Tomorrow.io
  2. Get your API key from the dashboard
  3. Add to your .env file

4. Supabase Setup

  1. Create a project at Supabase
  2. Get your project URL and anon key
  3. Run the database schema from supabase-schema.sql
  4. Configure authentication providers if needed

Database Setup

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 policies

πŸ“ Project Structure

Trajecta/
β”œβ”€β”€ 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

🎯 Key Features Implementation

AI Trip Planning

  • 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

AR Navigation

  • 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

Smart Authentication

  • Supabase Auth with email/password and OAuth
  • Secure session management with automatic refresh
  • User profile creation and management
  • Social login with Google (configurable)

Real-time Features

  • Live weather updates during trip planning
  • Real-time location tracking for navigation
  • Instant trip sharing and collaboration
  • Push notifications for trip updates

πŸ”’ Security & Privacy

  • 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

πŸ§ͺ Testing

Running Tests

# Run unit tests
npm test

# Run integration tests
npm run test:integration

# Run E2E tests
npm run test:e2e

Testing on Devices

  • Expo Go: For quick testing and development
  • Development Build: For full native functionality
  • TestFlight/Play Console: For production testing

πŸš€ Deployment

Build for Production

# Build for Android
eas build --platform android

# Build for iOS
eas build --platform ios

# Build for both platforms
eas build --platform all

Environment Setup

  1. Install EAS CLI: npm install -g eas-cli
  2. Configure eas.json for your build profiles
  3. Set up app store credentials
  4. Configure environment variables for production

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and test thoroughly
  4. Commit your changes: git commit -m 'Add amazing feature'
  5. Push to the branch: git push origin feature/amazing-feature
  6. Open a Pull Request

πŸ“„ License

This project is licensed under the ISC License - see the LICENSE file for details.


πŸ†˜ Support & Documentation

Getting Help

Troubleshooting


πŸ™ Acknowledgments

  • 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

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages