Skip to content

Full-featured travel booking platform built with Next.js 15, React 19, TypeScript, and Tailwind CSS. Features flight/hotel/package bookings, AI trip planner, and complete payment flows.

Notifications You must be signed in to change notification settings

rostwal95/suvidha-escape-portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Mock Components - Suvidha Escapes


React TypeScript Framer Motion Tailwind CSS Lucide Icons

Full-Featured Travel Booking Platform Prototypes

UI components with animations, state management, and complete user flows

demo_compressed.mp4

πŸ“‹ Table of Contents

  1. Introduction
  2. Tech Stack
  3. Features
  4. Quick Start
  5. Components Overview
  6. Mock Data
  7. Integration Guide

πŸš€ Introduction

This is a Next.js 15 travel booking platform for Suvidha Escapes, containing 25+ fully functional components built with real UI interactions, animations, and comprehensive mock data to demonstrate complete booking flows for flights, hotels, holiday packages, and visa assistance.

These components serve as:

  • βœ… Design prototypes for client demos and stakeholder reviews
  • βœ… Development blueprints for actual implementation
  • βœ… Testing playground for UX flows and interactions
  • βœ… Reference implementation for UI patterns and behaviors

Note: Currently uses hardcoded mock data (src/data.ts). In production, will connect to real backend APIs.

βš™οΈ Tech Stack

  • Next.js 15.5 – React framework with Turbopack
  • React 19 – Modern component architecture with hooks
  • TypeScript 5 – Type safety and developer experience
  • Tailwind CSS 4 – Utility-first styling
  • Framer Motion 12 – Smooth animations and transitions
  • Lucide React – Beautiful, consistent icon library
  • date-fns 4 – Lightweight date formatting
  • canvas-confetti – Celebration animations

⚑ Features

🎯 Complete Booking Flows

  • ✈️ Flights – Search, filter, sort, and book with real-time pricing
  • 🏨 Hotels – Browse properties, select rooms, complete booking
  • πŸ–οΈ Holiday Packages – Explore curated trips with day-by-day itineraries
  • πŸ“„ Visa Assistance – Country requirements and application process

🎨 Rich UI Components

  • Interactive Search Forms – Multi-tab interface with smart inputs
  • Advanced Filters – Price range, stops, airlines, time slots, amenities
  • Loading Skeletons – Smooth skeleton screens during data fetch
  • Step Indicators – Visual progress tracking for multi-step flows
  • Responsive Carousels – Image galleries with smooth navigation

πŸ€– AI Trip Planner

  • Chat-based conversational interface
  • Collects preferences (destination, budget, interests, travel style)
  • Generates personalized day-by-day itineraries
  • Recommends flights and hotels
  • Export to PDF functionality

πŸ’³ Payment Flow

  • Unified checkout for all booking types
  • Multiple payment methods (Card, UPI, Net Banking, Wallets)
  • Real-time fare calculation
  • Booking confirmation with confetti animation
  • Download tickets/vouchers, add to calendar

🎭 Polished UX

  • Smooth page transitions with Framer Motion
  • Optimistic UI updates
  • Progressive disclosure (expandable details)
  • Copy-to-clipboard functionality
  • Mobile-friendly responsive design

Quick Start

Prerequisites

Ensure you have these installed:

Installation & Setup

# Clone or navigate to the project
cd suvidha-escapes-portal

# Install dependencies
npm install

# Start the development server
npm run dev

The application will be available at http://localhost:3000

Available Scripts

npm run dev      # Start development server with Turbopack
npm run build    # Build for production
npm run start    # Start production server
npm run lint     # Run ESLint

Project Structure

suvidha-escapes-portal/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ page.tsx          # Main app with navigation
β”‚   β”‚   β”œβ”€β”€ layout.tsx        # Root layout
β”‚   β”‚   └── globals.css       # Global styles
β”‚   β”œβ”€β”€ primitives/           # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ badge.tsx
β”‚   β”‚   β”œβ”€β”€ button.tsx
β”‚   β”‚   β”œβ”€β”€ input.tsx
β”‚   β”‚   └── carousel.tsx
β”‚   β”œβ”€β”€ HomePage.tsx          # Landing page
β”‚   β”œβ”€β”€ FlightsPage.tsx       # Flight search
β”‚   β”œβ”€β”€ HotelsPage.tsx        # Hotel search
β”‚   β”œβ”€β”€ HolidaysPage.tsx      # Holiday packages
β”‚   β”œβ”€β”€ VisaPage.tsx          # Visa assistance
β”‚   β”œβ”€β”€ Header.tsx            # Navigation header
β”‚   β”œβ”€β”€ Footer.tsx            # Site footer
β”‚   β”œβ”€β”€ types.ts              # TypeScript definitions
β”‚   β”œβ”€β”€ data.ts               # Mock data
β”‚   └── [20+ more components]
β”œβ”€β”€ public/                   # Static assets
β”œβ”€β”€ package.json
└── next.config.ts

πŸ“¦ Components Overview

Core Pages (8 components)

Component Description
HomePage.tsx Landing page with multi-tab search
FlightsPage.tsx Flight search results with filters
HotelsPage.tsx Hotel listings with grid/list views
HolidaysPage.tsx Holiday package browser
VisaPage.tsx Visa requirements and applications
HotelDetailPage.tsx Individual hotel details & booking
PackageDetailPage.tsx Package details with itinerary
VisaDetailPage.tsx Visa application form

Booking Flows (4 components)

Component Description
UnifiedBookingFlow.tsx Universal checkout (Details β†’ Payment β†’ Confirmation)
HotelBookingFlow.tsx Hotel-specific booking process
BookingConfirmation.tsx Success page with confetti & actions
PaymentPage.tsx Payment method selection & processing

Interactive Features (3 components)

Component Description
AITripPlanner.tsx AI chatbot for trip planning (~1,000 LOC)
FlightFilters.tsx Advanced filtering sidebar
TravelerDetailsForm.tsx Passenger/guest information form

UI Elements (5 components)

Component Description
Header.tsx Global navigation with currency/language selectors
Footer.tsx Site-wide footer with links
FlightResultCard.tsx Flight display card with expandable details
StepIndicator.tsx Progress tracker for multi-step flows
ReviewConfirm.tsx Final review before payment

Loading States (2 components)

Component Description
FlightCardSkeleton.tsx Animated loading placeholder for flights
FiltersSkeleton.tsx Loading placeholder for filters

Primitive Components (4 files)

File Description
primitives/badge.tsx Styled badge component with variants
primitives/button.tsx Reusable button with multiple styles
primitives/input.tsx Form input with label and validation
primitives/carousel.tsx Image carousel with navigation

Utilities (2 files)

File Description
types.ts TypeScript interfaces (15+ types)
data.ts Mock data (flights, hotels, packages, visas)

πŸ“Š Mock Data

Flights (MOCK_FLIGHTS)

3 airlines Γ— Various routes = 3 sample flights
- IndiGo (6E-2045) – DEL β†’ BOM β€’ β‚Ή5,499 β€’ Direct
- Vistara (UK-911) – DEL β†’ BOM β€’ β‚Ή6,299 β€’ Direct
- Air India (AI-804) – BLR β†’ DEL β€’ β‚Ή4,899 β€’ 1 stop (HYD)

Hotels (MOCK_HOTELS)

6 luxury properties across India
- Taj Mahal Palace (Mumbai) – β‚Ή15,000/night β€’ 5β˜…
- Leela Palace (Bengaluru) – β‚Ή18,000/night β€’ 5β˜…
- Oberoi Udaivilas (Udaipur) – β‚Ή25,000/night β€’ 5β˜…
- Park Hyatt (Goa) – β‚Ή12,000/night β€’ 5β˜…
- ITC Grand Chola (Chennai) – β‚Ή14,000/night β€’ 5β˜…
- Trident (Jaipur) – β‚Ή8,000/night β€’ 4β˜…

