Trip Haven is a web application built with Next.js 14, Tailwind CSS, Shadcn, and Oxylabs for web scraping. It allows users to search for accommodations by location, date, number of adults, children, and rooms, and then scrapes Booking.com for results.
Please note that the live website at triphaven.vercel.com is not fully functional due to hosting restrictions on Vercel. However, you can explore the codebase and run the application locally to experience its functionality, but find a live demo here. Demo Video
- Location-based Search: Users can search for accommodations based on their desired location.
- Date Selection: Choose the dates for the stay to find availability.
- Guests and Rooms: Specify the number of adults, children, and rooms required.
- Web Scraping: Utilizes Oxylabs for scraping Booking.com results page.
- Responsive Design: Responsive and mobile-friendly user interface.
- Next.js 14: A React framework for building server-side rendered and static web applications.
- Tailwind CSS: A utility-first CSS framework for quickly styling web applications.
- Shadcn: A library for rapid UI development with style props, themes, and variants.
- Oxylabs: A web scraping tool used for extracting data from Booking.com.
To run the Trip Haven application locally:
- Clone this repository to your local machine.
- Install dependencies using
npm install
. - Set up necessary environment variables.
- Run the application using
npm run dev
. - Access the application through your browser at
http://localhost:3000
.
Contributions are welcome! Feel free to open issues or pull requests for any improvements, bug fixes, or new features you'd like to suggest.
Please note that web scraping may be subject to legal restrictions and terms of service of the websites being scraped. Ensure compliance with all applicable laws and regulations before deploying or using web scraping tools.
![triphaven-home](https://private-user-images.githubusercontent.com/93987931/312479264-7ccd7821-099b-484a-80c4-bad17638223d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTkwNDksIm5iZiI6MTczODk1ODc0OSwicGF0aCI6Ii85Mzk4NzkzMS8zMTI0NzkyNjQtN2NjZDc4MjEtMDk5Yi00ODRhLTgwYzQtYmFkMTc2MzgyMjNkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDIwMDU0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRlYjRhYTJiMzQ5N2E2ZjcwODJkNDUyOTAyODczZGE3MjJmNGM1ZDM2YjIzMWM1YjNjODk1Y2JhODRjNDE3NGQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Sfu0DLtx37iwo2X4f3l5GDFuvXF7ZD5PuhPlkdw1NVQ)
![triphaven-loading](https://private-user-images.githubusercontent.com/93987931/312479700-f452e069-5b45-43d4-af1f-ae7ecd69a0a8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTkwNDksIm5iZiI6MTczODk1ODc0OSwicGF0aCI6Ii85Mzk4NzkzMS8zMTI0Nzk3MDAtZjQ1MmUwNjktNWI0NS00M2Q0LWFmMWYtYWU3ZWNkNjlhMGE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDIwMDU0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkwMmE1MmQ3YWQ0ZDM4YzM2NWNjMzVmYzdmMzFmNDcwMmVjOWU4NGQ0M2Q3MWRiNzNmYzkwOGE0MjJmZmI3MTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.D7sdimB85uKlpYTi07N0N9FAA7sHYJu7oSGYPDbrbwU)
![triphaven-search-results](https://private-user-images.githubusercontent.com/93987931/312479321-823e0343-0836-4eab-96a0-506acd15ebf4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTkwNDksIm5iZiI6MTczODk1ODc0OSwicGF0aCI6Ii85Mzk4NzkzMS8zMTI0NzkzMjEtODIzZTAzNDMtMDgzNi00ZWFiLTk2YTAtNTA2YWNkMTVlYmY0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDIwMDU0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFjZDU3NDU2MzBmN2M3NTgyOTVkZjc0OGRjMmU2OGMzZDNlZTNkZjBjZmQ0NzdjZmExNTQxOTRhYTkwMDkyYWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.zmbPn_KaDIMIfwcB3KvdImcx_q2X6cWFUmtrljbXlNY)