Skip to content

A full-stack web application where users can explore, create, and review campgrounds. Built with Node.js, Express.js, and MongoDB, featuring secure user authentication, interactive map integration, and image uploads. Deployed on Render.

Notifications You must be signed in to change notification settings

PrakharAgarwal135/CampQuest

Repository files navigation

CampQuest (Major Project)

A FullStack web application where users can EXPLORE, CREATE, and REVIEW campgrounds.


Deployment:

  • 🚀 Live Demo: Check out the live version of CampQuest here

CampQuest Features:

  • 🔑 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).

Technologies Used:

Frontend:

  • 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.

Backend:

  • 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.

Database:

  • MongoDB: NoSQL database for storing campground and user data.
  • MongoDB Atlas: Cloud-hosted version of MongoDB for managing the database.

Others:

  • Cloudinary: Cloud-based image hosting and management for campground images.
  • Render: Cloud platform for deploying the application.

Screenshots:

HomePage home

Register page register

Showing All Campgrounds show show

Showing Single Campground show

New Campground new


How to run:

Prerequisites

Make sure you have the following installed:

  • Node.js (with npm)
  • MongoDB (Make sure MongoDB is running if you’re using a local instance)

Steps

  1. Clone the repository:

    git clone https://github.com/PrakharAgarwal135/CampQuest.git
    cd CampQuest
    
  2. Install dependencies:

    npm install
    
  3. 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>
    
  1. Run the application:

    node app.js
    
  2. The application should now be running on http://localhost:3000

Additional Notes

  • Ensure MongoDB is running locally, or use a cloud database provider like MongoDB Atlas.

About

A full-stack web application where users can explore, create, and review campgrounds. Built with Node.js, Express.js, and MongoDB, featuring secure user authentication, interactive map integration, and image uploads. Deployed on Render.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published