TourBuddy is a comprehensive web platform that facilitates group travel by connecting travelers, sharing experiences, and enabling collaborative trip planning. The platform allows users to list and review destinations they've visited, helping others make informed travel decisions.
-
User Authentication
- Email-based registration with verification
- Google OAuth integration
- Secure login system
-
Travel Communities
- Create and join travel groups
- Real-time discussion forums using Socket.io
- Like/dislike message system
-
Destination Management
- Add and browse travel destinations
- Multiple image uploads via Cloudinary
- Interactive maps with Mapbox integration
-
AI-Powered Features
- Automatic place descriptions using Google's Gemini AI
- Smart content generation
-
Review System
- Comprehensive rating and review functionality
- User feedback on destinations
-
Weather Information
- Real-time weather data for destinations
- Powered by OpenWeather API
-
Backend
- Node.js
- Express.js
- MongoDB (with Mongoose)
- Socket.io for real-time communication
-
Frontend
- EJS (Embedded JavaScript templates)
- JavaScript
-
Authentication
- Passport.js
- JWT
- Google OAuth 2.0
-
APIs
- Google Gemini AI
- Mapbox
- OpenWeather
- Cloudinary
- Node.js (v20.14.0 or higher)
- MongoDB
- API keys for:
- Google Gemini AI
- Mapbox
- OpenWeather
- Cloudinary
- Google OAuth
-
Clone the repository bash git clone https://github.com/yourusername/TourBuddy.git cd TourBuddy
-
Install dependencies bash npm install
-
Create a .env file in the root directory with the following variables
NODE_ENV=development ATLAS_DB_URL=your_mongodb_connection_string SESSION_SECRET=your_session_secret # Google OAuth GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret CALL_BACK_URI=your_callback_uri # Cloudinary CLOUD_NAME=your_cloudinary_name CLOUD_API_KEY=your_cloudinary_api_key CLOUD_API_SECRET=your_cloudinary_api_secret # Mapbox MAP_TOKEN=your_mapbox_token # Weather API WEATHER_API_KEY=your_openweather_api_key # Google Gemini AI GEMINI_AI_API_KEY=your_gemini_api_key # Email (for verification) GMAIL_USER=your_gmail_address GMAIL_PASS=your_gmail_app_password -
Start the server bash node app.js
-
Access the application Open your browser and navigate to http://localhost:3000
- Register with email (verification required)
- Login with email or Google account
- Manage your profile
- Browse destinations added by the community
- View detailed information, images, and location on map
- Check real-time weather information
- Share your travel experiences by adding new destinations
- Upload multiple images
- Provide detailed descriptions or use AI to generate them
- Join discussion forums based on travel categories
- Engage in real-time conversations with other travelers
- Like/dislike messages to show agreement or disagreement
- Rate places you've visited
- Write detailed reviews to help other travelers
- Read reviews from other community members
We welcome contributions to TourBuddy! If you'd like to contribute, please:
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or suggestions, please feel free to reach out to the project maintainers.