Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/adiaparmar/wanderlust

A full-stack hotel booking site built with JavaScript, EJS, MongoDB, Express, and Node.js. The application allows users to search for hotels, view availability, and make bookings, featuring a user-friendly interface and secure data management.
https://github.com/adiaparmar/wanderlust

cloudinary ejs express javascript mapbox mongodb nodejs passport

Last synced: about 1 month ago
JSON representation

A full-stack hotel booking site built with JavaScript, EJS, MongoDB, Express, and Node.js. The application allows users to search for hotels, view availability, and make bookings, featuring a user-friendly interface and secure data management.

Awesome Lists containing this project

README

        

# 🌍 Wanderlust: Hotel Booking Website

Welcome to Wanderlust, a modern hotel booking platform designed to simplify your travel planning journey. Whether you’re exploring new destinations or booking a stay for business, Wanderlust ensures a smooth and secure process from searching to booking your perfect hotel.

πŸš€

## πŸ“‹ Table of Contents
- [About the Project](#about-the-project)
- [Key Features](#key-features)
- [Technologies Used](#technologies-used)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)

---

## πŸ“ About the Project

Wanderlust is built to enhance your travel experience by making hotel bookings fast, secure, and easy. The platform offers dynamic hotel search capabilities, an interactive map for location-based exploration, secure user authentication, and much moreβ€”all in one place. Whether you’re looking for a hotel for business or leisure, Wanderlust has got you covered.

### Key Goals of Wanderlust:
- Simplify the hotel booking process
- Provide dynamic search and location-based features
- Ensure secure user authentication for all transactions
- Offer a seamless and responsive user interface

---

## ✨ Key Features

- **Dynamic Hotel Search**: Easily search for hotels based on location, dates, and preferences.
- **Interactive Map**: Explore hotel locations on an interactive map powered by Mapbox.
- **Secure Authentication**: Users can securely create accounts and log in using Passport authentication.
- **Image Upload**: Manage hotel images for both users and admins, with Cloudinary integration.
- **Scalable Deployment**: Hosted on Render for easy scaling and reliability.

---

## πŸ›  Technologies Used

- **Frontend**: EJS, JavaScript, CSS, Bootstrap
- **Backend**: Node.js, Express
- **Database**: MongoDB Atlas
- **Mapping**: Mapbox
- **Authentication**: Passport
- **Image Management**: Cloudinary, Multer

---

## πŸš€ Getting Started

### Prerequisites
Before running the project, ensure you have the following installed:

- Node.js (v14+)
- npm (v6+)
- MongoDB Atlas account
- Render account for deployment (optional)

### Installation

1. **Clone the Repository**
`git clone https://github.com/YourUsername/Wanderlust.git`
`cd Wanderlust`

2. **Install Dependencies**
`npm install`

3. **Set Up Environment Variables**
Create a `.env` file in the root directory:

MONGODB_URI=your_mongodb_connection_string
MAPBOX_API_KEY=your_mapbox_api_key CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret

yaml
Copy code

4. **Run the Application**
`npm start`

---

## πŸ“š Usage

- **Hotel Search**: Use the search bar to find hotels based on location and dates.
- **Interactive Map**: View hotels on the map and get location-based information.
- **User Registration**: Sign up to securely manage your bookings and preferences.
- **Image Management**: Hotel owners and admins can upload and manage images for their listings.
- **Secure Login**: Users can log in using secure authentication through Passport.

---

## 🀝 Contributing

Contributions are what make the open-source community such a wonderful place to learn, inspire, and create. Any contributions you make are greatly appreciated!

### How to Contribute

1. **Fork the Project**
Create your own copy of the project by forking it.

2. **Create Your Feature Branch**
`git checkout -b feature/AmazingFeature`

3. **Commit Your Changes**
`git commit -m 'Add some AmazingFeature'`

4. **Push to the Branch**
`git push origin feature/AmazingFeature`

5. **Open a Pull Request**
Submit your changes through a pull request for review.

---

## πŸ“œ License

Distributed under the MIT License. See LICENSE for more information.

---

## πŸ“ž Contact

Project Maintainers:

- **Aditya Kumar Singh**
Email: [email protected]
GitHub: [Adiaparmar](https://github.com/Adiaparmar)

Feel free to reach out with any questions or feedback!

---

**Showcase your Project!**
We'd love to hear how you're using Wanderlust! Share your success stories or showcase your implementations with us on GitHub.