This project is a full-stack web application developed using MERN stack (MongoDB, Express.js, React.js, Node.js). It provides the core functionality of a hotel booking website like aibnb or similar, allowing users to browse for accommodations, view details, make bookings, and manage their listings.
-
Clone the Repository:
git clone https://github.com/Vipu97/HomeStays.git
-
Install dependencies:
Navigate to client directory and install frontend dependencies using npm
npm install
Similary navigate to api folder and install backend dependencies
npm install
-
ENV variables:
-
create .env file in the client folder and add these variables
VITE_BASE_URL= http://localhost:4000
-
create .env file in the api folder and add these variables
CLIENT_URL= http://localhost:5173
-
-
Run project:
- Open terminal, navigate to client directory and run below command to start frontend
npm run dev
- Open another terminal, navigate to api directory and run this command to start backend server
nodemon index.js
-
User Authentication: Users can sign up, log in, and log out securely through google or email. Passwords are hashed for security.
-
View Listings: Users can search and view detailed information about each accommodation, including photos, descriptions, amenities.
-
Make Bookings: Authenticated users can book accommodations for specific dates and get instant confirmation through their emails.
-
Manage Listings: Hosts can create, edit, and remove their listings and get emails after bookings on their hosted places.
-
Responsive Design: The application is designed to be responsive and work seamlessly across different devices.
- MongoDB: NoSQL database for storing user data, listings.
- Express.js: Web application framework for building the backend server.
- React.js: JavaScript library for building the user interface.
- Node.js: JavaScript runtime environment for executing server-side code.
- Tailwind CSS: A utility-first CSS framework
- JWT: JSON Web Tokens for secure user authentication.
- AWS S3: Cloud-based image management for storing and serving images.
- google-outh For login or signup through google.
- emailjs To Send emails to both visitors and hosts on bookings.
- To add payment gateway that ensures transaction in indian currency and provide a seamless experience while booking a place.
For major changes, you are welcome to open an issue about what you would like to contribute. Enhancements are always encouraged and appreciated.