SAIR:- Beyond Boundaries (Full-Stack Web Application)
Table of Contents
- Project Overview
- Technologies & Packages Used
- Key Features
- How to Install
- Challenges & Solutions
- Author
- Project Link
Project Overview
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.
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.
Maps
-
Mapbox: Platform for custom maps and location-based experiences.
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
-
Interactive Maps: Leveraging Mapbox for Location Visualization
-
Login with Email: Traditional email login for user convenience
How to Install
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:
-
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:[email protected]/?retryWrites=true&w=majority
#Add Random Secret Key
SECRET=ckcdenlksufoifafknddsoiddfkadsfafd
Replace the values with your specific configurations.
-
Run the Application:
-
Open in Your Browser:
Open http://localhost:8080/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.
Author
Live Website Link
Sair - Beyond Boundaries
Thanks for visit...