Giter VIP home page Giter VIP logo

yelpcamp's Introduction

YelpCamp

YelpCamp is a web application that allows users to create and review campgrounds.

Technologies Used

  • HTML, CSS, JavaScript
  • Node.js
  • Express, EJS
  • Bootstrap 5
  • Mongodb
  • Cloudinary
  • Mapbox

Features

Session Management and Authentication

The app uses server-side session management. Each unique visit to the site causes a session document to be created and saved to Mongodb. This document stores all related session information, including flash messages and the authenticated user, if any. A session cookie is set in the browser, which is sent on all subsequent requests to associate the request to a particular session.

Unauthenticated users may view any campground or review, but may not create or modify their own. To access the full functionality of the site, users must log in. Authentication is handled using the Passport npm module with a local strategy. This means that users submit their username and password, which are then compared to the salted hash stored in the database using the PBKDF2 cryptographic algorithm.

Campgrounds and Reviews

Authenticated users may create new campgrounds or leave a review for an existing campground. The creator/author of each campground or review is saved to the database, and only that user has the ability to edit or delete.

Image Upload

While creating or editing a campground, users may upload one or more images. On the back-end, the images are uploaded to the Cloudinary cloud hosting platform using the Cloudinary API, and the returned url to the image is stored in the database.

Geocoding and Map View

The app uses the Mapbox Geocoding API to determine the WGS84 coordinates of the location of the campground, which are stored in the database. The location of individual campgrounds is displayed in an interactive map on that campground's page. Additionally, the 'All Campgrounds' page displays a map of all campgrounds in the database, using Mapbox's clustering functionality.

License

MIT

yelpcamp's People

Contributors

snetsrac avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.