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 (port 5173)
β βββ 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
β β βββ Navigation.jsx
β β βββ Footer.jsx
β β βββ EventCard.jsx
β β βββ WeatherWidget.jsx
β β βββ ItineraryDisplay.jsx
β β βββ SuggestionCard.jsx
β βββ context/ # Global state (Context API)
β β βββ FavoritesContext.jsx
β β βββ ThemeContext.jsx
β βββ hooks/ # Custom React hooks
β βββ pages/ # One file per route
β βββ services/ # HTTP service layer (Axios)
β βββ utils/ # Helper functions
β βββ config/ # SDK & env config
β βββ App.jsx # Router + ProtectedRoute guard
β βββ main.jsx # Vite entry point
β
βββ backend/ # Node.js + Express REST API (port 5000)
β βββ config/
β β βββ db.js # MongoDB connection (Mongoose)
β β βββ passport.js # Google OAuth 2.0 strategy
β β βββ mailTransporter.js # Nodemailer config
β βββ controllers/ # Business logic per domain
β βββ models/ # Mongoose schemas
β βββ routes/ # Express routers
β βββ services/ # External integrations & heavy logic
β βββ server.js # App bootstrap & middleware
β
βββ screenshots/ # UI previews
βββ .env.example # Environment variable template
βββ CONTRIBUTING.md
βββ INSTALLATION.md
βββ README.md
ββββββββββββββββββββββββββββββββββββββββ
β 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.
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
