Skip to content

Repository files navigation

TrekConnect 🏔️

Next.js TypeScript Firebase Tailwind CSS

A modern, AI-powered travel application connecting trekkers worldwide

DemoDocumentationAPI ReferenceContributing

✨ Features

🗺️ Explore Destinations

  • Discover breathtaking trekking destinations with rich details
  • View high-quality photos from Pexels API integration
  • Get real-time weather information for each location
  • AI-powered custom route planning with Genkit
  • Interactive maps and detailed travel information
  • User ratings and reviews for each destination
  • Integrated YouTube videos showcasing treks

💫 ConnectSphere

  • Tinder-style swiping interface for finding travel companions
  • Match with like-minded travelers based on preferences
  • Smooth animations and haptic feedback
  • Instant chat access after successful matches

💬 Real-time Chat

  • WebSocket-powered real-time messaging
  • Modern chat interface with emoji picker support
  • Responsive design optimized for all screen sizes
  • Message status indicators and typing notifications
  • Media sharing capabilities

🤖 AI-Powered Features

  • Personalized trek recommendations using Google Gemini 3
  • AI-driven destination filtering and search
  • Custom route generation for unique adventures
  • Smart travel suggestions based on your profile

📸 Photo & Story Feed

  • Share your travel experiences with the community
  • Upload and organize your trek photos
  • Write inspiring stories from your journeys
  • Interactive feed with likes and comments

👤 User Profiles

  • Comprehensive profile customization
  • Showcase your trekking experience and skills
  • Manage your travel wishlist and history
  • Privacy controls and account management

🛠️ Tech Stack

Frontend

Backend & Services

Development

  • Build Tool: Turbopack
  • Linting: ESLint with Next.js config
  • Type Checking: TypeScript strict mode
  • Package Manager: npm/yarn

🚀 Quick Start

Prerequisites

  • Node.js 18.0.0 or later
  • npm 9.0.0 or later (or yarn 1.22.0+)
  • Git for version control

Installation

  1. Clone the repository

    git clone https://github.com/XploitMonk0x01/TrekConnect.git
    cd TrekConnect
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Environment Setup

    # Copy the example environment file
    cp .env.example .env.local
    
    # Edit the .env.local file with your API keys
  4. Start the development servers

    Option A: Automatic (Recommended)

    • Open the project in VS Code
    • Development and AI servers will start automatically

    Option B: Manual

    # Terminal 1: Next.js development server
    npm run dev
    
    # Terminal 2: Genkit AI server (new terminal)
    npm run genkit:dev
  5. Access the application

📁 Project Structure

TrekConnect/
├── 📂 src/
│   ├── 📂 app/                 # Next.js App Router pages
│   │   ├── 📂 admin/           # Admin dashboard for destinations
│   │   ├── 📂 auth/            # Authentication pages
│   │   ├── 📂 chat/            # Real-time chat interface
│   │   ├── 📂 connect/         # User matching (ConnectSphere)
│   │   ├── 📂 explore/         # Destination discovery
│   │   ├── 📂 feed/            # Social feed
│   │   ├── 📂 profile/         # User profiles
│   │   └── 📂 api/             # API routes
│   ├── 📂 components/          # Reusable React components
│   │   ├── 📂 ui/              # ShadCN UI components
│   │   └── 📂 layout/          # Layout components
│   ├── 📂 contexts/            # React Context providers
│   ├── 📂 ai/                  # Genkit AI flows and functions
│   ├── 📂 lib/                 # Core utilities and configuration
│   ├── 📂 services/            # External API integrations
│   └── 📂 hooks/               # Custom React hooks
├── 📂 public/                  # Static assets
└── 📂 .vscode/                 # VS Code configuration

🔧 Available Scripts

Command Description
npm run dev Start development server with Turbopack
npm run genkit:dev Start Genkit AI development server
npm run genkit:watch Start Genkit with file watching
npm run build Build production application
npm run start Start production server
npm run lint Run ESLint
npm run typecheck Run TypeScript type checking

🔑 Environment Variables

Create a .env.local file in the root directory:

# Firebase Configuration
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_DATABASE_URL=your_database_url

# MongoDB
MONGODB_URI=your_mongodb_connection_string

# Google AI API (Gemma 3 4B)
GEMINI_API_KEY=your_google_api_key
GOOGLE_API_KEY=your_google_api_key

# Admin Authentication
ADMIN_USERNAME=your_admin_username
ADMIN_PASSWORD=your_admin_password
ADMIN_JWT_SECRET=your_jwt_secret

# External APIs
PEXELS_API_KEY=your_pexels_key
YOUTUBE_API_KEY=your_youtube_key

🤖 AI Features

TrekConnect leverages Google's Genkit framework with Gemma 3 4B for powerful AI capabilities:

  • Destination Recommendations: Personalized trek suggestions based on preferences
  • Route Planning: Custom trek routes generated using AI
  • Content Filtering: AI-powered search and destination filtering
  • Travel Suggestions: Smart recommendations based on user history and preferences

📱 Responsive Design

  • Mobile First: Optimized for mobile devices
  • Tablet Support: Enhanced experience on tablets
  • Desktop: Full-featured desktop interface
  • Large Screens: Specialized layouts for large displays

🔒 Security Features

  • Firebase Authentication: Secure user authentication
  • Protected Routes: Route-level access control
  • Input Validation: Comprehensive form validation
  • XSS Protection: Built-in security measures

🚀 Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Connect your repository to Vercel
  3. Configure environment variables
  4. Deploy automatically

Firebase Hosting

npm run build
firebase deploy

📝 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
  4. Run tests: npm run typecheck && npm run lint
  5. Commit: git commit -m 'Add amazing feature'
  6. Push: git push origin feature/amazing-feature
  7. Open a Pull Request

📄 License

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

🙏 Acknowledgments

📞 Support


Made with ❤️ by the TrekConnect Team

Happy Trekking! 🏔️

About

A modern, AI-powered travel application connecting trekkers worldwide.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages