maniac-24/Smart-Tourist-Safety-Monitoring

GitHub: maniac-24/Smart-Tourist-Safety-Monitoring

Stars: 1 | Forks: 0

# Smart Tourist Safety Monitoring & Incident Response System A comprehensive real-time tourist safety platform combining AI-powered geo-fencing, blockchain-based digital identity, and emergency response systems to ensure tourist safety across India. ## 🌟 Overview This platform provides end-to-end tourist safety management with real-time location tracking, intelligent geo-fence alerts, emergency SOS capabilities, and a centralized police command center. Built for Smart India Hackathon, it addresses critical tourist safety challenges through modern technology. ## 🌐 Live Application **Frontend:** [https://smart-tourist-safety-monitoring-one.vercel.app](https://smart-tourist-safety-monitoring-one.vercel.app) **Backend API:** [https://smart-tourist-safety-monitoring-ch2m.onrender.com](https://smart-tourist-safety-monitoring-ch2m.onrender.com) The application is fully deployed and ready to use! Access the live platform to explore tourist safety features, geo-fencing, emergency response, and more. ## � DKey Features ### 🔐 Blockchain Digital Identity - Ethereum Sepolia-based tourist ID registration - Smart contract-powered identity verification - QR code generation for instant verification - PDF tourist ID card with email delivery - Immutable identity records on blockchain ### 🗺️ Intelligent Geo-Fencing System - Real-time location tracking with Socket.io - Dynamic safety zones (safe, medium-risk, high-risk, restricted) - Automatic alert generation on zone entry - Safety score calculation based on location - Time-based zone restrictions - Polygon and radius-based geo-fence support ### 🆘 Emergency Response - One-click SOS button with GPS coordinates - Automatic SMS alerts via Twilio to emergency contacts - Real-time notifications to police dashboard - Location history tracking - Alert severity classification (low, medium, high, critical) - Incident report management ### 👮 Police Command Center - Real-time tourist location monitoring - Live geo-fence alert dashboard - Tourist status tracking (safe, warning, SOS) - Alert acknowledgment system - Incident report management - Historical alert analytics ### 🏨 Tourism Services - 16+ curated destinations across India - Northeast India special destinations (Tawang, Gangtok, Kohima, etc.) - Hotel listings and details - Professional tour guide directory - Guide inquiry and booking system - Destination reviews and ratings ### 📱 Progressive Web App (PWA) - Offline functionality - Install as mobile app - Push notifications - Service worker caching - Map tile caching for offline use ## 🛠️ Tech Stack ### Frontend - **Framework:** React 18 with Vite - **Styling:** Tailwind CSS 4 - **State Management:** Zustand - **Routing:** React Router DOM v7 - **Maps:** Leaflet & React Leaflet - **Blockchain:** ethers.js v6 - **Real-time:** Socket.io Client - **Animations:** Framer Motion - **i18n:** react-i18next - **UI Components:** Lucide React icons - **PDF Generation:** jsPDF, html2canvas - **QR Codes:** qrcode.react ### Backend - **Runtime:** Node.js with Express 5 - **Database:** MongoDB with Mongoose - **Authentication:** JWT (jsonwebtoken) - **Real-time:** Socket.io - **File Upload:** Multer, Cloudinary - **Email:** Nodemailer - **SMS:** Twilio - **Geo-spatial:** @turf/turf, @turf/boolean-point-in-polygon - **PDF Generation:** PDFKit ### Blockchain - **Smart Contracts:** Solidity 0.8.28 - **Development:** Hardhat - **Network:** Ethereum Sepolia Testnet - **Provider:** Infura ### DevOps - **Deployment:** Vercel - **Version Control:** Git - **Environment:** dotenv ## 📁 Project Structure ├── client/ # Frontend React application │ ├── src/ │ │ ├── components/ # Reusable UI components │ │ │ ├── Navbar.jsx │ │ │ ├── GeofenceAlert.jsx │ │ │ ├── LanguageSelector.jsx │ │ │ └── ... │ │ ├── pages/ # Route pages │ │ │ ├── LoginPage.jsx │ │ │ ├── DashboardPage.jsx │ │ │ ├── PoliceDashboard.jsx │ │ │ ├── GeoFenceAdmin.jsx │ │ │ ├── MyLocationPage.jsx │ │ │ ├── NorthEastDestinations.jsx │ │ │ └── ... │ │ ├── contexts/ # React contexts │ │ │ ├── SocketContext.jsx │ │ │ └── usenamcontext.jsx │ │ ├── hooks/ # Custom React hooks │ │ │ └── useLocationTracking.js │ │ ├── store/ # Zustand stores │ │ │ ├── userStore.js │ │ │ ├── tourGuideStore.js │ │ │ └── conversionStore.js │ │ ├── data/ # Static data │ │ │ ├── destinations.json │ │ │ └── issues.json │ │ ├── contracts/ # Solidity smart contracts │ │ ├── utils/ # Utility functions │ │ ├── i18n.js # Internationalization config │ │ └── main.jsx # App entry point │ ├── hardhat.config.cjs # Hardhat blockchain config │ ├── vite.config.js # Vite build config │ └── package.json │ ├── server/ # Backend Node.js application │ ├── controllers/ # Business logic │ │ ├── user.controller.js │ │ ├── tourGuide.controller.js │ │ └── conversion.controller.js │ ├── models/ # MongoDB schemas │ │ ├── User.js │ │ ├── GeoFence.js │ │ ├── AlertHistory.js │ │ ├── TourGuide.js │ │ ├── IncidentReport.js │ │ ├── ContactMessage.js │ │ └── ... │ ├── routes/ # API routes │ │ ├── user.router.js │ │ ├── geoFence.route.js │ │ ├── tourGuide.route.js │ │ ├── sendSms.js │ │ └── ... │ ├── middleware/ # Express middleware │ │ ├── authMiddleware.js │ │ ├── fecthuser.js │ │ └── upload.js │ ├── utils/ # Utility functions │ │ ├── geoFenceUtils.js │ │ ├── seedGeoFences.js │ │ ├── apiResponse.js │ │ └── asyncHandler.js │ ├── config/ # Configuration │ │ └── cloudinary.js │ ├── index.js # Server entry point │ ├── db.js # Database connection │ └── package.json │ └── README.md ## 🔧 Installation & Setup ### Prerequisites - Node.js (v18 or higher) - MongoDB (local or Atlas) - Ethereum wallet with Sepolia testnet ETH - Infura API key - Twilio account (for SMS) - Cloudinary account (for image uploads) ### Environment Variables **Client (.env in client/)** VITE_API_URL=http://localhost:5000 VITE_SOCKET_URL=http://localhost:5000 VITE_CONTRACT_ADDRESS=your_deployed_contract_address INFURA_API_KEY=your_infura_api_key PRIVATE_KEY=your_ethereum_private_key **Server (.env in server/)** PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret CLIENT_URL=http://localhost:5173 # Twilio TWILIO_ACCOUNT_SID=your_twilio_sid TWILIO_AUTH_TOKEN=your_twilio_token TWILIO_PHONE_NUMBER=your_twilio_phone # Cloudinary CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret # Email EMAIL_USER=your_email EMAIL_PASS=your_email_password ### Installation Steps 1. **Clone the repository** git clone cd smart-tourist-safety 2. **Install client dependencies** cd client npm install 3. **Install server dependencies** cd ../server npm install 4. **Deploy Smart Contract (Optional - if not already deployed)** cd ../client npx hardhat compile npx hardhat run script/deploy.js --network sepolia 5. **Seed Geo-fences (Optional)** cd ../server npm run seed:geofences 6. **Start the development servers** Terminal 1 (Backend): cd server npm run dev Terminal 2 (Frontend): cd client npm run dev 7. **Access the application** - Frontend (local): http://localhost:5173 - Backend API (local): http://localhost:5000 - **Frontend (live):** https://smart-tourist-safety-monitoring-one.vercel.app - **Backend API (live):** https://smart-tourist-safety-monitoring-ch2m.onrender.com ## 🎯 Usage ### For Tourists 1. Register with blockchain-based digital ID 2. Download PDF tourist ID card 3. Login to access dashboard 4. View real-time safety status 5. Explore destinations, hotels, and tour guides 6. Use emergency SOS button when needed 7. Track location history ### For Police/Authorities 1. Access police dashboard at `/police` 2. Monitor all tourists in real-time 3. View geo-fence alerts 4. Acknowledge and respond to incidents 5. Access alert history and analytics 6. Manage geo-fence zones at `/geofence-admin` ### For Tour Guides 1. Register as tour guide at `/tourguide` 2. Create professional profile 3. Receive tourist inquiries 4. Manage bookings ## 🗺️ API Endpoints ### Authentication - `POST /api/v2/auth/register` - Register new user - `POST /api/v2/auth/login` - User login - `GET /api/v2/auth/current` - Get current user ### Geo-fencing - `POST /api/v7/geofence/create` - Create geo-fence - `GET /api/v7/geofence/all` - Get all geo-fences - `POST /api/v7/geofence/check-location` - Check location - `GET /api/v7/geofence/alerts/all` - Get all alerts - `GET /api/v7/geofence/alerts/my-history` - Get user alerts ### Emergency - `POST /api/v3/sendalert` - Send emergency SMS ### Tour Guides - `POST /api/v5/tourguide/register` - Register guide - `GET /api/v5/tourguide/all` - Get all guides - `POST /api/v9/guide-inquiry` - Submit inquiry ### PDF Generation - `POST /api/v1/pdfwork/generate` - Generate tourist ID PDF ## 🔒 Security Features - JWT-based authentication - Blockchain identity verification - Encrypted password storage - CORS protection - Input validation and sanitization - Secure file upload handling - Environment variable protection ## 🌍 Supported Destinations The platform features 16 major destinations including: - Taj Mahal, Agra - Kerala Backwaters - Goa Beaches - Rajasthan Palaces - Varanasi Ghats - Himalayas, Himachal Pradesh - Amritsar Golden Temple - Mumbai Gateway of India - **Northeast India:** Tawang, Gangtok, Kohima, Loktak Lake, Aizawl, Agartala ## 📱 Real-time Features - Live location tracking via Socket.io - Instant geo-fence alerts - Real-time police dashboard updates - Push notifications for emergencies - Live tourist status monitoring ## 🚀 Deployment ### ✅ Live Deployment The application is **currently deployed and running**: - **Frontend (Vercel):** [https://smart-tourist-safety-monitoring-one.vercel.app](https://smart-tourist-safety-monitoring-one.vercel.app) - **Backend (Render):** [https://smart-tourist-safety-monitoring-ch2m.onrender.com](https://smart-tourist-safety-monitoring-ch2m.onrender.com) - **Database:** MongoDB Atlas (configured and running) ### Deploy Your Own Instance - **Frontend:** Deploy to Vercel - **Backend:** Deploy to Render or Railway - **Database:** MongoDB Atlas ### Deployment Guides We've created comprehensive deployment documentation: 1. **[QUICK_START.md](QUICK_START.md)** - Fast deployment in 3 steps (~10 minutes) 2. **[DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md)** - Complete step-by-step guide 3. **[PRE_DEPLOYMENT_CHECKLIST.md](PRE_DEPLOYMENT_CHECKLIST.md)** - Pre-deployment verification 4. **[DEPLOYMENT_ARCHITECTURE.md](DEPLOYMENT_ARCHITECTURE.md)** - System architecture overview 5. **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)** - Common issues and solutions 6. **[DEPLOYMENT_SUMMARY.md](DEPLOYMENT_SUMMARY.md)** - Quick overview ### Deployment Configuration - ✅ React Router configured for Vercel (`client/vercel.json`) - ✅ CORS configured for production - ✅ Environment variables documented - ✅ Build commands optimized - ✅ Socket.io ready for production **Start here:** Read `QUICK_START.md` to deploy in ~15 minutes! ## 📄 License This project is part of Smart India Hackathon submission. ## 👥 Team Built by a dedicated team for Smart India Hackathon to enhance tourist safety across India.
标签:自定义脚本