WanderLust is a comprehensive full-stack web application designed to facilitate the discovery and sharing of unique travel destinations and accommodations. Built on the Model-View-Controller (MVC) architectural pattern, it allows users to create, view, edit, and delete listings for various locations around the world. The platform integrates modern web technologies to ensure a seamless user experience, featuring interactive maps, image galleries, and a robust review system.
The application leverages a RESTful API structure with Node.js and Express.js handling the backend logic, while MongoDB serves as the persistent data store. Security and data integrity are prioritized through the implementation of server-side and client-side validation, secure session management using cookies, and user authentication via Passport.js. To enhance functionality, the system utilizes Mapbox for geocoding and map rendering, and Cloudinary for efficient cloud-based image storage. The final application is deployed using Render and connects to a MongoDB Atlas cluster, ensuring scalability and accessibility.
- Authentication & Authorization: Secure user signup and login functionality using Passport.js, ensuring listing protection.
- CRUD Operations: Full Create, Read, Update, and Delete capabilities for Listings and Reviews.
- MVC Structure: Clean code organization separating Models, Views, and Controllers.
- Geocoding & Maps: Integration with Mapbox APIs to convert location names into coordinates and display them on interactive maps.
- Cloud Storage: Efficient handling of image uploads using Cloudinary.
- Data Validation: Robust input validation using Joi for both client and server sides to prevent invalid data entry.
- Flash Messages: Instant feedback for users regarding success or failure of actions.
- Database Relationships: structured MongoDB models linking users, reviews, and listings effectively.
Experience the WanderLust platform live. https://wanderlust-project-6l62.onrender.com/listings
Click on the Deployment Link in the repository details to explore listings, view maps, and test the authentication features.
- Node.js (v14.x or higher)
- npm (Node Package Manager)
- MongoDB (Local instance or Atlas connection)
- Git
git clone https://github.com/VENKATARAMANA-T/WanderLust-Project
cd WanderLustnpm installCreate a .env file in the root directory and add your specific credentials (API keys and Database URL):
node app.jsor if you have nodemon installed:
nodemon app.jsThe application will typically run on http://localhost:8080 (or the port defined in your app.js).
We welcome contributions!
git checkout -b feature/your-feature-namegit add .
git commit -m "Add <description>"
git push origin feature/your-feature-nameAfter pushing your branch, create a Pull Request from your forked repo.