Packages (MOCK_PACKAGES)

6 curated holiday packages
- Goa Beach Escape – 5D/4N β€’ β‚Ή35,000/person
- Rajasthan Heritage – 7D/6N β€’ β‚Ή52,000/person
- Kerala Backwaters – 6D/5N β€’ β‚Ή42,000/person
- Himachal Adventure – 8D/7N β€’ β‚Ή48,000/person
- Andaman Paradise – 6D/5N β€’ β‚Ή65,000/person
- Golden Triangle – 5D/4N β€’ β‚Ή38,000/person

Visas (MOCK_VISAS)

8 countries with visa assistance
- United States (B-2) – β‚Ή18,500 β€’ 7-10 days
- United Kingdom – β‚Ή14,200 β€’ 15 days
- Canada – β‚Ή11,800 β€’ 20 days
- Schengen (EU) – β‚Ή9,200 β€’ 15 days
- Australia – β‚Ή16,500 β€’ 10 days
- Dubai (UAE) – β‚Ή7,800 β€’ 3-5 days
- Singapore – β‚Ή6,500 β€’ 5-7 days
- Thailand – β‚Ή3,200 β€’ On arrival

πŸ”„ Integration Guide

Moving from Mock to Production

1. Replace Mock Data with API Calls

// Before (Mock)
import { MOCK_FLIGHTS } from "./data";
const flights = MOCK_FLIGHTS;

// After (Production)
const response = await fetch("/api/flights/search", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(searchParams),
});
const flights = await response.json();

2. Connect to Real State Management

// Before (Mock - Local State)
const [filters, setFilters] = useState<FilterState>({ ... });

// After (Production - Global State)
// Option 1: Using Zustand
import { useFlightStore } from '@/stores/search.store';
const { filters, setFilters } = useFlightStore();

// Option 2: Using React Context
import { useSearchContext } from '@/context/SearchContext';
const { filters, setFilters } = useSearchContext();

3. Integrate Payment Gateway

// Replace mock payment with Razorpay
import { useRazorpay } from "@/hooks/useRazorpay";

const { initiatePayment } = useRazorpay();
await initiatePayment({
  amount: totalPrice,
  bookingId: booking.id,
  onSuccess: handlePaymentSuccess,
  onFailure: handlePaymentFailure,
});

4. Add Real AI Chat

// Replace mock responses with OpenAI API
const response = await fetch("/api/ai/chat", {
  method: "POST",
  body: JSON.stringify({ message: userInput, context: conversation }),
});

const stream = response.body;
// Handle streaming response

5. Update Image Sources

// Replace Unsplash with S3/CDN
- image: "https://images.unsplash.com/photo-..."
+ image: "https://cdn.suvidhaescapes.com/hotels/taj-mumbai.jpg"

Design System

Brand Colors

Primary: Purple Gradient (#667eea β†’ #764ba2)
Accent: Orange (#f59e0b)
Success: Green (#10b981)
Error: Red (#ef4444)

Typography

  • Font Family: Geist Sans (Next.js default)
  • Heading Scale: 2rem β†’ 1.5rem β†’ 1.25rem β†’ 1rem
  • Body: 1rem (16px) β€’ Line Height: 1.5

Spacing

  • Grid System: 8px base unit
  • Container Max Width: 1280px
  • Section Padding: 4rem (64px)

Known Limitations

⚠️ Mock-Only Features:

  • No real payment processing (simulated)
  • No backend persistence (data lost on refresh)
  • Limited mock data (3 flights, 6 hotels, 6 packages)
  • Client-side filtering only (no API pagination)
  • Pre-scripted AI responses (not real OpenAI)
  • No email/SMS notifications
  • No authentication/authorization

🚒 Deployment

Build for Production

npm run build
npm run start

About

Full-featured travel booking platform built with Next.js 15, React 19, TypeScript, and Tailwind CSS. Features flight/hotel/package bookings, AI trip planner, and complete payment flows.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages