A full-stack web application for discovering, creating, and reviewing campgrounds. Users can explore campgrounds, share experiences, and manage their own listings.
🔗 Live Demo: https://yelpcamp-k843.onrender.com/ 📂 GitHub Repo: https://github.com/Krish-9441/Yelpcamp
- 🔐 Secure user authentication (Register/Login/Logout)
- 🏕️ Create, edit, and delete campgrounds
- ⭐ Add, edit, and delete reviews
- 📍 Interactive maps with location data (MapTiler)
- 🖼️ Image uploads via Cloudinary
- 🔒 Authorization (only owners can modify content)
⚠️ Server-side validation & flash messaging
- Frontend: HTML, CSS, Bootstrap
- Backend: Node.js, Express.js
- Database: MongoDB (Mongoose)
- Authentication: Passport.js
- Cloud Storage: Cloudinary
- Maps & Geolocation: MapTiler
- Improved form validation and error handling
- Optimized route structure for better readability
- Enhanced UI responsiveness
- Added additional authorization checks
- Refactored code for maintainability
- Clone the repository
git clone https://github.com/your-username/yelpcamp.git
cd yelpcamp- Install dependencies
npm install- Create a
.envfile:
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_KEY=your_key
CLOUDINARY_SECRET=your_secret
MAPBOX_TOKEN=your_mapbox_token
DB_URL=your_mongodb_url
SECRET=your_session_secret- Run the application
node app.js- Open: http://localhost:3000
- Designed and implemented RESTful APIs
- Understood authentication & session management using Passport.js
- Integrated third-party services (Cloudinary & Mapbox)
- Managed database relationships using MongoDB & Mongoose
- Improved debugging and backend structuring skills
This project is based on the YelpCamp project from Colt Steele’s Web Developer Bootcamp. All enhancements and implementations were done independently as part of my learning.
Krish GitHub: https://github.com/Krish-9441