Skip to content

Suhani1234-5/TourEase

Repository files navigation

🌍 TourEase

Your Smart, Safe & Personalized Travel Assistant — Powered by AI

License: MIT PRs Welcome GSSoC'26 Node.js React


Part of GirlScript Summer of Code 2026 — open to contributors of all skill levels.


⚡ Quick Navigation

📖 About ✨ Features 🛠️ Tech Stack 🗂️ Structure 🏛️ Architecture 🗺️ Routes 🚀 Quick Start 🤝 Contributing

📖 About TourEase

TourEase is an open-source, AI-powered travel assistant that helps tourists plan trips, explore destinations, and travel safely — all in one place. It combines intelligent itinerary generation, real-time weather & event monitoring, and community-driven insights into a seamless full-stack web app.


✨ Features

Dynamic Itinerary Adjustment
  • Real-Time Event Detection — Discovers festivals, concerts, and cultural events during your trip.
  • Weather Monitoring — 5-day forecasts with suggestions for bad-weather days.
  • Disruption Alerts — Proactive notifications for closures, strikes, or travel disruptions.
  • AI-Powered Suggestions — Intelligent recommendations to enhance your itinerary on the fly.
  • Full User Control — Accept, reject, or modify any suggestion with clear reasoning shown.
AI & Smart Planning
  • AI Trip Planner — Custom itineraries based on budget, duration, and interests.
  • AI Voice Assistant — Real-time translation and voice-activated destination queries.
  • Seasonal Mapping — Best-time-to-visit recommendations powered by AI.
  • Event-Aware Planning — Integration with global event APIs for festivals and sports.
Safety & Emergency Support
  • Local Safety Map — Nearest hospitals, police stations, and embassies in real time.
  • Emergency System — One-tap contact to local authorities with live safety alerts.
  • Issue Reporting — Report fraud, lost items, or unsafe areas directly in the app.
Travel Tools & Community
  • Smart Finder — Map integration for hotels, hostels, and hidden local gems.
  • Travel Locker — Secure digital record of documents and belongings.
  • Split & Expense — Group bill management with PDF/CSV export.
  • Community Feed — An Instagram-style feed for travel reviews and shared moments.

📸 UI Preview

TourEase Home Page

🚀 Try the live app → tour-ease-joh5.vercel.app


🛠️ Tech Stack

Frontend React Vite TailwindCSS React Router

Backend Node.js Express MongoDB JWT Passport OpenAI


🗂️ Project Structure

TourEase/
├── frontend/                        # React + Vite client (Mapped to Port 7000)
│   ├── src/
│   │   ├── assets/                  # Images, icons, static media
│   │   ├── components/              # Reusable UI components
│   │   │   ├── chatbot/             # AI chatbot widget
│   │   │   ├── common/              # Loader, ScrollToTop, etc.
│   │   │   ├── features/            # Feature-specific sub-components
│   │   │   └── layout/              # Page layout wrappers
│   │   ├── context/                 # Global state (Context API)
│   │   ├── hooks/                   # Custom React hooks
│   │   ├── pages/                   # One file per route
│   │   ├── services/                # HTTP service layer (Axios)
│   │   ├── utils/                   # Helper functions
│   │   └── config/                  # SDK & env config
│   ├── Dockerfile                   # Multi-stage production build (Node + Nginx)
│   └── .dockerignore                # Excludes node_modules and production builds
│
├── backend/                         # Node.js + Express REST API (Mapped to Port 4000)
│   ├── config/                      # Database, Passport OAuth, and Mail configurations
│   ├── controllers/                 # Business logic per domain
│   ├── models/                      # Mongoose schemas
│   ├── routes/                      # Express routers
│   ├── services/                    # External integrations & heavy logic
│   ├── server.js                    # App bootstrap & middleware
│   ├── Dockerfile                   # Node.js environment build configuration
│   └── .dockerignore                # Excludes local node_modules and debug logs
│
├── screenshots/                     # UI previews
├── docker-compose.yml               # Orchestrates multi-container local stack
├── .env.example                     # Environment variable template
├── CONTRIBUTING.md
├── INSTALLATION.md
└── README.md

🔌 Port Allocation Mapping Reference

Service Internal Container Port Host Port (Your Machine) Purpose
frontend 80 (Nginx) 7000 Serves compiled React production static assets
backend 3000 (Node.js) 4000 Processes REST API endpoints and business logic

🏛️ Architecture Flow

