[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82121":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":14,"size":14,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":14,"forks30d":14,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},82121,"Travel-Plans-","hitesh-kumar123\u002FTravel-Plans-","hitesh-kumar123"," PackGo: Your ultimate travel companion. Built with React, Redux, Node.js & MongoDB to seamlessly plan trips, track budgets, check weather, and organize bookings in one intuitive dashboard.",null,"https:\u002F\u002Fgithub.com\u002Fhitesh-kumar123\u002FTravel-Plans-","JavaScript",72,282,0,271,4,16,33,12,7.36,false,"main","2026-06-12 02:04:23","\u003Cdiv align=\"center\">\n\n# ✈️ PackGo — Smart Travel Planner\n\n\u003Cimg src=\"assets\u002Flanding_page.png\" alt=\"PackGo Landing Page\" width=\"100%\" style=\"border-radius: 12px;\" \u002F>\n\n\u003Cbr \u002F>\n\n[![MERN Stack](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FStack-MERN-61DAFB?style=for-the-badge&logo=react&logoColor=white)](https:\u002F\u002Freactjs.org\u002F)\n[![Node.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNode.js-18+-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)](https:\u002F\u002Fnodejs.org\u002F)\n[![MongoDB](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMongoDB-Atlas-47A248?style=for-the-badge&logo=mongodb&logoColor=white)](https:\u002F\u002Fwww.mongodb.com\u002Fcloud\u002Fatlas)\n[![Material UI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMUI-v6-007FFF?style=for-the-badge&logo=mui&logoColor=white)](https:\u002F\u002Fmui.com\u002F)\n[![CI Pipeline](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FDebasmitaBose0\u002FTravel-Plans-\u002Fci.yml?branch=main&style=for-the-badge&label=Build%20Check)](https:\u002F\u002Fgithub.com\u002FDebasmitaBose0\u002FTravel-Plans-\u002Factions)\n[![Security Scan](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSecurity-Audit--Audit-brightgreen?style=for-the-badge&logo=github-actions)](https:\u002F\u002Fgithub.com\u002FDebasmitaBose0\u002FTravel-Plans-\u002Factions)\n\n\u003Cbr \u002F>\n\n> **Plan trips. Track expenses. Check weather. Translate languages. Book flights & hotels.**  \n> All in one beautiful, full-stack travel companion.\n\n\u003Cbr \u002F>\n\n[🚀 Live Demo](#-live-demo) · [📖 Docs](docs\u002FAPI_DOCUMENTATION.md) · [🐛 Report Bug](..\u002F..\u002Fissues) · [✨ Request Feature](..\u002F..\u002Fissues)\n\n\u003C\u002Fdiv>\n\n---\n\n## 📑 Table of Contents\n\n- [🌍 Overview](#-overview)\n- [📸 Screenshots](#-screenshots)\n- [✨ Features](#-features)\n- [🛠️ Tech Stack](#️-tech-stack)\n- [📁 Project Structure](#-project-structure)\n- [🚀 Getting Started](#-getting-started)\n- [🔑 Environment Variables](#-environment-variables)\n- [📡 API Endpoints](#-api-endpoints)\n- [🗄️ Database Models](#️-database-models)\n- [🔒 Security Features](#-security-features)\n- [🎨 Design Highlights](#-design-highlights)\n- [🔮 Future Enhancements](#-future-enhancements)\n- [🤝 Contributing](#-contributing)\n- [📄 License](#-license)\n- [👥 Mentors](#-mentors)\n- [👤 Author](#-author)\n\n---\n\n## 🌍 Overview\n\n**PackGo** is a production-ready, full-stack travel planning application built with the **MERN** stack (MongoDB, Express.js, React 19, Node.js). It consolidates every tool a traveller needs — itinerary management, expense tracking, real-time weather, live language translation, and flight & hotel search — into a single, polished web application.\n\nWhether you're planning a weekend getaway or a month-long adventure, PackGo keeps all your travel data organised, secure, and accessible from any device.\n\n---\n\n## 📸 Screenshots\n\n### 🏠 Landing Page & Dashboard\n\n|               Landing Page               |             Dashboard              |\n| :--------------------------------------: | :--------------------------------: |\n| ![Landing Page](assets\u002Flanding_page.png) | ![Dashboard](assets\u002Fdashboard.png) |\n\n### 🗺️ Trip Detail & Expense Tracker\n\n|              Trip Detail               |                Expense Tracker                 |\n| :------------------------------------: | :--------------------------------------------: |\n| ![Trip Detail](assets\u002Ftrip_detail.png) | ![Expense Tracker](assets\u002Fexpense_tracker.png) |\n\n### 🌤️ Weather Forecast & Live Translator\n\n|                 Weather Forecast                 |                Live Translator                 |\n| :----------------------------------------------: | :--------------------------------------------: |\n| ![Weather Forecast](assets\u002Fweather_forecast.png) | ![Live Translator](assets\u002Flive_translator.png) |\n\n---\n\n## ✨ Features\n\n### 🗺️ Trip Management\n\n- Create, edit, and delete trips with **destination autocomplete**\n- Status tracking — `Planned` · `Ongoing` · `Completed`\n- Destination images fetched automatically from the seeded catalogue\n- Per-trip budget allocation\n\n### 💰 Expense Tracker\n\n- Log expenses by category — `Food` · `Transport` · `Accommodation` · `Activities` · `Shopping`\n- Budget utilization **progress bar** with overspend alerts\n- Category-wise breakdown with **interactive pie charts** (Recharts)\n- **Export expenses to CSV** for offline records\n\n### 🌤️ Weather Forecast\n\n- Real-time weather powered by **OpenWeatherMap API**\n- 5-day forecast with weather condition icons\n- Smart travel tips based on temperature & conditions\n\n### 🌐 Live Translator\n\n- Instant translation via **Google Translate API** (`google-translate-api-x`) — no API key needed\n- **28+ languages** including Hindi, Spanish, French, Japanese, Arabic\n- Auto language detection\n- Common travel phrases quick-select\n- Copy to clipboard with one click\n\n### ✈️ Flight & Hotel Booking\n\n- Search flights by origin, destination, and dates\n- Search hotels by location, check-in\u002Fcheck-out, and guests\n- Visual flight timeline with airline info and pricing\n- Hotel cards with ratings, amenities, and booking CTA\n- _(Currently uses mock data — designed for real API integration)_\n\n### 🔐 Authentication & Security\n\n- **JWT-based** authentication with token auto-refresh\n- Secure password hashing with **bcryptjs**\n- Protected routes with middleware guard\n- Profile management and password change\n- Security headers via **Helmet** + API rate limiting\n\n### 📊 Dashboard Analytics\n\n- Trip statistics — Total, Completed, Planned, Budget overview\n- Total spending analytics across all trips\n- **Monthly trip distribution** bar chart (Recharts)\n- Quick action cards for navigation\n- Upcoming trip cards with status badges\n\n---\n\n## 🛠️ Tech Stack\n\n### Frontend\n\n| Technology                  | Version | Purpose                                    |\n| --------------------------- | ------- | ------------------------------------------ |\n| **React**                   | 19      | Component-based UI framework               |\n| **Redux + Redux-Thunk**     | 5 \u002F 3   | Global state management with async actions |\n| **React Router**            | v7      | Client-side routing with nested layouts    |\n| **Material-UI (MUI)**       | v6      | Pre-built UI components and theming        |\n| **Recharts**                | 3       | Bar & Pie chart data visualizations        |\n| **Axios**                   | 1       | HTTP client with JWT interceptors          |\n| **React-Toastify**          | 11      | Toast notification system                  |\n| **Leaflet \u002F React-Leaflet** | 1.9 \u002F 5 | Interactive maps                           |\n\n### Backend\n\n| Technology                 | Version | Purpose                               |\n| -------------------------- | ------- | ------------------------------------- |\n| **Node.js**                | 18+     | JavaScript runtime                    |\n| **Express.js**             | 4       | REST API server                       |\n| **MongoDB + Mongoose**     | Atlas   | NoSQL database with schema validation |\n| **jsonwebtoken**           | —       | Token-based authentication            |\n| **bcryptjs**               | —       | Password hashing                      |\n| **Helmet**                 | —       | Security HTTP headers                 |\n| **express-rate-limit**     | —       | API rate limiting (100 req \u002F 15 min)  |\n| **google-translate-api-x** | —       | Free Google Translate integration     |\n| **cors**                   | —       | Cross-origin resource sharing         |\n| **dotenv**                 | —       | Environment variable management       |\n\n---\n\n## 📁 Project Structure\n\n```\ntravel-planner\u002F\n├── assets\u002F                          # README screenshots\n│   ├── landing_page.png\n│   ├── dashboard.png\n│   ├── trip_detail.png\n│   ├── expense_tracker.png\n│   ├── weather_forecast.png\n│   └── live_translator.png\n│\n├── client\u002F                          # ⚛️ React Frontend\n│   └── src\u002F\n│       ├── components\u002F\n│       │   └── PrivateRoute.js      # Auth route guard\n│       ├── pages\u002F\n│       │   ├── Home.js              # Landing page\n│       │   ├── Login.js             # Login with image carousel\n│       │   ├── Register.js          # Multi-step registration\n│       │   ├── Dashboard.js         # Dashboard layout + sidebar\n│       │   ├── NotFound.js          # 404 page\n│       │   └── dashboard\u002F\n│       │       ├── DashboardHome.js  # Analytics overview\n│       │       ├── TripsView.js      # Trip list + create modal\n│       │       ├── TripDetail.js     # Trip detail + expenses\n│       │       ├── ExpensesView.js   # Expense tracker + pie chart\n│       │       ├── BookingView.js    # Flight & hotel search\n│       │       ├── WeatherView.js    # Weather forecast\n│       │       ├── TranslatorView.js # Live translator\n│       │       └── ProfileView.js    # Profile & password\n│       ├── redux\u002F\n│       │   ├── store.js\n│       │   ├── actions\u002F             # Async thunk actions\n│       │   ├── reducers\u002F            # State reducers\n│       │   └── types\u002F               # Action type constants\n│       ├── services\u002F\n│       │   └── api.js               # Axios instance + interceptors\n│       ├── theme.js                 # MUI custom theme (Poppins)\n│       ├── App.js                   # Root component + routes\n│       └── index.js                 # Entry point\n│\n├── server\u002F                          # 🟢 Express Backend\n│   ├── controllers\u002F\n│   │   ├── authController.js        # Register, login, profile\n│   │   ├── tripController.js        # Trip CRUD\n│   │   ├── expenseController.js     # Expense CRUD + aggregation\n│   │   ├── weatherController.js     # OpenWeatherMap integration\n│   │   ├── translatorController.js  # Google Translate integration\n│   │   └── bookingController.js     # Flight & hotel (mock)\n│   ├── models\u002F\n│   │   ├── User.js                  # User schema + password methods\n│   │   ├── Trip.js                  # Trip schema with nested objects\n│   │   ├── Expense.js               # Expense schema linked to trips\n│   │   └── Destination.js           # Destination catalogue schema\n│   ├── routes\u002F                      # Express route declarations\n│   ├── middleware\u002F\n│   │   ├── auth.js                  # JWT verification middleware\n│   │   └── errorHandler.js          # Global error handler\n│   ├── data\u002F\n│   │   ├── seed.js                  # Database seeder\n│   │   └── cleanAndSeed.js          # Clean + reseed script\n│   └── server.js                    # Express app entry point\n│\n├── .env.example                     # Environment variable template\n├── .gitignore\n├── CODE_OF_CONDUCT.md\n├── CONTRIBUTING.md\n├── LICENSE\n└── README.md\n```\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n\nMake sure you have the following installed:\n\n- **Node.js** v18 or higher → [Download](https:\u002F\u002Fnodejs.org\u002F)\n- **MongoDB** (local) or a free **MongoDB Atlas** cluster → [Get Atlas](https:\u002F\u002Fwww.mongodb.com\u002Fcloud\u002Fatlas)\n- **npm** (bundled with Node.js)\n- **OpenWeatherMap API Key** (free) → [Get Key](https:\u002F\u002Fopenweathermap.org\u002Fapi)\n\n---\n\n### 1. Clone the Repository\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fhitesh-kumar123\u002FTravel-Plans-.git\ncd travel-planner\n```\n\n### 2. Install Dependencies\n\n> ⚠️ **Important:**  \n> This repository uses separate frontend (`client`) and backend (`server`) environments.\n>\n> Running commands like:\n>\n> ```bash\n> npm run dev\n> ```\n>\n> from the root directory will result in a missing script error.\n>\n> Please install dependencies and run scripts separately inside the `client` and `server` directories.\n\n```bash\n# Install backend dependencies\ncd server\nnpm install\n\n# Install frontend dependencies\ncd ..\u002Fclient\nnpm install\n```\n\n### 3. Configure Environment Variables\n\nCopy the example file and fill in your values:\n\n```bash\ncp .env.example server\u002F.env\n```\n\nOpen `server\u002F.env` and update:\n\n```env\nPORT=5000\nMONGO_URI=mongodb+srv:\u002F\u002F\u003Cusername>:\u003Cpassword>@cluster.mongodb.net\u002Ftravel-planner\nJWT_SECRET=your_super_secret_jwt_key_here\nWEATHER_API_KEY=your_openweathermap_api_key\n```\n\n> **💡 Tip:** The translator uses `google-translate-api-x` — **no API key required!**  \n> Get your free weather key at [openweathermap.org\u002Fapi](https:\u002F\u002Fopenweathermap.org\u002Fapi).\n\n### 4. Seed the Database _(Optional but Recommended)_\n\n```bash\ncd server\nnode data\u002Fseed.js\n```\n\nThis populates the `destinations` collection with sample travel destinations and images for destination autocomplete.\n\n### 5. Run the Application\n\nOpen **two separate terminals**:\n\n```bash\n# Terminal 1 — Backend (http:\u002F\u002Flocalhost:5000)\ncd server\nnpm run dev\n```\n\n```bash\n# Terminal 2 — Frontend (http:\u002F\u002Flocalhost:3000)\ncd client\nnpm start\n```\n\nThen open your browser at **[http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000)** 🎉\n\n---\n\n## 🔑 Environment Variables\n\n| Variable          | Required | Description                                                        |\n| ----------------- | :------: | ------------------------------------------------------------------ |\n| `PORT`            |    ✅    | Port for the Express server (default: `5000`)                      |\n| `MONGO_URI`       |    ✅    | MongoDB connection string (local or Atlas)                         |\n| `JWT_SECRET`      |    ✅    | Secret key for signing JWT tokens (use a long random string)       |\n| `WEATHER_API_KEY` |    ✅    | Your free OpenWeatherMap API key                                   |\n| `SMTP_HOST`       |    ❌    | SMTP server host for sending emails (ethereal fallback if omitted) |\n| `SMTP_PORT`       |    ❌    | SMTP server port (default: `587`)                                  |\n| `SMTP_SECURE`     |    ❌    | Use SSL\u002FTLS (`true` or `false`, default: `false`)                  |\n| `SMTP_USER`       |    ❌    | SMTP authentication username credential                            |\n| `SMTP_PASS`       |    ❌    | SMTP authentication password credential                            |\n| `FROM_EMAIL`      |    ❌    | Custom sender email address (default: `noreply@packgo.com`)        |\n| `FROM_NAME`       |    ❌    | Custom sender display name (default: `PackGo`)                     |\n\n---\n\n## 📡 API Endpoints\n\nBase URL: `http:\u002F\u002Flocalhost:5000\u002Fapi`\n\n### 🔐 Authentication\n\n| Method | Endpoint                     | Description                                      | Auth |\n| ------ | ---------------------------- | ------------------------------------------------ | :--: |\n| `POST` | `\u002Fauth\u002Fregister`             | Register a new user                              |  ❌  |\n| `POST` | `\u002Fauth\u002Flogin`                | Login and receive JWT token                      |  ❌  |\n| `GET`  | `\u002Fauth\u002Fprofile`              | Get current user profile                         |  ✅  |\n| `PUT`  | `\u002Fauth\u002Fprofile`              | Update user profile                              |  ✅  |\n| `PUT`  | `\u002Fauth\u002Fchange-password`      | Change password                                  |  ✅  |\n| `POST` | `\u002Fauth\u002Frequest-email-change` | Initiate profile email update                    |  ✅  |\n| `POST` | `\u002Fauth\u002Fverify-email-change`  | Confirm and execute pending profile email change |  ✅  |\n| `POST` | `\u002Fauth\u002Fdiscard-email-change` | Cancel and discard pending profile email change  |  ✅  |\n| `GET`  | `\u002Fauth\u002Femail-change-status`  | Query active profile email change status details |  ✅  |\n\n### 🗺️ Trips\n\n| Method   | Endpoint     | Description                          | Auth |\n| -------- | ------------ | ------------------------------------ | :--: |\n| `POST`   | `\u002Ftrips`     | Create a new trip                    |  ✅  |\n| `GET`    | `\u002Ftrips`     | Get all trips for the logged-in user |  ✅  |\n| `GET`    | `\u002Ftrips\u002F:id` | Get a trip by ID                     |  ✅  |\n| `PUT`    | `\u002Ftrips\u002F:id` | Update a trip                        |  ✅  |\n| `DELETE` | `\u002Ftrips\u002F:id` | Delete a trip                        |  ✅  |\n\n### 💰 Expenses\n\n| Method   | Endpoint                    | Description                       | Auth |\n| -------- | --------------------------- | --------------------------------- | :--: |\n| `GET`    | `\u002Fexpenses`                 | Get all user expenses (analytics) |  ✅  |\n| `POST`   | `\u002Fexpenses`                 | Create a new expense              |  ✅  |\n| `GET`    | `\u002Fexpenses\u002Ftrip\u002F:tripId`    | Get expenses for a specific trip  |  ✅  |\n| `GET`    | `\u002Fexpenses\u002F:id`             | Get expense by ID                 |  ✅  |\n| `PUT`    | `\u002Fexpenses\u002F:id`             | Update an expense                 |  ✅  |\n| `DELETE` | `\u002Fexpenses\u002F:id`             | Delete an expense                 |  ✅  |\n| `GET`    | `\u002Fexpenses\u002Fsummary\u002F:tripId` | Category-wise expense summary     |  ✅  |\n\n### 🌤️ Weather\n\n| Method | Endpoint                      | Description                | Auth |\n| ------ | ----------------------------- | -------------------------- | :--: |\n| `GET`  | `\u002Fweather\u002Fcurrent\u002F:location`  | Current weather for a city |  ❌  |\n| `GET`  | `\u002Fweather\u002Fforecast\u002F:location` | 5-day weather forecast     |  ❌  |\n\n### 🌐 Translator\n\n| Method | Endpoint                | Description                      | Auth |\n| ------ | ----------------------- | -------------------------------- | :--: |\n| `POST` | `\u002Ftranslator\u002Ftranslate` | Translate text between languages |  ❌  |\n| `GET`  | `\u002Ftranslator\u002Flanguages` | Get list of supported languages  |  ❌  |\n\n### 📍 Destinations\n\n| Method | Endpoint                  | Description                 | Auth |\n| ------ | ------------------------- | --------------------------- | :--: |\n| `GET`  | `\u002Fdestinations`           | Get all destinations        |  ❌  |\n| `GET`  | `\u002Fdestinations\u002Fsearch?q=` | Search destinations by name |  ❌  |\n| `GET`  | `\u002Fdestinations\u002F:id`       | Get destination by ID       |  ❌  |\n\n### ✈️ Booking\n\n| Method | Endpoint                  | Description              | Auth |\n| ------ | ------------------------- | ------------------------ | :--: |\n| `POST` | `\u002Fbooking\u002Fflights\u002Fsearch` | Search available flights |  ✅  |\n| `POST` | `\u002Fbooking\u002Fhotels\u002Fsearch`  | Search available hotels  |  ✅  |\n| `POST` | `\u002Fbooking\u002Fflights\u002Fbook`   | Book a flight            |  ✅  |\n| `POST` | `\u002Fbooking\u002Fhotels\u002Fbook`    | Book a hotel             |  ✅  |\n\n---\n\n## 🗄️ Database Models\n\n### 👤 User\n\n```javascript\n{\n  name:      String,   \u002F\u002F required\n  email:     String,   \u002F\u002F required, unique\n  password:  String,   \u002F\u002F hashed with bcrypt\n  createdAt: Date\n}\n```\n\n### 🗺️ Trip\n\n```javascript\n{\n  user:           ObjectId,    \u002F\u002F ref: User\n  destination:    String,\n  startDate:      Date,\n  endDate:        Date,\n  description:    String,\n  budget:         Number,\n  status:         Enum['planned', 'ongoing', 'completed'],\n  activities:     [String],\n  accommodation:  { name, address, checkIn, checkOut },\n  transportation: { type, details },\n  images:         [String],\n  notes:          String\n}\n```\n\n### 💸 Expense\n\n```javascript\n{\n  user:        ObjectId,   \u002F\u002F ref: User\n  trip:        ObjectId,   \u002F\u002F ref: Trip\n  amount:      Number,\n  currency:    String,     \u002F\u002F default: 'INR'\n  category:    Enum['food', 'transport', 'accommodation', 'activities', 'shopping', 'other'],\n  description: String,\n  date:        Date\n}\n```\n\n### 📍 Destination\n\n```javascript\n{\n  name:               String,\n  city:               String,\n  state:              String,\n  category:           String,\n  description:        String,\n  images:             [String],\n  entrance_fee_inr:   Number,\n  best_time_to_visit: String,\n  rating:             Number\n}\n```\n\n---\n\n## 🔒 Security Features\n\n| Feature                | Implementation                                                                      |\n| ---------------------- | ----------------------------------------------------------------------------------- |\n| **JWT Authentication** | Stateless tokens with 24h expiry and auto-refresh interceptors                      |\n| **Password Hashing**   | bcrypt with configurable salt rounds                                                |\n| **Security Headers**   | Helmet.js sets `X-Content-Type-Options`, `X-Frame-Options`, etc.                    |\n| **Rate Limiting**      | 100 requests per 15 minutes per IP via `express-rate-limit`                         |\n| **OTP Rate Limiting**  | 60s resend cooldown, 5 max attempts, and a 24h security lockout (`otpBlockedUntil`) |\n| **CORS Policy**        | Configured to allow only specified origins                                          |\n| **Input Validation**   | Server-side validation on all user-submitted data                                   |\n| **Protected Routes**   | Frontend `\u003CPrivateRoute>` + backend `auth` middleware guard                         |\n\n---\n\n## 🎨 Design Highlights\n\n- **Custom MUI Theme** — Poppins typography, curated palette, rounded components and consistent spacing\n- **Editorial Landing Page** — Playfair Display + DM Sans typography, hero illustrations, animated call-to-actions\n- **Fully Responsive** — Mobile-first approach; collapsible sidebar drawer on small screens\n- **Micro-animations** — Hover lift effects, card transitions, skeleton loaders\n- **Toast Notifications** — Real-time feedback (success \u002F error \u002F info) on all user actions via React-Toastify\n- **Interactive Charts** — Bar chart for monthly trip analytics, pie chart for expense breakdown\n\n---\n\n## 🔮 Future Enhancements\n\n- [ ] Real flight & hotel API integration (Amadeus \u002F Skyscanner \u002F RapidAPI)\n- [ ] AI-powered itinerary generation (OpenAI \u002F Gemini)\n- [ ] Social trip sharing with friends and collaborative planning\n- [ ] Push notifications & email reminders for upcoming trips\n- [ ] Offline mode with service workers (PWA)\n- [ ] Travel insurance integration\n- [ ] Multi-currency expense conversion with live exchange rates\n- [ ] Trip photo gallery with image uploads (Cloudinary)\n- [ ] Dark mode toggle\n- [ ] Mobile app (React Native)\n\n---\n\n## 🤝 Contributing\n\nWe ❤️ contributions from the community! PackGo is an open-source project and all kinds of contributions are welcome — bug fixes, feature additions, documentation improvements, and more.\n\nPlease read our:\n\n- 📋 [**Contributing Guidelines**](CONTRIBUTING.md) — branching strategy, commit message format, PR checklist\n- 🎓 [**Mentor Guidelines**](MENTOR_GUIDELINES.md) — instructions and expectations for GSSoC '26 Mentors\n- 🤝 [**Code of Conduct**](CODE_OF_CONDUCT.md) — community standards and expectations\n\n### Quick Steps\n\n```bash\n# 1. Fork the repository on GitHub\n\n# 2. Clone your fork\ngit clone https:\u002F\u002Fgithub.com\u002F\u003Cyour-username>\u002FTravel-Plans-.git\n\n# 3. Create a feature branch\ngit checkout -b feature\u002Fyour-amazing-feature\n\n# 4. Make your changes and commit\ngit add .\ngit commit -m \"feat: add your amazing feature\"\n\n# 5. Push and open a Pull Request\ngit push origin feature\u002Fyour-amazing-feature\n```\n\n> **Good First Issues** are labelled [`good first issue`](..\u002F..\u002Fissues?q=label%3A%22good+first+issue%22) — a great place to start! 🌱\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License**.  \nSee the [LICENSE](LICENSE) file for full details.\n\n---\n\n## 👥 Mentors\n\nWe are incredibly grateful to our mentors for their valuable support and code reviews:\n\n- **Mrigakshi Rathore** — GSSoC'26 Mentor\n  - [![GitHub](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-Mrigakshi--Rathore-181717?style=flat&logo=github)](https:\u002F\u002Fgithub.com\u002FMrigakshi-Rathore)\n  - [![LinkedIn](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLinkedIn-Mrigakshi--Rathore-0A66C2?style=flat&logo=linkedin)](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmrigakshi-rathore\u002F)\n\n---\n\n## 👤 Author\n\n\u003Cdiv align=\"center\">\n\n**Hitesh Kumar**\n\n[![GitHub](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-hitesh--kumar123-181717?style=for-the-badge&logo=github)](https:\u002F\u002Fgithub.com\u002Fhitesh-kumar123\u002FTravel-Plans-)\n\n[![LinkedIn](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLinkedIn-Hitesh--Kumar-0A66C2?style=for-the-badge&logo=linkedin)](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fhitesh-kumar-dev\u002F)\n\n---\n\n\n⭐ **If PackGo helped you, please give it a star — it means a lot!** ⭐\n\n\u003C\u002Fdiv>\n\n\u002F**\n## ✨ README Improvement Notes\n\n### 📌 Formatting Enhancements Needed\n- Improve heading hierarchy for better readability\n- Ensure consistent spacing between sections\n- Use proper Markdown formatting for code blocks and lists\n- Align all installation and usage steps properly\n\n### 🚀 Suggested Structure Upgrade\n- Introduction\n- Features\n- Tech Stack\n- Installation\n- Usage\n- Project Structure\n- Contribution Guidelines\n- License\n\n### 🛠️ Documentation Improvements\n- Add badges (optional): build, license, contributors\n- Add screenshots for better UI understanding\n- Standardize code blocks for commands\n\n### 🎯 Goal\nImprove onboarding experience for new contributors and users by making README more structured, readable, and professional.\n*\u002F\n","PackGo 是一款基于 MERN 技术栈（MongoDB、Express.js、React 和 Node.js）构建的全栈旅行规划应用。它集成了行程管理、预算跟踪、实时天气查询、语言翻译以及航班和酒店预订等功能，所有这些都通过一个直观的仪表板呈现给用户。该项目利用了现代 Web 开发技术如 Material-UI 来提供良好的用户体验，并通过 CI\u002FCD 流程确保代码质量。适合需要一站式解决方案来组织个人或团队旅行计划的各种场景使用，无论是短期周末游还是长期探险旅行，都能帮助用户轻松管理和访问旅行相关信息。",2,"2026-06-11 04:07:48","trending"]