A modern, responsive hotel website built with React and Vite.
- Multi-language Support: English, Russian, and Kazakh
- Interactive Room Slider: Browse different room types
- Responsive Design: Works on all devices
- Booking System: Functional reservation form with email and WhatsApp integration
- Modern UI: Clean, luxury hotel aesthetic
- Create a
.envfile in the root directory - Add your email credentials:
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
HOTEL_EMAIL=reservations@tanhotel.com
WHATSAPP_NUMBER=+1234567890
PORT=3000Important: For Gmail, you need to use an "App Password" instead of your regular password:
- Enable 2-factor authentication on your Google account
- Go to Google Account settings → Security → App passwords
- Generate a new app password for "Mail"
- Use this password in the
EMAIL_PASSfield
Update the WhatsApp number in src/App.jsx:
const whatsappUrl = `https://wa.me/YOUR_ACTUAL_NUMBER?text=${encodeURIComponent(whatsappMessage)}`# Install dependencies
npm install
# Development mode
npm run dev
# Production build and server
npm run startThe booking form includes:
- First Name (required)
- Last Name (required)
- Phone Number (required)
- Email (optional)
- Check-in Date (required)
- Check-out Date (required)
- Check-in Time (required)
- Room Type (required)
- Breakfast Option (optional)
- Number of Guests (required)
- User fills out the form with their booking details
- Form validation ensures all required fields are completed
- WhatsApp message is automatically opened with booking details
- Email notification is sent to the hotel's email address
- Success message is shown to the user
- React 18
- Vite
- Express.js (for backend)
- Nodemailer (for email sending)
- CSS3 with modern animations
├── src/
│ ├── App.jsx # Main React component
│ ├── App.css # Styles
│ └── assets/ # Images and static files
├── server.js # Express server
├── package.json # Dependencies
└── env.example # Environment variables template
- Update the
roomSlidesarray inApp.jsx - Add corresponding translations in the
translationsobject - Update the room type options in the booking form
The website uses a luxury hotel aesthetic with:
- Elegant typography (Playfair Display)
- Warm color palette
- Smooth animations
- Responsive grid layouts
For any issues or questions, please contact the development team.