This project is a web application designed for users to showcase their properties, making them available for others to explore. It encompasses both front-end, back-end, and database components, all organized using the MVC (Model-View-Controller) architecture.
- Description
- Website
- Features
- Tech Stack
- Installation
- Usage
- Database
- Authentication and Authorization
- Frontend
- Error Handling
- Maps Integration
- Cloudinary
- User registration and login.
- Creating, editing, and deleting property listings.
- Adding and deleting reviews for listings.
- Ensuring that only the owner of a listing can make changes.
- Providing property details, including title, description, image uploads, pricing, and location.
- Leveraging Mapbox for displaying property locations on maps.
- Implementing comprehensive error handling.
- Crafting an interactive and responsive frontend.
- JavaScript
- Node.js
- Express.js
- EJS
- CSS
- MongoDB (Database)
- Mapbox API (for mapping)
- Cloudinary API (for image storage)
- Clone this repository.
git clone https://github.com/Ritvik718/Wanderlust.git- Install project dependencies.
npm install-
Set up your MongoDB database.
-
Configure environment variables as needed.
-
Start the server.
node app.js-
Register or log in to your account.
-
Add property listings with details, including title, description, images, pricing, and location.
-
Edit or delete your listings as needed.
-
Add and delete reviews for property listings.
-
Only the owner of a listing can modify or delete it, ensuring proper authorization.
For local development and testing, the project is set up to use MongoDB. You don't need to worry about MongoDB Atlas unless you intend to host the project in the cloud. To run the project on your local environment, ensure that MongoDB is properly installed and configured, and you'll only need the local MongoDB connection URL.
Authentication and authorization are implemented to protect the integrity of the listings and reviews. Only the owner of a listing can make modifications.
The frontend of this project is designed with a user-friendly interface, focusing on an elegant and intuitive user experience. It features a responsive design to ensure that users can access and interact with the website seamlessly across various devices.
Comprehensive error handling is implemented to handle various situations, ensuring a smooth user experience.
The application integrates Mapbox to display property locations on maps, enhancing the user experience.
The project utilizes Cloudinary for image storage and management. Cloudinary offers a cloud-based solution for uploading, storing, optimizing, and delivering images and videos. It simplifies the process of handling media assets, ensuring fast and reliable image delivery for a seamless user experience.