Skip to content

Dev-angPatil/WeekendSahal

Repository files navigation

WeekendSahal — Maharashtra Adventure Tourism Platform

WeekendSahal is a high-trust, two-sided adventure tourism marketplace for Maharashtra. It connects weekend travelers looking for vetted treks, camping trips, water sports, and cycling tours with trusted local operators who manage the on-ground execution, while the platform handles discovery, booking, and secure payments.


🚀 Key Features

For Travelers:

  • Map-Based Discovery: A Leaflet.js interactive map featuring 16 real destinations in Maharashtra (from Toranmal in the far north to Tadoba in the east) with dynamic category filters.
  • Vetted Details: In-depth itinerary accordions, checklist of inclusions/exclusions, safety guide ratios, and verified traveler reviews.
  • Emergency SOS & Proximity Proving: Lists verified local volunteer rescue teams and nearest hospital distances for each region, complete with a simulated SOS Distress Beacon.
  • TrailMate AI Assistant: A floating co-pilot powered by Gemini 2.5 Flash that reads listing collections and lets travelers customize itineraries (e.g. "Suggest family-friendly camping under ₹1500").
  • Checkout & Simulated Razorpay Sandbox: Seamless slots calculation with group discount math and a simulated Razorpay payment gateway overlay.

For Operators:

  • Platform Trust Scorecard (PTS): Operators build a public trust score out of 100 based on completed trips and guest reviews to increase their catalog ranking.
  • Escrow Financial Ledger: Visually separates Held in Escrow (preshared customer payments for upcoming trips) from Net Settled Payouts (released to their bank account post-completion, minus a 10% platform fee).
  • Roster & Attendance Check-In: Table checklist under each batch where guides check in guests at base camp.
  • Self-Serve Publishing: A console form to publish new batches to the catalog in real-time.

🛠️ Technology Stack

  • Frontend: Next.js 16 (App Router), React 19, TypeScript
  • Styling: Tailwind CSS v4, conformed to the premium, earthy MongoDB design system tokens
  • Database & Auth: Firebase Firestore & client authentication
  • Mapping: Leaflet.js & OpenStreetMap
  • AI Model: Gemini 2.5 Flash (via server-side @google/generative-ai SDK)

📦 Run & Deploy Guide

1. Local Mock Mode (Instant Trial)

The application features a transparent Firestore Local Mock Mode that falls back to stateful client localStorage if Firebase keys are absent. You can run the app immediately with zero configuration:

# Clone the repository and install packages
npm install

# Run the Next.js development server
npm run dev -- -p 3001

Open http://localhost:3001 in your browser. Toggle traveler and operator identities using the dark-teal promo bar at the top to test checkout and completed payout balances.

2. Connect Your Own Firebase Production Backend

To connect a live Firebase project:

  1. Create a new project in the Firebase Console.
  2. Enable Cloud Firestore and Firebase Authentication (Email/Password provider).
  3. Register a Web App in your Firebase project and copy the configuration object.
  4. Copy .env.local.template to .env.local and paste your Firebase keys:
    GEMINI_API_KEY=your_gemini_api_key
    
    NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
    NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
    NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
    NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
    NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
    NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
  5. Deploy security rules: Copy firestore.rules to your Firebase project rules tab to secure bookings and profiles from unauthorized edits.

3. Deploy Static Export

To generate the optimized static HTML build and deploy it to the live CDN:

# Build the Next.js static pages
npm run build

# Deploy to Firebase Hosting
npx firebase-tools deploy --only hosting

📁 Repository Structure

  • src/lib/firebase.ts — Handles production Firebase SDK initialization vs Local Mock fallback.
  • src/lib/db.ts — Unified database service wrapper handling transparent routing.
  • src/lib/seedData.ts — Contains the 16 seed adventure destinations.
  • src/components/MapExplorer.tsx — Flicker-free Leaflet discovery map with category toggles.
  • src/components/RazorpayModal.tsx — Simulated Razorpay checkout screen.
  • src/components/AiChatAssistant.tsx — Client-side Gemini 2.5 Flash chatbot assistant.
  • firestore.rules — Production database security scopes.
  • submission/ — Contains Devpost pitch copy and the video demo script.

About

TypeScript web application for weekend activity planning.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages