π Experience IndiBooking live at indibooking.click
A high-performance, full-stack MERN hotel booking platform featuring dynamic search, multi-step reservations, and enterprise-grade AWS deployment with auto-scaling capabilities.
- β‘ Optimized Performance: Achieved exceptional Lighthouse scores (100 Accessibility, 100 Best Practices, 73 Performance) with API response times under 400ms
- ποΈ Scalable AWS Architecture: Deployed on Elastic Beanstalk with auto-scaling, S3 + CloudFront for frontend, and Route 53 domain management
- π Secure Authentication: Implemented efficient JWT-based authentication system with secure cookie handling
- π Optimized Database: Designed MongoDB schema to handle complex hotel-room-reservation relationships with fast query performance
Visit the live platform: indibooking.click
Experience a fully functional hotel booking platform with real-time availability, dynamic pricing, and seamless reservation management.
Frontend:
- React 18 with modern hooks and functional components
- React Router DOM for client-side routing
- React Date Range for booking date selection
- Axios for HTTP requests with interceptors
- FontAwesome icons for enhanced UI
- CSS modules for component styling
Backend:
- Node.js with Express.js framework
- MongoDB with Mongoose ODM
- JWT-based authentication with httpOnly cookies
- bcryptjs for password hashing
- CORS configuration for cross-origin requests
- Express middleware for error handling
Infrastructure & DevOps:
- AWS Elastic Beanstalk for backend auto-scaling
- Amazon S3 for static website hosting
- CloudFront CDN for caching and HTTPS
- Route 53 for DNS management
- SSL/TLS certificates for secure communication
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Route 53 βββββΆβ CloudFront βββββΆβ S3 Bucket β
β (DNS + Domain) β β (CDN + HTTPS) β β (Frontend) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Route 53 βββββΆβ Elastic BeanstalkβββββΆβ EC2 Auto β
β (API DNS) β β (Load Balancer) β β Scaling β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
β βββββββββββββ β
β β Backend β β
β β Instance β β
β βββββββββββββ β
β βββββββββββββ β
β β MongoDB β β
β β Atlas β β
β βββββββββββββ β
βββββββββββββββββββ
- Dynamic Search: Real-time filtering by location, dates, and guest capacity
- Multi-Step Reservation: Intuitive booking flow with date selection and room selection
- Property Listings: Featured hotels with detailed information and image galleries
- Room Availability: Real-time room status tracking and availability management
- Responsive Design: Mobile-first approach with seamless cross-device experience
- Interactive Components: Date pickers, search filters, and booking modals
- City-Specific Pages: Dedicated pages for major Indian cities (Mumbai, Delhi, Bengaluru)
- Featured Properties: Highlighted accommodations with special offers
- JWT Authentication: Secure token-based authentication with httpOnly cookies
- Password Encryption: bcryptjs hashing for secure user credentials
- CORS Protection: Configured cross-origin resource sharing for API security
- Error Handling: Comprehensive error middleware with proper status codes
IndiBooking/
βββ π hotel-booking/ # Main project directory
β βββ π package.json # Frontend dependencies
β βββ π .gitignore # Git ignore rules
β β
β βββ π public/ # Static assets
β β βββ π index.html # HTML entry point
β β βββ πΌοΈ favicon.ico # App favicon
β β
β βββ π src/ # Frontend source code
β β βββ π App.jsx # Main React component
β β βββ π index.js # React app entry point
β β βββ π axios.js # Axios configuration
β β β
β β βββ π components/ # Reusable UI components
β β β βββ π navbar/ # Navigation component
β β β β βββ π Navbar.jsx
β β β βββ π header/ # Page header component
β β β β βββ π Header.jsx
β β β βββ π featured/ # Featured hotels section
β β β β βββ π Features.jsx
β β β βββ π featuredProperties/ # Property listings
β β β β βββ π FeaturedProperties.jsx
β β β βββ π propertyList/ # Property type filters
β β β β βββ π PropertyList.jsx
β β β βββ π searchItem/ # Search result items
β β β β βββ π SearchItem.jsx
β β β βββ π reserve/ # Reservation modal
β β β β βββ π Reserve.jsx
β β β βββ π mailList/ # Newsletter component
β β β β βββ π MailList.jsx
β β β βββ π footer/ # Footer component
β β β β βββ π Footer.jsx
β β β βββ π mumbai/ # City-specific components
β β β β βββ π Mumbai.jsx
β β β βββ π delhi/
β β β β βββ π Delhi.jsx
β β β βββ π bengaluru/
β β β β βββ π Bengaluru.jsx
β β β βββ π comingSoon/ # Coming soon features
β β β βββ π ComingSoon.jsx
β β β
β β βββ π pages/ # Main application pages
β β β βββ π home/ # Homepage
β β β β βββ π Homes.jsx
β β β βββ π list/ # Hotel listings page
β β β β βββ π List.jsx
β β β βββ π hotel/ # Individual hotel page
β β β βββ π Hotel.jsx
β β β
β β βββ π context/ # React Context for state management
β β βββ π hooks/ # Custom React hooks
β β βββ π login/ # Authentication components
β β βββ π assets/ # Static assets and images
β β
β βββ π api/ # Backend API server
β β βββ π app.js # Express server entry point
β β βββ π package.json # Backend dependencies
β β βββ π .env # Environment variables
β β β
β β βββ π models/ # MongoDB schemas
β β β βββ π User.js # User model
β β β βββ π Hotel.js # Hotel model
β β β βββ π Room.js # Room model
β β β βββ π Reservation.js # Reservation model
β β β
β β βββ π routes/ # API route definitions
β β β βββ π auth.js # Authentication routes
β β β βββ π users.js # User management routes
β β β βββ π hotels.js # Hotel CRUD routes
β β β βββ π rooms.js # Room management routes
β β β βββ π reservations.js # Booking routes
β β β
β β βββ π controllers/ # Route controllers
β β βββ π utils/ # Utility functions
β β β
β β βββ π .ebextensions/ # Elastic Beanstalk configuration
β β β βββ π 00_install_certbot.config
β β β βββ π 01_nginx_proxy.config
β β β βββ π 02_environment.config
β β β βββ π 10_open_https_port.config
β β β
β β βββ π .platform/ # Platform-specific configs
β β
β βββ π build/ # Production build files
- Node.js 18+
- MongoDB (local or Atlas)
- npm or yarn package manager
# Clone the repository
git clone https://github.com/hifzaanDev/indibooking
cd hotel-booking
# Install frontend dependencies
npm install
# Install backend dependencies
cd api
npm install
# Configure environment variables
cp .env.example .env
# Update with your MongoDB connection string and JWT secret
# Start backend server
npm run dev
# Start frontend (in new terminal)
cd ..
npm start# API/.env
MONGO=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
PORT=8080- Lighthouse Scores:
- Accessibility: 100/100
- Best Practices: 100/100
- Performance: 73/100
- API Response Time: < 400ms average
- Database Query Performance: Optimized MongoDB indexes for fast lookups
- Uptime: 99.9% availability on AWS infrastructure
- Auto-Scaling: Elastic Beanstalk handles traffic spikes automatically
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logout
GET /api/hotels- Get all hotels with filteringGET /api/hotels/:id- Get specific hotel detailsGET /api/hotels/countByCity- Get hotel counts by cityGET /api/hotels/countByType- Get hotel counts by type
GET /api/rooms/:id- Get room detailsPUT /api/rooms/availability/:id- Update room availability
POST /api/reservations- Create new reservationGET /api/reservations/user/:userId- Get user reservations
- Frontend: Deployed on S3 with CloudFront CDN for global content delivery
- Backend: Auto-scaling Elastic Beanstalk environment with load balancing
- Database: MongoDB Atlas for managed database with replica sets
- Security: SSL/TLS certificates and secure cookie handling
- Indexed Queries: Strategic indexing for city, type, and availability searches
- Relationship Modeling: Efficient hotel-room-reservation relationships
- Aggregation Pipelines: Complex queries for availability and pricing
- Component-Based Design: Modular, reusable components
- State Management: React Context for global state
- Performance: Code splitting and lazy loading
- User Experience: Intuitive booking flow with validation
Hifzaan Mohammad
π§ Email: [email protected]
πΌ LinkedIn: linkedin.com/in/hifzaan-mohammad
π¨βπ» GitHub: @hifzaanDev
π Experience the full booking platform at indibooking.click