Skip to content

ashhh-01/HomeBnB

Repository files navigation

About

This project is a full-stack web application that serves as a clone of Airbnb. It allows users to post homes for rent, leave reviews, and explore available rental options. The application includes CRUD (Create, Read, Update, Delete) functionality and features user authorization, login, and logout capabilities. The stack used for development includes HTML, CSS, Bootstrap, JavaScript, Node.js, Express.js, EJS (Embedded JavaScript), and MongoDB Atlas for the database. The application is deployed using the Render platform and integrates CI/CD (Continuous Integration/Continuous Deployment) practices.

Features

  • User authentication: Users can sign up, log in, and log out of the application. Only authorized users can post homes and leave reviews.
  • Home posting: Users can create and post a home for rent, including details such as location, amenities, pricing, and availability.
  • Review system: Users can leave reviews for homes they have stayed in, providing feedback and ratings.
  • Map integration: The application includes map features, allowing users to view the location of homes on a map.
  • CRUD functionality: Users can perform Create, Read, Update, and Delete operations on homes and reviews.
  • RESTful API: The application follows RESTful API principles, enabling easy integration with external services and future scalability.
  • Cloud data upload: The application supports uploading and storing images and other relevant data in the cloud for efficient data management.

Uploading Images

To upload images to the application, follow these steps:

Log in to the application with your authorized user account. Navigate to the page where you can create a new home or update an existing one. Look for an image upload field and click on it to select an image file from your device. Submit the form to upload the image. The image will be stored in Cloudinary for future use.

Installation

  1. Clone the repository: git clone https://github.com/ashhh-01/HomeBnB.git
  2. Navigate to the project directory Navigate to the project directory: cd [Filename]
  3. Install dependencies:npm install
  4. Set up MongoDB Atlas database. And run node seeds/index.js
  5. Set up a cloudinary, Mapbox, Unsplash developer accounts
  6. Create a .env file in the project root and add the following variables:
    • CLOUDINARY_CLOUD_NAME
    • CLOUDINARY_KEY
    • CLOUDINARY_SECRET
    • MAPBOX_TOKENS
    • DB_URLATLAS
    • --Or Run it locally by connecting it to MongoDB
    • STOREKEY
    • -- Random Key
  7. Start the server:npm start
  8. Open your browser and visit http://localhost:3000\homebnb to access the application.

Dependencies

  • Node.js
  • Express.js
  • EJS
  • Bootstrap
  • Mongoose
  • Passport.js
  • Helmet
  • session
  • Other dependencies can be found in the package.json file.

Deployment

This application is deployed using the Render platform, which supports continuous integration and continuous deployment. Whenever changes are pushed to the main branch of the repository, Render automatically builds and deploys the updated version of the application.

Provide Render with all the necessary secrets

Screenshots

Thank you!