┌──────────────────────────────────────┐
│     Browser  (React + Vite :5173)    │
│                                      │
│  Route → Page → Service → HTTP req   │
└──────────────────┬───────────────────┘
                   │  JSON / REST
                   ▼
┌──────────────────────────────────────┐
│   Express Server  (Node.js :5000)    │
│                                      │
│  CORS → Router → Controller          │
│       → Service (AI / Weather / …)   │
│       → Mongoose Model               │
└────────────┬─────────────────────────┘
             │
     ┌───────┴────────┐
     ▼                ▼
 MongoDB Atlas    External APIs
                  (OpenAI · OpenWeather
                   · Events · Google OAuth)

State management at a glance:

Layer Mechanism
Auth token localStorageProtectedRoute in App.jsx
Favourites FavoritesContext (React Context API)
Dark / light theme ThemeContext (React Context API)
Server data Local useState + service call

🗺️ Application Routes

Frontend

Path Component Access
/ Home.jsx 🌐 Public
/about About.jsx 🌐 Public
/features Features.jsx 🌐 Public
/destinations Destinations.jsx 🌐 Public
/destinations/:id DestinationDetails.jsx 🌐 Public
/contact Contact.jsx 🌐 Public
/privacy Privacy.jsx 🌐 Public
/terms Terms.jsx 🌐 Public
/help HelpCenter.jsx 🌐 Public
/demo DemoSection.jsx 🌐 Public
/signup signup.jsx 🌐 Public
/login Login.jsx 🌐 Public
/favorites AddFavorite.jsx 🌐 Public
/plan-trip PlanTrip.jsx 🌐 Public
/trip-planner TripPlanner.jsx 🌐 Public
/home2 Home2.jsx 🔒 Protected

🔒 Protected routes redirect to /login if no valid JWT is found in localStorage.

Backend API

Endpoint prefix Responsibility
POST /api/auth Register, login, Google OAuth
POST /api/contact Contact form & email dispatch
* /api/trip Save & retrieve trip data
* /api/itinerary AI itinerary generation & adjustment
* /api/events Fetch & cache local events
* /api/weather Weather forecasts & disruption alerts
GET /api/health Server health check

🚀 Quick Start

Prerequisites

  • Node.js v18+
  • npm v9+
  • MongoDB Atlas cluster (free tier works)

Steps

# 1. Clone
git clone https://github.com/Suhani1234-5/TourEase.git

# 2. Configure environment
cp .env.example backend/.env
# Fill in MONGODB_URI, JWT_SECRET, FRONTEND_URL in backend/.env

# 3. Start backend  (Terminal 1)
cd backend && npm install && npm start

# 4. Start frontend  (Terminal 2)
cd frontend && npm install && npm run dev

Open http://localhost:5173 — you're in. 🎉

Note

For Google OAuth, OpenAI, and email keys, see the Full Installation Guide.

🚀 Quickstart Local Development with Docker

No more running separate terminal scripts for frontend and backend!

Prerequisites

  • Docker Desktop installed

Spin up the environment

docker compose up --build

🚀 GSSoC 2026 Contributor Onboarding

Welcome to TourEase! If you are contributing under GSSoC 2026, follow these steps to get started:

Prerequisites

  • Install Git
  • Install Node.js
  • Install VS Code

Contribution Workflow

  1. Fork this repository.
  2. Clone your fork locally.
  3. Create a new branch.
  4. Make your changes.
  5. Commit your changes with a meaningful message.
  6. Push the branch to your GitHub repository.
  7. Open a Pull Request.
  8. Wait for review and make requested changes if needed.

Happy Contributing! 🎉

🤝 Contributing

TourEase is part of GirlScript Summer of Code 2026. We welcome contributions of all sizes!

  1. Fork the repo and create a branch: git checkout -b feat/your-feature
  2. Commit your changes with a clear, descriptive message.
  3. Push and open a Pull Request against main.

Read the Contributing Guidelines before opening a PR.
Check the Issues tab — labels like good first issue and easy are great starting points.


🔐 Security

Please do not open a public issue for vulnerabilities. See our Security Policy for responsible disclosure guidelines.


📄 License

Distributed under the MIT License — see LICENSE for details.


👩‍💻 Maintainer

Suhani@Suhani1234-5  ·  LinkedIn  ·  GitHub Discussions


👥 Contributors

Thanks to everyone who has helped build TourEase! 💜

TourEase contributors

Made with ❤️ by travelers, for travelers

⬆ Back to top

About

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages