Skip to content

Latest commit

 

History

History
276 lines (206 loc) · 12.2 KB

File metadata and controls

276 lines (206 loc) · 12.2 KB

🌍 YourTripPlanner

YourTripPlanner is a comprehensive travel discovery and planning platform designed to help users explore popular Indian tourist destinations with ease. The platform includes smart destination filtering, an AI-powered travel assistant, real-time features, and expense tracking tools, making travel planning simple, fun, and interactive.

Thanks Banner Typing SVG

📊 Project Insights

🌟 Stars 🍴 Forks 🐛 Issues 🔔 Open PRs 🔕 Closed PRs 🛠️ Languages 👥 Contributors
Stars Forks Issues Open PRs Closed PRs Languages Count Contributors Count

✨ Features

  • 🗺️ Destination Discovery & Smart Filtering: Browse a curated list of popular Indian cities beautifully themed with cultural emojis. Instantly filter destinations by region (North, South, East, West).
  • 🤖 AI Travel Assistant: Powered by Google Gemini 2.0 Flash, get personalized travel suggestions, routes, and local insights via a fast, real-time chat interface.
  • 📅 AI-Powered Custom Itinerary: Generate day-wise personalized itineraries and download them as multi-day PDFs for offline use.
  • 💰 Expense Tracking & Visualizations: Keep tabs on your travel budget with interactive charts and trackers.
  • Real-Time Capabilities: Built with WebSockets for real-time interactions.

💻 Tech Stack

Frontend:

  • React.js – Component-based architecture
  • TailwindCSS & CSS Flexbox – Responsive and modern styling
  • Framer Motion & GSAP – Smooth UI animations
  • Chart.js & Recharts – Interactive expense visualizations

Backend:

  • Node.js & Express – Scalable API service
  • MongoDB & Mongoose – Database management
  • Socket.io – Real-time event communication

AI & Integrations:

  • Google Gemini 2.0 Flash – Generative AI for itineraries and chat
  • Firebase & Passport.js – Authentication handling

-----------------------------------------------------

System Architecture

1. System Integration Flow

graph TD
    subgraph Client_Side
        A[React Frontend] --> B[Framer Motion / GSAP]
        A --> C[Chart.js / Recharts]
    end
    
    subgraph Server_Side
        D[Node/Express API]
        E[Socket.io]
    end

    subgraph External_Services
        F[Google Gemini 2.0 Flash]
        G[(MongoDB / Mongoose)]
        H[Firebase/Passport Auth]
    end

    A <-->|REST API| D
    A <-->|WebSockets| E
    D <--> G
    D <--> F
    D <--> H
Loading

2. AI Itinerary Generation Sequence

sequenceDiagram
    participant U as User
    participant FE as React UI
    participant BE as Express Server
    participant AI as Gemini AI
    participant PDF as PDF Generator

    U->>FE: Input Travel Preferences
    FE->>BE: POST /api/generate-itinerary
    BE->>AI: Process Prompt (Gemini 2.0 Flash)
    AI-->>BE: Return Structured Itinerary
    BE->>PDF: Format Data to PDF
    PDF-->>FE: Send Download Link
    FE-->>U: Download Itinerary PDF
Loading

-----------------------------------------------------

📂 Project Structure

trip-planner/
├── public/                # Static files (HTML, images, favicon)
├── src/                   # Core React frontend source code
│   ├── Components/        # Reusable UI components (Navbar, Footer, Cards)
│   ├── pages/             # React pages (Home, Signup, PlanTrip, etc.)
│   └── index.js           # Entry point for React application
├── backend/               # Node/Express backend server & APIs
├── .vscode/               # Editor-specific workspace settings
├── GEMINI_SETUP.md        # AI Configuration guide
├── CONTRIBUTING.md        # Detailed contribution guidelines
└── README.md              # Project overview

-----------------------------------------------------

🚀 Getting Started

Follow these instructions to set up the project locally.

1. Clone the repository:

git clone https://github.com/code-well0/trip-planner.git
cd trip-planner

2. Install dependencies:

Open a terminal in the root directory and install the React dependencies:

npm install

Start the development server:

npm start

3. Backend Setup: Open a new terminal window, navigate to the backend folder, and install its dependencies:

cd backend
npm install

Start the backend server:

npm start

4. Configuration:

To configure the Gemini AI Assistant, refer to:

-----------------------------------------------------

Open Source Programmes

This project is now OFFICIALLY accepted for:

GSSoC 2025 DSCWoC'26

Contributing

We welcome contributions from everyone, especially participants of GSSoC’25!

To contribute:

  1. Fork the repository and Clone your fork
  2. Create a new branch: git checkout -b feature-name
  3. Make your changes and commit: git commit -m "Added new feature"
  4. Push to your fork: git push origin feature-name
  5. Open a Pull Request

For detailed instructions and community standards, please check our CONTRIBUTING.md and Code of Conduct.

-----------------------------------------------------

Acknowledgements

  • Thanks to all contributors of this project
  • Special shoutout to GSSoC and DSCWoC for the amazing community and support!
  • Built with dedication, collaboration, and lots of chai

Thank you once again to all our contributors who has contributed to trip-planner! Your efforts are truly appreciated.

Show some Red Heart by starring this awesome repository!

Suggestions & Feedback

Feel free to open issues or discussions if you have any feedback, feature suggestions, or want to collaborate!

Support & Star

If you find this project helpful, please give it a star to support more such educational initiatives!

📄 License

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

🧑‍💻 Maintainers & Acknowledgements

Shubrali jain
Shubrali Jain (Project Admin)

Glowing Star Give us a Star and let's make magic! Glowing Star

Mirror Ball

👨‍💻 Built with ❤️ by trip-planner Team

❤️ Shubrali jain and Contributors ❤️

Open an Issue | Watch Demo

⬆️ Back to Top

"Travel is the only thing you buy that makes you richer." Ready to show off your coding achievements? Get started with trip-planner today! 🚀