- 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.
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.
- Clone the repository:
git clone https://github.com/ashhh-01/HomeBnB.git
- Navigate to the project directory Navigate to the project directory:
cd [Filename]
- Install dependencies:
npm install
- Set up MongoDB Atlas database. And run
node seeds/index.js
- Set up a cloudinary, Mapbox, Unsplash developer accounts
- 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
- Start the server:
npm start
- Open your browser and visit http://localhost:3000\homebnb to access the application.
- Node.js
- Express.js
- EJS
- Bootstrap
- Mongoose
- Passport.js
- Helmet
- session
- Other dependencies can be found in the package.json file.
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