Ββ Please star and fork this repository and join our discussions to help make this project even better!
![]()
GSSoC is a 3-month long Open Source program conducted by GirlScript Foundation. It brings together students, developers, and organizations to contribute to meaningful open-source projects while promoting diversity in tech.
OSCI is an initiative aimed at promoting open source development in India. It brings together developers from across the country to collaborate on innovative projects and enhance India's presence in the global open source ecosystem.
Trip Planner is a modern, AI-powered travel planning web application built with React and Node.js. It helps travelers effortlessly create personalized itineraries, discover top destinations, book accommodations, and connect with fellow travelers. The platform features an interactive chatbot for recommendations, a friend-finding system, and an admin dashboard for property managementβmaking it your one-stop solution for seamless travel experiences.
- Modern Glass-Morphism UI: Beautiful, modern design with glass-morphism effects
- Professional Logo: Custom SVG compass logo representing travel planning
- Mobile-First Navigation: Responsive navbar with auto-close functionality
- Optimized Performance: Cleaned codebase with 56% fewer dependencies
- Enhanced UX: Seamless navigation and improved user experience
- Improved Error Handling: Standardized error handling across components with consistent UI for error states
- Added Authentication System: Implemented login and signup functionality with MongoDB database
- Network Status Detection: Added network status bar to notify users when offline
- Standardized API Responses: Consistent API response format for better error handling
Note: The application uses MongoDB for data storage and a custom authentication system. The frontend is optimized with modern CSS techniques and responsive design.
- Node.js (v18+ recommended)
- npm (v9+ recommended)
- MongoDB (local or MongoDB Atlas)
git clone <your-repo-url>
cd react_appcd client
npm installcd ../server
npm installcd ../client
npm run devVisit the app at: http://localhost:5173
Open a new terminal and run:
cd server
npm run dev # or node server.jsThe backend will run at http://localhost:5000
Both client and server directories contain .env.sample and .env.example files with all required variables:
# Copy sample files to create your environment configuration
cp client/.env.sample client/.env
cp server/.env.example server/.envFor easier server environment configuration, we've created a helpful setup script:
cd server
npm run setup-envThis interactive script will:
- Guide you through setting up all required environment variables
- Generate secure random values for secrets like JWT_SECRET
- Use default values where appropriate
- Check for any missing critical variables
For more information about environment setup, see server/ENV_SETUP.md.
Edit server/.env with your actual values:
# MongoDB Database Configuration (Required)
MONGODB_URI=mongodb://localhost:27017/tripPlannerDB
# Or for MongoDB Atlas:
# MONGODB_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/tripPlannerDB
# JWT Secret for Authentication
JWT_SECRET=your_jwt_secret_key_here
JWT_EXPIRES_IN=7d
# API Keys (Required for full functionality)
PEXELS_API_KEY=your_pexels_api_key_here
# Server Configuration
PORT=5000
NODE_ENV=developmentEdit client/.env with your actual values:
# Weather API (Required for weather functionality)
VITE_WEATHER_API_KEY=your_openweather_api_key_here
# Backend API URL
VITE_API_BASE_URL=http://localhost:5000πΈ Pexels API (Required for Images):
- Visit Pexels API
- Sign up for a free account
- Get your API key from the dashboard
- Add to
server/.envasPEXELS_API_KEY
π€οΈ OpenWeatherMap API (Required for Weather):
- Visit OpenWeatherMap API
- Sign up for a free account
- Get your API key from the dashboard
- Add to
client/.envasVITE_WEATHER_API_KEY
ποΈ MongoDB Database Setup:
-
Option 1: Local MongoDB Installation
- Install MongoDB Community Edition from MongoDB Download Center
- Start the MongoDB service
- Create a database named
tripPlannerDB - Set
MONGODB_URI=mongodb://localhost:27017/tripPlannerDBinserver/.env
-
Option 2: MongoDB Atlas (Cloud Service)
- Create a free account on MongoDB Atlas
- Set up a new cluster
- Create a database user and get your connection string
- Set
MONGODB_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/tripPlannerDBinserver/.env
π Security Note: Never commit
.envfiles to version control. The.env.samplefiles are templates - your actual.envfiles with real credentials should remain local only.Add
.envto your.gitignorefile to prevent accidental commits:# Ignore environment variable files .env
For GSSoC Contributors:
Option 1: Use Shared API Key (Recommended for GSSoC)
- Use the existing API key provided by the project maintainer
- Add the shared API key to the
.envfile asPIXELS_API_KEY - This is the recommended approach for GSSoC contributors
- Note: Rate limits are shared across all contributors
Option 2: Get Your Own API Key (Optional)
- Sign up at Pixels API to get your own API key
- Add your personal API key to the
.envfile asPIXELS_API_KEY - Benefits: Higher rate limits, no sharing with other users
- Free tier available with limited requests per month
- Use this if you plan to work extensively on image-related features
API Usage:
- The API is used for high-quality travel destination images
- Rate limits: Check Pixels API documentation for current limits
- Images are cached to minimize API calls
Note:
- For MongoDB connection: The application uses
server/config/db.jsto connect to your MongoDB database using the connection string in your.envfile.- For local development: Ensure your MongoDB server is running before starting the application.
- For MongoDB Atlas: Make sure your IP address is whitelisted in the Atlas dashboard.
- The application uses a custom JWT-based authentication system, no external auth provider setup required.
- Keep your API keys and database credentials secure and never commit them to version control.
| Home Page | Places | Find Friends | Admin Dashboard |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
react_app/
βββ π± client/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Application pages
β β βββ images/ # Static images
β β βββ utils/ # Utility functions
β βββ site_images_/ # Screenshots for documentation
βββ π₯οΈ server/ # Node.js backend
β βββ config/ # Database configuration
β βββ controllers/ # API controllers
β βββ middleware/ # Custom middleware
β βββ routes/ # API routes
βββ π docs/ # Documentation files
Key Directories:
client/src/components/- Navigation, Footer, PlaceCard, Chatbot, etc.client/src/pages/- Home, Places, FindFriends, Admin, Auth pagesserver/- Express.js API with MongoDB integrationsite_images_/- Application screenshots and documentation assets
We welcome all contributionsβbig or small! See Contributing.md for guidelines and join discussion to share your ideas.
- Report bugs or UI issues
- Suggest and implement new features
- Improve code structure or performance
- Enhance UI/UX design
- Update documentation
- Code Reviews: Help review PRs from other contributors
- Issue Triage: Help categorize and prioritize open issues
- Documentation: Improve README, add code comments, or create tutorials
- Testing: Write and improve test coverage
- Design: Suggest UI/UX improvements with mockups
- GSSoC 2025: If you're participating in GSSoC, check our labeled issues and mention your participation in PRs
- OSCI 2025: OSCI participants can focus on documentation improvements and accessibility features
- Pair Programming: Connect with maintainers for pair programming sessions
- First-time Contributors: Look for "good first issue" labels to get started
- Ask questions in GitHub discussions before starting major changes
- Share your progress in weekly community discussions.
For complete guidelines, see our detailed Contributing.md document.
| Feature | Description |
|---|---|
| π§ Smarter AI Chatbot | Enhanced NLP for smarter query handling. |
| π± Mobile App | Native mobile app support. |
| π€ Social Integration | Google/Facebook login and trip sharing. |
| π¬ Real-time Chat | Live chat among travelers. |
| π Geolocation Suggestions | Destinations based on userβs real-time location. |
| π Reward System | Badges and rewards for active users. |
| π¦ PWA Support | Progressive Web App/offline access. |
| π§³ Travel Budget Planner | Tool for managing travel expenses. |
| π¨ Advanced UI Features | More animations, themes, and customization options. |
| π Advanced Search | Filter by price, rating, location, and amenities. |
This project is licensed under the ISC License.
- Modern Glass-Morphism Design: Beautiful translucent effects and gradients
- Professional Logo: Custom SVG compass logo representing travel planning
- Mobile-First Navigation: Responsive navbar with auto-close functionality
- Enhanced Animations: Smooth transitions and hover effects
- Consistent Theming: Unified color scheme and styling
- Removed Dead Code: Eliminated unused components and imports
- Simplified Architecture: Streamlined component structure
- Better Organization: Cleaner file structure and naming conventions
- TypeScript Optimization: Improved type safety and development experience
- Faster Development: Reduced build times and dependency conflicts
- Cleaner IDE: No unused files cluttering the workspace
- Better Debugging: Simplified codebase for easier troubleshooting
- Maintainable Code: Well-structured and documented components
Contributors can find more information in the Contributing Guide.
Made with β€οΈ for travelers everywhere!





