/CampX

"CampX: Discover and share the best campgrounds across Globe, where adventure meets community."

Primary LanguageJavaScriptMIT LicenseMIT

CampX

⭐Star our Repository

Introduction

CampX is a web application designed to help users discover and share campgrounds from around the world. Users can browse through a collection of campgrounds, read reviews, and contribute by adding their own. Each user has control over the campgrounds they add, with the ability to edit or delete them. The platform encourages a community-driven approach to exploring the great outdoors.

Table of Contents

Features

  • Global Campground Discovery: Browse campgrounds from various locations worldwide.
  • User-Generated Content: Users can add campgrounds and reviews.
  • Edit and Delete Permissions: Only the original author of a campground can edit or delete their entry. Admins/Maintainers of CampX can edit or delete campgrounds and delete reviews upon spam detection.
  • Interactive UI: Engaging interface built with HTML, CSS, and JavaScript.

Hosted Website

Visit the live version of CampX here: CampX Website

Tech Stack

  • Frontend: HTML, CSS, JavaScript
  • Backend: Node.js, Express.js
  • Database: MongoDB Atlas
  • Media Storage: Cloudinary

Installation

To set up the project locally, follow the steps mentioned in the INSTALLATION Guide.

Usage

  • Adding a Campground: Users can submit new campgrounds by filling out a form with details such as location, description, and uploading images.
  • Reviewing Campgrounds: Users can add reviews to any campground, sharing their experience and feedback.
  • Editing/Deleting Campgrounds: Only the user who added a campground can edit or delete it.

Configuration

The application requires a few configurations to run:

  • MongoDB Atlas: Set up a cluster and obtain the connection string.
  • Cloudinary: Create an account to manage image uploads.
  • Mapbox:Create an account and get the MAPBOX TOKEN.

Ensure that your environment variables are correctly set in the .env file as shown in the Installation section.

Dependencies

Key dependencies used in the project include:

  • Express - Fast, unopinionated, minimalist web framework for Node.js.
  • Mongoose - Elegant MongoDB object modeling for Node.js.
  • Cloudinary - Media management platform for image and video uploads.
  • dotenv - Module to load environment variables from a .env file into process.env.

You can view all dependencies in the package.json file.

Contributing

We welcome contributions to CampX! To get started, follow the guidelines in the CONTRIBUTING file.

Contributors

Code of Conduct

We are committed to fostering a welcoming and inclusive environment for everyone. Please take a moment to review our Code of Conduct, which outlines our expectations for participant behavior and how we handle reports of misconduct.

By participating in this project, you agree to abide by our Code of Conduct.

License

This project is licensed under the MIT License. See the LICENSE file for more details.