Preview hotel booking website before development starts.
This is a polished concept preview for EasyStay — built around blueprint with featured hotels, search, booking, badges, nearby essentials, and a modern responsive layout.
Featured Hotel Cards
Simple, elegant, and conversion-focused listing preview.
Unique Features Preview
These are the exact high-value sections from blueprint.
Hotel Details Preview
How the decision section can look on the real website.
Theme Showcase
Let the client pick a visual direction before the full project begins.
Project Details & Blueprint
Structured exactly around attached EasyStay project blueprint.
Project Overview
Core project summary, stack, targets, and user roles.
Main User Actions
Everything the user can do inside the EasyStay platform.
Core Features Breakdown
All essential user-facing modules from the blueprint.
Smart Hotel Experience Features
These sections make EasyStay feel more useful and unique.
Availability & Filters
High-value practical sections from the product plan.
Project Folder Blueprint
High-level planned structure.
easystay/
│
├── backend/
│ ├── .env
│ ├── index.php
│ ├── .htaccess
│ │
│ ├── config/
│ │ ├── db.php
│ │ ├── cors.php
│ │ ├── constants.php
│ │ └── env.php
│ │
│ ├── helpers/
│ │ ├── response.php
│ │ ├── auth.php
│ │ ├── validator.php
│ │ ├── upload.php
│ │ └── mailer.php
│ │
│ ├── middleware/
│ │ ├── authMiddleware.php
│ │ └── adminMiddleware.php
│ │
│ ├── api/
│ │ ├── auth/
│ │ │ ├── register.php
│ │ │ ├── login.php
│ │ │ ├── logout.php
│ │ │ ├── forgotPassword.php
│ │ │ ├── sendOtp.php
│ │ │ └── verifyOtp.php
│ │ │
│ │ ├── users/
│ │ │ ├── getProfile.php
│ │ │ ├── updateProfile.php
│ │ │ └── changePassword.php
│ │ │
│ │ ├── hotels/
│ │ │ ├── getHotels.php
│ │ │ ├── getHotelDetails.php
│ │ │ ├── searchHotels.php
│ │ │ ├── getFeaturedHotels.php
│ │ │ └── getNearbyHotels.php
│ │ │
│ │ ├── bookings/
│ │ │ ├── createBooking.php
│ │ │ ├── getBookings.php
│ │ │ ├── getBookingDetails.php
│ │ │ ├── cancelBooking.php
│ │ │ └── checkAvailability.php
│ │ │
│ │ ├── favorites/
│ │ │ ├── addFavorite.php
│ │ │ ├── removeFavorite.php
│ │ │ └── getFavorites.php
│ │ │
│ │ ├── notifications/
│ │ │ ├── getNotifications.php
│ │ │ ├── markAsRead.php
│ │ │ └── createNotification.php
│ │ │
│ │ ├── admin/
│ │ │ ├── addHotel.php
│ │ │ ├── updateHotel.php
│ │ │ ├── deleteHotel.php
│ │ │ ├── uploadHotelImage.php
│ │ │ ├── getAllBookings.php
│ │ │ └── updateBookingStatus.php
│ │ │
│ │ └── common/
│ │ ├── getAppConfig.php
│ │ └── health.php
│ │
│ ├── uploads/
│ │ ├── hotels/
│ │ ├── users/
│ │ └── temp/
│ │
│ └── sql/
│ ├── users.sql
│ ├── hotels.sql
│ ├── bookings.sql
│ ├── favorites.sql
│ └── notifications.sql
│
│
├── app/
│ ├── .env
│ ├── .gitignore
│ ├── app.json
│ ├── eas.json
│ ├── babel.config.js
│ ├── tsconfig.json
│ ├── package.json
│ │
│ ├── app/
│ │ ├── _layout.tsx
│ │ ├── index.tsx
│ │ ├── login.tsx
│ │ ├── signup.tsx
│ │ ├── forgot-password.tsx
│ │ ├── otp-verification.tsx
│ │ │
│ │ ├── hotels/
│ │ │ ├── index.tsx
│ │ │ ├── [id].tsx
│ │ │ ├── search.tsx
│ │ │ └── filters.tsx
│ │ │
│ │ ├── booking/
│ │ │ ├── [hotelId].tsx
│ │ │ ├── confirmation.tsx
│ │ │ └── payment.tsx
│ │ │
│ │ ├── bookings/
│ │ │ ├── index.tsx
│ │ │ └── [id].tsx
│ │ │
│ │ ├── favorites/
│ │ │ └── index.tsx
│ │ │
│ │ ├── notifications/
│ │ │ └── index.tsx
│ │ │
│ │ ├── profile/
│ │ │ ├── index.tsx
│ │ │ ├── edit.tsx
│ │ │ └── change-password.tsx
│ │ │
│ │ ├── support/
│ │ │ └── index.tsx
│ │ │
│ │ ├── admin/
│ │ │ ├── index.tsx
│ │ │ ├── hotels.tsx
│ │ │ ├── bookings.tsx
│ │ │ └── add-hotel.tsx
│ │ │
│ │ └── not-found.tsx
│ │
│ ├── src/
│ │ ├── assets/
│ │ │ ├── images/
│ │ │ ├── icons/
│ │ │ └── fonts/
│ │ │
│ │ ├── components/
│ │ │ ├── common/
│ │ │ │ ├── CustomButton.tsx
│ │ │ │ ├── CustomInput.tsx
│ │ │ │ ├── CustomText.tsx
│ │ │ │ ├── ScreenWrapper.tsx
│ │ │ │ ├── Loader.tsx
│ │ │ │ ├── EmptyState.tsx
│ │ │ │ ├── CustomAlert.tsx
│ │ │ │ ├── ToastMessage.tsx
│ │ │ │ ├── NotificationBell.tsx
│ │ │ │ ├── AppLogo.tsx
│ │ │ │ ├── Divider.tsx
│ │ │ │ └── SectionTitle.tsx
│ │ │ │
│ │ │ ├── layout/
│ │ │ │ ├── WebNavbar.tsx
│ │ │ │ ├── MobileBottomNav.tsx
│ │ │ │ ├── WebFooter.tsx
│ │ │ │ ├── PageHeader.tsx
│ │ │ │ ├── AuthHeader.tsx
│ │ │ │ └── ResponsiveContainer.tsx
│ │ │ │
│ │ │ ├── home/
│ │ │ │ ├── HeroSection.tsx
│ │ │ │ ├── SearchSection.tsx
│ │ │ │ ├── FeaturedHotels.tsx
│ │ │ │ ├── CategoryChips.tsx
│ │ │ │ ├── RecommendationSection.tsx
│ │ │ │ └── NearbyHotelsSection.tsx
│ │ │ │
│ │ │ ├── hotels/
│ │ │ │ ├── HotelCard.tsx
│ │ │ │ ├── HotelGrid.tsx
│ │ │ │ ├── HotelGallery.tsx
│ │ │ │ ├── HotelInfoCard.tsx
│ │ │ │ ├── HotelBadges.tsx
│ │ │ │ ├── HotelAmenities.tsx
│ │ │ │ ├── NearbyEssentials.tsx
│ │ │ │ ├── WhyBookThisHotel.tsx
│ │ │ │ ├── HotelAvailability.tsx
│ │ │ │ └── HotelFilters.tsx
│ │ │ │
│ │ │ ├── booking/
│ │ │ │ ├── BookingForm.tsx
│ │ │ │ ├── DateSelector.tsx
│ │ │ │ ├── GuestSelector.tsx
│ │ │ │ ├── BookingSummary.tsx
│ │ │ │ ├── PriceBreakdown.tsx
│ │ │ │ └── BookingSuccessCard.tsx
│ │ │ │
│ │ │ ├── auth/
│ │ │ │ ├── LoginForm.tsx
│ │ │ │ ├── SignupForm.tsx
│ │ │ │ ├── ForgotPasswordForm.tsx
│ │ │ │ └── OtpForm.tsx
│ │ │ │
│ │ │ ├── bookings/
│ │ │ │ ├── BookingCard.tsx
│ │ │ │ ├── BookingStatusBadge.tsx
│ │ │ │ └── BookingDetailsCard.tsx
│ │ │ │
│ │ │ ├── profile/
│ │ │ │ ├── ProfileCard.tsx
│ │ │ │ ├── EditProfileForm.tsx
│ │ │ │ └── ChangePasswordForm.tsx
│ │ │ │
│ │ │ ├── favorites/
│ │ │ │ └── FavoriteHotelCard.tsx
│ │ │ │
│ │ │ ├── notifications/
│ │ │ │ ├── NotificationCard.tsx
│ │ │ │ └── NotificationList.tsx
│ │ │ │
│ │ │ └── admin/
│ │ │ ├── AdminHotelTable.tsx
│ │ │ ├── AdminBookingTable.tsx
│ │ │ ├── AddHotelForm.tsx
│ │ │ └── ImageUploader.tsx
│ │ │
│ │ ├── constants/
│ │ │ ├── colors.ts
│ │ │ ├── fonts.ts
│ │ │ ├── spacing.ts
│ │ │ ├── routes.ts
│ │ │ ├── api.ts
│ │ │ └── appConfig.ts
│ │ │
│ │ ├── contexts/
│ │ │ ├── AuthContext.tsx
│ │ │ ├── AlertContext.tsx
│ │ │ ├── NotificationContext.tsx
│ │ │ └── ThemeContext.tsx
│ │ │
│ │ ├── hooks/
│ │ │ ├── useAuth.ts
│ │ │ ├── useHotels.ts
│ │ │ ├── useBookings.ts
│ │ │ ├── useFavorites.ts
│ │ │ ├── useNotifications.ts
│ │ │ ├── useResponsive.ts
│ │ │ └── useDebounce.ts
│ │ │
│ │ ├── services/
│ │ │ ├── axios.ts
│ │ │ ├── authService.ts
│ │ │ ├── hotelService.ts
│ │ │ ├── bookingService.ts
│ │ │ ├── favoriteService.ts
│ │ │ ├── notificationService.ts
│ │ │ └── uploadService.ts
│ │ │
│ │ ├── store/
│ │ │ ├── authStore.ts
│ │ │ ├── bookingStore.ts
│ │ │ ├── hotelStore.ts
│ │ │ ├── favoriteStore.ts
│ │ │ └── notificationStore.ts
│ │ │
│ │ ├── types/
│ │ │ ├── auth.ts
│ │ │ ├── hotel.ts
│ │ │ ├── booking.ts
│ │ │ ├── notification.ts
│ │ │ └── user.ts
│ │ │
│ │ ├── utils/
│ │ │ ├── formatPrice.ts
│ │ │ ├── formatDate.ts
│ │ │ ├── calculateNights.ts
│ │ │ ├── validators.ts
│ │ │ ├── storage.ts
│ │ │ ├── token.ts
│ │ │ ├── responsive.ts
│ │ │ └── helpers.ts
│ │ │
│ │ └── styles/
│ │ ├── global.ts
│ │ └── shadows.ts
│ │
│ └── README.md
│
└── Blueprint.txt