Welcome to Wanderlust, a full-featured web application for camping enthusiasts!
With Wanderlust, you can discover beautiful campgrounds, share your own, write reviews, and connect with a community of outdoor lovers.
This project demonstrates a robust Node.js/Express/MongoDB stack, secure authentication with Passport.js, clean EJS templates, and image handling with Cloudinary.
👉 Coming Soon!
✨ Fully Functional CRUD
- Create new campgrounds with images
- Read details & browse all listings
- Update campground information and images
- Delete campgrounds securely
🔑 Authentication & Authorization
- User registration & login with Passport.js
- Session management & protected routes
- Only owners can edit or delete their listings
💬 Reviews & Ratings
- Add, view, and delete reviews for any campground
- Average ratings displayed with each listing
🗂️ Image Upload
- Upload multiple images per campground with Cloudinary
🎨 Responsive Design
- Clean and intuitive UI built with Bootstrap and EJS
⚡ Flash Messages & Error Handling
- User-friendly success and error notifications
| Tech | Role |
|---|---|
| Node.js | JavaScript runtime |
| Express.js | Backend framework |
| MongoDB | NoSQL database |
| Mongoose | MongoDB ODM |
| Passport.js | User authentication |
| EJS + EJS-Mate | Templating & layouts |
| Cloudinary & Multer | Image uploads |
| Connect-Flash | Flash messages for feedback |
| Method-Override | Supports PUT/DELETE via forms |
Before you begin, ensure you have:
- Node.js & npm installed
- MongoDB running locally or Atlas cluster
- A Cloudinary account for image storage
1️⃣ Clone the repository
git clone https://github.com/mrcoffeebean14/wanderlust.git
cd wanderlust
npm install
DB_URL=mongodb://127.0.0.1:27017/wanderlust
SECRET=yourSessionSecret
CLOUDINARY_CLOUD_NAME=yourCloudName
CLOUDINARY_KEY=yourCloudinaryAPIKey
CLOUDINARY_SECRET=yourCloudinaryAPISecret
mongod
node app.js
