Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/prakharagarwal135/campquest

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.
https://github.com/prakharagarwal135/campquest

authentication authorization bootstrap campgrounds cloudinary expressjs helmetjs maptiler mongodb nodejs render rest-api restful-api reviews sessions

Last synced: 1 day ago
JSON representation

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.

Awesome Lists containing this project

README

        


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](https://github.com/PrakharAgarwal135/CampQuest/blob/main/public/images/readme%20ss/home.png)

>Register page
![register](https://github.com/PrakharAgarwal135/CampQuest/blob/main/public/images/readme%20ss/register.png)

>Showing All Campgrounds
![show](https://github.com/PrakharAgarwal135/CampQuest/blob/main/public/images/readme%20ss/main%20map.png)
![show](https://github.com/PrakharAgarwal135/CampQuest/blob/main/public/images/readme%20ss/all%20camps2.png)

>Showing Single Campground
![show](https://github.com/PrakharAgarwal135/CampQuest/blob/main/public/images/readme%20ss/single%20camp2.png)

>New Campground
![new](https://github.com/PrakharAgarwal135/CampQuest/blob/main/public/images/readme%20ss/new%20camp.png)

---

How to run:

### Prerequisites
Make sure you have the following installed:
- [Node.js](https://nodejs.org/) (with npm)
- [MongoDB](https://www.mongodb.com/) (Make sure MongoDB is running if you’re using a local instance)

### Steps

1. **Clone the repository:**

```bash
git clone https://github.com/PrakharAgarwal135/CampQuest.git
cd CampQuest

2. **Install dependencies:**

```bash
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:

```bash
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_KEY=
CLOUDINARY_SECRET=
MAPTILER_API_KEY=
DB_URL=
SECRET=

4. **Run the application:**

```bash
node app.js

5. **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.