A comprehensive bulk-booking subscription platform built with Next.js, TypeScript, and Tailwind CSS. This platform allows guests to purchase bulk accommodation packages and hosts to manage their properties with bulk booking capabilities.
- Package Selection: Choose from Weekend Explorer, Monthly Nomad, and Annual Adventurer packages
- Calendar Integration: Select tentative travel dates with interactive calendar
- Flexible Booking: Modify dates anytime within validity period
- Indian Market Focus: Pricing in Indian Rupees with GST calculation
- 4-Step Booking Flow: Registration β Package Selection β Payment β Confirmation
- Property Management: Enable/disable bulk booking for properties
- Booking Calendar: View and manage bookings with detailed calendar interface
- Revenue Tracking: Monitor performance and occupancy rates
- Guest Management: View guest details and booking information
- Multiple Selection Modes: Single date, multiple dates, or date range selection
- Availability Display: Clear indication of booked, available, and disabled dates
- Responsive Design: Works seamlessly on desktop and mobile devices
- Indian Date Formatting: Localized date display for Indian users
- Frontend: Next.js 15.5.2, React, TypeScript
- Styling: Tailwind CSS, CSS Modules
- UI Components: shadcn/ui component library
- Icons: Lucide React
- Animations: Framer Motion
- Date Handling: Native JavaScript Date API
- Currency: Indian Rupee (INR) formatting
bulk-booking-platform/
βββ app/ # Next.js app directory
βββ components/
β βββ auth/ # Authentication components
β βββ booking/ # Booking flow components
β βββ calendar/ # Calendar components
β β βββ Calendar.tsx # Base calendar component
β β βββ AvailabilityCalendar.tsx # Guest date selection
β β βββ BookingCalendar.tsx # Host booking management
β βββ guest/ # Guest-facing components
β βββ host/ # Host dashboard components
β βββ ui/ # Reusable UI components
βββ services/
β βββ api.ts # Mock API service with INR pricing
βββ types/
β βββ index.ts # TypeScript type definitions
βββ lib/
βββ utils.ts # Utility functions
- Calendar.tsx: Base calendar component with multiple selection modes
- AvailabilityCalendar.tsx: Guest-facing calendar for date selection
- BookingCalendar.tsx: Host-facing calendar for booking management
- GuestRegistration.tsx: User account creation
- PackageSelection.tsx: Package selection with calendar integration
- PaymentScreen.tsx: Payment processing with GST calculation
- ConfirmationPage.tsx: Booking confirmation and next steps
- HostDashboard.tsx: Complete host management interface
- PropertyCard.tsx: Individual property management
- BookingCalendar.tsx: Detailed booking calendar view
- Weekend Explorer: βΉ24,999 (6 nights, 12 months validity)
- Monthly Nomad: βΉ74,999 (15 nights, 18 months validity)
- Annual Adventurer: βΉ1,24,999 (30 nights, 24 months validity)
- Oceanview Villa (Goa): βΉ37,500/night
- Mountain Retreat (Manali): βΉ26,700/night
- City Loft (Mumbai): βΉ23,300/night
- Beachfront Condo (Kochi): βΉ31,700/night
All prices include 18% GST as per Indian tax regulations
- Node.js 18+
- npm or yarn or bun
- Clone the repository:
git clone https://github.com/dhruvpuri/bulk-booking.git
cd bulk-booking- Install dependencies:
npm install
# or
yarn install
# or
bun install- Run the development server:
npm run dev
# or
yarn dev
# or
bun dev- Open http://localhost:3000 in your browser
- Guest: [email protected] / password
- Host: [email protected] / password
Create a .env.local file in the root directory:
NEXT_PUBLIC_API_URL=http://localhost:3000/api
NEXT_PUBLIC_CURRENCY=INR
NEXT_PUBLIC_GST_RATE=0.18- Currency: Update
formatINRfunction inservices/api.ts - GST Rate: Modify tax calculation in
PaymentScreen.tsx - Package Pricing: Update
mockPackagesinservices/api.ts - Property Data: Modify
mockPropertiesinservices/api.ts
The platform is fully responsive with breakpoints:
- Desktop: 1024px and above
- Tablet: 768px - 1023px
- Mobile: Below 768px
- Primary: Blue (#3b82f6)
- Success: Green (#059669)
- Warning: Amber (#d97706)
- Error: Red (#dc2626)
- Neutral: Gray scale
- Font Family: Inter
- Headings: 700 weight
- Body: 400-500 weight
- Captions: 400 weight
Currently uses mock authentication. In production, integrate with:
- Firebase Auth
- Auth0
- NextAuth.js
- Custom JWT implementation
Ready for integration with:
- Google Analytics
- Mixpanel
- Amplitude
- Custom analytics dashboard
- shadcn/ui for the beautiful component library
- Tailwind CSS for the utility-first CSS framework
- Next.js for the React framework
- Unsplash for the property images
Built with β€οΈ for the Indian travel market