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

πŸ’‘ Detailed Architecture Guide: Visit docs/ARCHITECTURE.md for a comprehensive breakdown of the application layers, data flow diagrams, and orientation checklist.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     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 localStorage β†’ ProtectedRoute in App.jsx
Favourites FavoritesContext (React Context API)
Dark / light theme ThemeContext (React Context API)
Server data Local useState + service call

Note

For a comprehensive breakdown of the application layers, system flow diagrams, and key files, check out the full Architecture Documentation.


πŸ—ΊοΈ 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:

Tip

To understand the folder layout, data flows, and layer structure of TourEase before coding, read the Architecture Documentation first.

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

Releases

Packages

Contributors

Languages