https://github.com/mohit-rajak/airbnbwebsite
Full Stack Web Development Website
https://github.com/mohit-rajak/airbnbwebsite
authentication authorization bootstrap cloudnary css html middleware mongodb nodejs passport session tailwindcss
Last synced: 3 months ago
JSON representation
Full Stack Web Development Website
- Host: GitHub
- URL: https://github.com/mohit-rajak/airbnbwebsite
- Owner: Mohit-Rajak
- Created: 2025-02-08T15:32:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-23T05:32:02.000Z (over 1 year ago)
- Last Synced: 2025-06-03T14:58:04.966Z (about 1 year ago)
- Topics: authentication, authorization, bootstrap, cloudnary, css, html, middleware, mongodb, nodejs, passport, session, tailwindcss
- Language: EJS
- Homepage: https://airbnbwebsite-spzc.onrender.com
- Size: 683 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Airbnb Full-Stack Website 🚀
## Table of Contents
- [Project Overview](#project-overview)
- [Technologies & Packages Used](#technologies--packages-used)
- [Key Features](#key-features)
- [How to Install](#how-to-install)
- [Challenges & Solutions](#challenges--solutions)
- [Author](#author)
- [Project Link](#project-link)
- [Thank You](#thank-you)
## 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:**
```bash
git clone https://github.com/Mohit-Rajak/AirbnbWebsite
cd AirbnbWebsite
```
2. **Install Dependencies:**
```bash
npm install
```
3. **Set Up Environment Variables:**
Configure the following environment variables by creating a .env file in the root of your project:
Example :-
```bash
#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:**
```bash
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. 😊
---