Skip to content

Mohit-Rajak/AirbnbWebsite

Repository files navigation

Airbnb Full-Stack Website 🚀

Table of Contents

Project Overview

Excited to share my journey of developing a feature-rich full-stack web application airbnb. The project is built using MongoDB, Express.js, and Node.js.

Technologies & Packages Used

Backend

  • 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.

Authentication

  • Passport.js: Middleware for user authentication, supporting various strategies.
  • Dotenv: Environment variable management for secure configuration.

Image Storage

  • Cloudinary: Cloud-based image and video management solution.

Frontend

  • EJS: Embedded JavaScript templates for dynamic content rendering.

Session Management

  • Connect Flash: Middleware for flash messages.
  • Connect Mongo: MongoDB session store for Express.js.
  • Cookie Parser: Middleware for parsing cookies.

Validation

  • Joi: Library for data validation.

Object Modeling

  • Mongoose: MongoDB object modeling for Node.js.

File Uploads

  • Multer: Middleware for handling file uploads.

Social Authentication

  • Passport Local: Local authentication strategy.
  • Passport Local Mongoose: Mongoose-specific authentication strategy. Authentication

Key Features

  • 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
  • Login with Email: Traditional email login for user convenience

How to Install

Follow these steps to set up and run the project locally:

  1. Clone the Repository:

    git clone https://github.com/Mohit-Rajak/AirbnbWebsite
    cd AirbnbWebsite
  2. Install Dependencies:

    npm install
  3. 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.mongodb.com/ (MongoDb Atlas) (Change key)
    ATLASDB_URL=mongodb+srv://demo:kLKJFKOEMNDDOI9089dndd@cluster0.kkdnvkdkds.mongodb.net/?retryWrites=true&w=airbnb
    
    #Add Random Secret Key
    SECRET=ckcdenlksufoifafknddsoiddfkadsfafd
    
    
    

    Replace the values with your specific configurations.

  4. Run the Application:

    node app.js
  5. Open in Your Browser:

    Open http://localhost:8000/listings in your web browser.

Challenges & Solutions

Encountered challenges, especially with data handling, but implemented efficient solutions. Overcame scalability issues with a well-architected backend. and Deployment

Author

Mohit Rajak
Email: contact.mohitrajak022004@gmail.com
LinkedIn : https://www.linkedin.com/in/Mohit-Rajak/

Thank You

Thank you for exploring Airbnb! Your feedback is valuable. If you have any suggestions or thoughts, feel free to share them with us. 😊