A modern, AI-powered travel application connecting trekkers worldwide
Demo β’ Documentation β’ API Reference β’ Contributing
- 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
- 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
- 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
- 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
- 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
- Comprehensive profile customization
- Showcase your trekking experience and skills
- Manage your travel wishlist and history
- Privacy controls and account management
- Framework: Next.js 15.3 with App Router
- Language: TypeScript 5.8
- Styling: Tailwind CSS 3.4 + ShadCN UI
- Animations: Framer Motion 12.18
- Icons: Lucide React
- Authentication: Firebase Auth
- Database: Firebase Realtime Database + MongoDB
- AI/ML: Google Genkit with Gemma 3 4B
- External APIs: Pexels, YouTube Data API v3
- Build Tool: Turbopack
- Linting: ESLint with Next.js config
- Type Checking: TypeScript strict mode
- Package Manager: npm/yarn
- Node.js 18.0.0 or later
- npm 9.0.0 or later (or yarn 1.22.0+)
- Git for version control
-
Clone the repository
git clone https://github.com/XploitMonk0x01/TrekConnect.git cd TrekConnect -
Install dependencies
npm install # or yarn install -
Environment Setup
# Copy the example environment file cp .env.example .env.local # Edit the .env.local file with your API keys
-
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
-
Access the application
- Main app: http://localhost:9002
- Genkit UI: Check terminal output for Genkit URL
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
| 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 |
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_keyTrekConnect 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
- Mobile First: Optimized for mobile devices
- Tablet Support: Enhanced experience on tablets
- Desktop: Full-featured desktop interface
- Large Screens: Specialized layouts for large displays
- Firebase Authentication: Secure user authentication
- Protected Routes: Route-level access control
- Input Validation: Comprehensive form validation
- XSS Protection: Built-in security measures
- Push your code to GitHub
- Connect your repository to Vercel
- Configure environment variables
- Deploy automatically
npm run build
firebase deployWe 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
- Run tests:
npm run typecheck && npm run lint - Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js Team for the amazing framework
- Firebase for backend services
- Google Genkit for AI capabilities
- ShadCN UI for beautiful components
- Pexels for high-quality images
- π§ Email: support@trekconnect.com
- π¬ Discord: Join our community
- π Issues: GitHub Issues
Made with β€οΈ by the TrekConnect Team
Happy Trekking! ποΈ