- Project Overview
- Technologies & Packages Used
- Key Features
- How to Install
- Challenges & Solutions
- Author
- Project Link
SAIR is a web application designed to facilitate travel planning and rental accommodations. It leverages JavaScript, EJS, and CSS to provide users with a seamless experience for booking travel and lodging. The project repository contains all the necessary files and resources to deploy the application, aiming to offer a comprehensive solution for travelers seeking convenient and efficient accommodation options.
- MongoDB: NoSQL database for flexible and scalable data storage.
- Express.js: Web application framework for Node.js, providing robust features for web and mobile applications.
- Node.js: JavaScript runtime for server-side development.
- Passport.js: Middleware for user authentication, supporting various strategies.
- Dotenv: Environment variable management for secure configuration.
- Cloudinary: Cloud-based image and video management solution.
- Mapbox: Platform for custom maps and location-based experiences.
- EJS: Embedded JavaScript templates for dynamic content rendering.
- Connect Flash: Middleware for flash messages.
- Connect Mongo: MongoDB session store for Express.js.
- Cookie Parser: Middleware for parsing cookies.
- Joi: Library for data validation.
- Mongoose: MongoDB object modeling for Node.js.
- Multer: Middleware for handling file uploads.
- Passport Local: Local authentication strategy.
- Passport Local Mongoose: Mongoose-specific authentication strategy. Authentication
- User Authentication: Login, Logout, and User Profile Section
- CRUD Operations: Add, Edit, and Delete Listings
- Review System: Add and Delete Reviews
- Account Management: Update User Account and Password
- User Data Security: Password Hashing and Encryption
- Interactive Maps: Leveraging Mapbox for Location Visualization
- Login with Email: Traditional email login for user convenience
Follow these steps to set up and run the project locally:
-
Clone the Repository:
git clone https://github.com/akashdeep023/Airbnb_Project.git cd Airbnb_Project
-
Install Dependencies:
npm install
-
Set Up Environment Variables:
Configure the following environment variables by creating a .env file in the root of your project:
Example :-
#https://cloudinary.com/ (Cloudinary) (Change key) CLOUD_NAME=kjkdmckdhjks CLOUD_API_KEY=89340593499490394 CLOUD_API_SECRET=jdskLKJlklkdlsdfkKKdsdkkd #https://www.mapbox.com/ (Mapbox) MAP_TOKEN=pk.eyJ1IjoiZGVsdGEtc3R1ZHVlbnQiLCJhIjoiY2xvMDk0MTVhMTJ3ZDJrcGR5ZDFkaHl4ciJ9.Gj2VU1wvxc7rFVt5E4KLOQ #https://www.mongodb.com/ (MongoDb Atlas) (Change key) ATLASDB_URL=mongodb+srv://demo:kLKJFKOEMNDDOI9089dndd@cluster0.kkdnvkdkds.mongodb.net/?retryWrites=true&w=majority #Add Random Secret Key SECRET=ckcdenlksufoifafknddsoiddfkadsfafd
Replace the values with your specific configurations.
-
Run the Application:
node app.js
-
Open in Your Browser:
Open
http://localhost:8080/listings
in your web browser.
Encountered challenges, especially with data handling, but implemented efficient solutions. Overcame scalability issues with a well-architected backend.