Your Smart, Safe & Personalized Travel Assistant — Powered by AI
Part of GirlScript Summer of Code 2026 — open to contributors of all skill levels.
| 📖 About | ✨ Features | 🛠️ Tech Stack | 🗂️ Structure | 🏛️ Architecture | 🗺️ Routes | 🚀 Quick Start | 🤝 Contributing |
|---|
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.
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.
🚀 Try the live app → tour-ease-joh5.vercel.app
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
| 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 |
┌──────────────────────────────────────┐
│ 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 |
| 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
/loginif no valid JWT is found inlocalStorage.
| 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 |
- Node.js v18+
- npm v9+
- MongoDB Atlas cluster (free tier works)
# 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 devOpen http://localhost:5173 — you're in. 🎉
Note
For Google OAuth, OpenAI, and email keys, see the Full Installation Guide.
No more running separate terminal scripts for frontend and backend!
- Docker Desktop installed
docker compose up --build-
Frontend Application: http://localhost:7000
-
Backend API Layer: http://localhost:4000
Welcome to TourEase! If you are contributing under GSSoC 2026, follow these steps to get started:
- Install Git
- Install Node.js
- Install VS Code
- Fork this repository.
- Clone your fork locally.
- Create a new branch.
- Make your changes.
- Commit your changes with a meaningful message.
- Push the branch to your GitHub repository.
- Open a Pull Request.
- Wait for review and make requested changes if needed.
Happy Contributing! 🎉
TourEase is part of GirlScript Summer of Code 2026. We welcome contributions of all sizes!
- Fork the repo and create a branch:
git checkout -b feat/your-feature - Commit your changes with a clear, descriptive message.
- 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.
Please do not open a public issue for vulnerabilities. See our Security Policy for responsible disclosure guidelines.
Distributed under the MIT License — see LICENSE for details.
Suhani — @Suhani1234-5 · LinkedIn · GitHub Discussions
Thanks to everyone who has helped build TourEase! 💜
Made with ❤️ by travelers, for travelers
