Skip to content
/ Camps Public

This full-stack web application enables users to explore and review campsites worldwide, with features like secure user authentication, dynamic camp submissions, and image uploads managed by Cloudinary. Built with React.js, Node.js, Express.js, and MongoDB, it emphasizes security and a seamless user experience.

Notifications You must be signed in to change notification settings

noama11/Camps

Repository files navigation

🏕️ Camps Review Site

🌟 Overview

Camps Review Site is a full-stack web application that allows users to explore and share reviews of camps from around the world. Registered users can log in to contribute by adding new camps and writing reviews. Built with modern web technologies, this application leverages Node.js, Express.js, MongoDB, and Cloudinary to provide a seamless and secure user experience.

🚀 Features

  • 🔐 User Authentication: Users can register and log in to access site features. Only authenticated users can submit reviews or add new camps.
  • 📝 Camp Reviews: Browse and read reviews of various camps. Registered users can contribute their own reviews.
  • 🏕️ Add New Camps: Authenticated users can add new camps, complete with image uploads securely stored in Cloudinary.
  • 🔒 Security: The application implements comprehensive security measures to protect against common vulnerabilities like code injection.
  • 💾 Database Management: MongoDB is utilized to efficiently store user data, reviews, and camp details.
  • 📷 Image Storage: Images uploaded by users are securely managed and stored using Cloudinary.

🛠️ Technologies Used

  • Frontend: JavaScript JavaScript, HTML, CSS
  • Backend: Node.js Node.js, Express.js Express.js
  • Database: MongoDB MongoDB
  • Image Storage: Cloudinary Cloudinary
  • Authentication and Security:
    • Express Router
    • Express Session
    • Flash Messages
    • Cookies
    • Input Validation and Sanitization

📦 Installation

  1. Clone the Repository:

    git clone https://github.com/your-username/camps-review-site.git
    cd camps-review-site
  2. Install Dependencies:

    npm install
  3. Set Up Environment Variables:

    • Create a .env file in the root of the project.
    • Add the following environment variables:
    MONGODB_URI=<Your MongoDB connection string>
    CLOUDINARY_CLOUD_NAME=<Your Cloudinary cloud name>
    CLOUDINARY_API_KEY=<Your Cloudinary API key>
    CLOUDINARY_API_SECRET=<Your Cloudinary API secret>
    SESSION_SECRET=<Your session secret>
    
  4. Run the Application:

    npm start
    • Open your browser and navigate to http://localhost:3000.

💡 Usage

  • 🔑 Register/Login: Create an account or log in to access all features of the site.
  • 🔍 Browse Reviews: Explore reviews of camps from around the world.
  • ✏️ Submit Reviews: After logging in, share your experiences by writing reviews for camps.
  • ➕ Add Camps: Contribute by adding new camps, complete with descriptions and images.
  • 🔐 Security: Your data is protected with robust security measures implemented in the application.

🔒 Security Measures

  • Express Session and Cookies: Secure session management using Express Session and cookies.
  • Input Validation: All inputs are thoroughly validated and sanitized to prevent malicious attacks.
  • Flash Messages: Enhance the user experience with flash messages, keeping users informed about their actions.

🙌 Acknowledgments

  • Express.js - A robust backend framework.
  • MongoDB - A flexible NoSQL database solution.
  • Cloudinary - For seamless image storage and management.
  • Node.js - The server-side environment powering the application.

About

This full-stack web application enables users to explore and review campsites worldwide, with features like secure user authentication, dynamic camp submissions, and image uploads managed by Cloudinary. Built with React.js, Node.js, Express.js, and MongoDB, it emphasizes security and a seamless user experience.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published