🌟 Inspiration

Nepal's tourism industry contributes 7.9% to the national GDP and welcomes over 1.2 million tourists annually — yet it runs on 19th-century paper infrastructure. Walking through Thamel, Kathmandu, we witnessed firsthand:

  • Tourists getting scammed by fake guides claiming to be NTB-licensed
  • Long queues at Bhrikutimandap TIMS office for paper trekking permits
  • Photocopied Bhaktapur & Patan entry tickets sold by scalpers
  • After the 2015 Gorkha Earthquake, hundreds of trekkers went missing on Everest and Annapurna trails because no digital check-in system existed

Globally, tourism loses $6.2 Billion/year to fake guides and $40 Billion/year to ticket counterfeiting (UNWTO reports). We asked ourselves:

"What if Nepal could leapfrog these problems using browser-native cryptography — with zero servers, zero paper, and zero fake guides?"

That question became Yatra.


🎯 What It Does

Yatra is Nepal's first zero-server digital tourism infrastructure that unifies 5 critical tourism functions into one browser-native platform:

🛡️ 1. Verified Guide Marketplace (WASM eKYC)

  • Local guides upload their Citizenship ID or Passport
  • Tesseract.js WebAssembly OCR parses the document live in the browser — zero data ever leaves the device
  • Auto-generates a cryptographic serial ID (e.g., NTB-L-6081) using SHA-256
  • Zero fake stars or dummy reviews — only verified transactions count

🎫 2. Universal Digital UNESCO E-Permits

  • Covers all 10 official Nepal heritage & trekking sites (Patan, Bhaktapur, Boudha, Swayambhu, Pashupatinath, Changu Narayan, Kathmandu Durbar, Lumbini, Chitwan, Sagarmatha)
  • 4-tier official NPR pricing (Foreigner / SAARC / Chinese / Nepali)
  • Every ticket signed with W3C Web Crypto SHA-256 — impossible to forge
  • Downloadable PDF E-Permit via jsPDF + html2canvas

🌱 3. Green-Hour Dynamic Capacity Pricing

  • When UNESCO sites exceed 80% peak capacity, the system offers a 15% off-peak discount
  • Preserves ancient brick monuments from structural stress while maximizing revenue

🆘 4. Emergency SOS & GPS Trekker Safety

  • Overpass API queries OpenStreetMap for hospitals, police & fire stations within 5,000m
  • Haversine distance math (geolib) sorts services by proximity
  • 1-click GPS broadcast via WhatsApp, SMS, and hotlines (100 / 102 / 1144)
  • Leaflet GIS trail check-in logs for disaster rescue

🎙️ 5. Multilingual Heritage Audio Guides

  • ElevenLabs AI voice synthesis narrates cultural stories
  • Verified content from HamroSampada (Nepal's official heritage archive)
  • Available in English, Nepali, Hindi, Chinese

🛠️ How We Built It

Frontend (100% Client-Side)

  • React 18 + Vite for lightning-fast HMR development
  • Tesseract.js v7 WebAssembly OCR — parses IDs on localhost with zero server cost
  • html5-qrcode dual-mode scanner (webcam + image file)
  • qrcode.react for dynamic cryptographic QR canvas generation
  • jsPDF + html2canvas for downloadable e-permit PDFs
  • Leaflet + React-Leaflet for UNESCO gate & checkpost GIS maps
  • leaflet-routing-machine (OSRM) for trekking route optimization
  • geolib for Haversine geospatial calculations

Backend

  • Node.js + Express v4.19.2 REST API on port 5000
  • MongoDB + Mongoose v8.5.1 with graceful fallback (server never crashes)
  • CORS + Morgan + Dotenv middleware stack

Native Web Standards (Zero-Package Cryptography)

  • W3C Web Crypto API — crypto.subtle.digest('SHA-256') for ticket signing
  • crypto.getRandomValues() — 128-bit dynamic session secrets (zero hardcoded keys)
  • HTML5 Geolocation API — GPS capture for SOS
  • HTML5 Canvas API — DOM-to-image conversion

Cryptographic Ticket Formula

Every permit is signed using:

$$ \text{Signature} = \text{SHA-256}(\text{JSON}(\text{PassID} + \text{TouristID} + \text{Amount}) + \text{SessionKey})[0..16] $$


🧗 Challenges We Ran Into

  1. WebAssembly OCR Performance — Tesseract.js initially took 8+ seconds to parse a Passport. We optimized by pre-loading language models and using image preprocessing, dropping parse time to ~1.2 seconds.

  2. Cryptographic Key Management Without Servers — Storing SHA-256 secrets safely in a browser-only environment. We solved this using window.crypto.getRandomValues() + sessionStorage, generating fresh 128-bit keys per session with zero hardcoded secrets.

  3. Offline QR Verification at Mountain Gates — Rural UNESCO sites like ACAP checkposts have unreliable internet. We built the QR scanner to verify signatures fully offline using only browser cryptography.

  4. MongoDB Connection Failures During Demo — We implemented graceful fallback logic in config/db.js so the Express server continues running even if MongoDB Atlas connection drops mid-pitch.

  5. Multi-Nationality Pricing Logic — Nepal Tourism Board uses complex 4-tier pricing (Foreigner / SAARC / Chinese / Nepali). We built a dynamic pricing engine that instantly recalculates fees based on nationality selection.

  6. Preventing Ticket Duplication — Ensuring that the same QR ticket cannot be scanned twice at gates. We integrated timestamp-based signature validation with session-bound cryptographic keys.


🏆 Accomplishments We're Proud Of

  • ✅ Built a fully functional zero-server tourism infrastructure in hackathon time
  • ✅ Implemented client-side WebAssembly OCR eKYC — a technique used by only top-tier fintech companies
  • ✅ Integrated all 10 official Nepal UNESCO/Park sites with authentic NPR pricing
  • ✅ Achieved sub-1-second QR ticket verification at gate scanners
  • ✅ Created a Green-Hour dynamic pricing engine that solves monument preservation + revenue optimization simultaneously
  • ✅ Zero external server costs — entire security stack runs on browser-native Web Crypto API

📚 What We Learned

  • WebAssembly is production-ready — Tesseract.js proved that heavy AI/OCR workloads can run entirely in the browser
  • W3C Web Crypto API is deeply underused — most developers reach for external libraries when native browser crypto is faster and more secure
  • Nepal Tourism Board's official pricing structure and the complex 4-tier nationality system
  • Haversine geospatial mathematics for calculating emergency service proximity
  • OpenStreetMap's Overpass QL — a powerful free alternative to Google Maps API
  • How to design for offline-first environments like Himalayan trekking checkposts

🚀 What's Next for Yatra

  • 🇳🇵 Official partnership with Nepal Tourism Board (NTB) for licensed guide database integration
  • 💳 Khalti + eSewa payment gateway integration for real Nepali payment processing
  • 🏔️ Expand to Bhutan, Sikkim, and Ladakh — same problems, same infrastructure gap
  • 🌐 Multilingual support in 12+ languages (Korean, Japanese, German, French, Spanish)
  • 📱 PWA (Progressive Web App) for offline gate scanning at mountain checkposts
  • 🛰️ Satellite fallback for GPS SOS in dead-zone Himalayan regions
  • 🎓 AI-powered heritage chatbot using RAG on HamroSampada archives
  • 🏛️ UNESCO official partnership for cultural authenticity certification

Built With

Share this project:

Updates

Submission history