CampQuest (Major Project)
- 🚀 Live Demo: Check out the live version of CampQuest here
- 🔑 User Authentication and Authorisation: Sign up and log in to manage your campgrounds and reviews.
- 🏕 Campground Management: Create, edit, and delete campgrounds.
- 🌟 Ratings and Reviews: Share your thoughts and rate campgrounds.
- 🗺️ Map Integration: See campground locations on an interactive map (Maptiler).
- 📷 Image Upload: Upload photos of campgrounds (Cloudinary).
- HTML5: Structured the content web page.
- CSS3: Styling for layout and design of web page.
- Bootstrap: Front-end framework for responsive web development.
- JavaScript: For client-side interactivity and dynamic content manipulation.
- EJS: Embedded JavaScript
- Maptiler: Interactive maps for displaying campground locations.
- Node.js: JavaScript runtime for back-end development.
- Express.js: Web application framework for building RESTful APIs.
- Mongoose: Creates a connection between MongoDB and the Node.js (ODM).
- Passport.js: Middleware for user authentication and session management.
- Helmet.js: Helps secure the app by setting various HTTP headers.
- Express Sessions: Manages user sessions for persistent login functionality.
- MongoDB: NoSQL database for storing campground and user data.
- MongoDB Atlas: Cloud-hosted version of MongoDB for managing the database.
- Cloudinary: Cloud-based image hosting and management for campground images.
- Render: Cloud platform for deploying the application.
Make sure you have the following installed:
-
Clone the repository:
git clone https://github.com/PrakharAgarwal135/CampQuest.git cd CampQuest
-
Install dependencies:
npm install
-
Set up environment variables:
-
Create a
.env
file in the project's root directory. -
Add the following variables, replacing the values with your own:
CLOUDINARY_CLOUD_NAME=<your_cloud_name> CLOUDINARY_KEY=<your_cloudinary_key> CLOUDINARY_SECRET=<your_cloudinary_secret> MAPTILER_API_KEY=<your_maptile_api_key> DB_URL=<your_mongo_db_connection_string> SECRET=<your_secret_key>
-
Run the application:
node app.js
-
The application should now be running on
http://localhost:3000
- Ensure MongoDB is running locally, or use a cloud database provider like MongoDB Atlas.