Skip to content
Web app that allows users to view, post, comment on campgrounds worldwide. Made with React, Redux, Firebase.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
middleware
models
public
routes
seedData
views
Readme.md
app.js
package.json
seeds.js
todo

Readme.md

Yelp Camp

Summary

YelpCamp is a RESTful web-app I made to get more comfortable using Node.js, MongoDB and express.

This website is not intended for public use. Please note that all campground ratings are randomly generated and some of the data is fake (randomly generated).

YelpCamp allows users to:

  • Search for Campgrounds by Country
  • Signup with an email address, facebook, or google
  • Post Campgrounds
  • Rate Campgrounds
  • Comment on Campgrounds

This is my second web app. I thought I'd outline my thought process here, in case you have questions about decisions I made when coding. I'd appreciate your feedback!

yelp1

App Link: https://aseel-yelpcamp.herokuapp.com/

Stack and Features

Stack: NodeJS, Express, MongoDB

Features:

  • RestFUL Routing with express and mongoose
  • Authentication (Local, Facebook, Google) using Passport.js
  • Image storage via Amazon S3
  • Google Maps API to render campsite location
  • Google Places API to populate DB
  • Search by Country Feature
  • Deployed on Heroku
  • Database hosted on mLab
  • EJS for templating
  • Responsive Design using Bootstrap

yelp2

Where is the Campground data coming from?

I wrote a script to extract around 300 campgrounds from around the world using Google Places API. You can view the extracted data here. (Use a JSON formatter extension) The extracted data consists of the following:

  • Campground Name
  • Campground Location
  • Campground Image
  • Campground Google Place ID
  • Latitude and Longitude
  • Comments

You can view the script to extract campground data using google places API here.

Note: It would have been better to use Factual's API rather than Google Places API, since the latter isn't really meant to be used the way I did. Factual wouldn't supply comments and images though.

How was the DB populated?

I wrote a script that:

  • Creates random users using Faker
  • Creates random ratings
  • Creates campgrounds using the extracted campground data
  • Uploads each campground image to Amazon S3
  • Randomly associates a user with a campground, and ratings with a campground

You can view the script here.

Testing the App

Feel free to test the functionality of this website by signing up and creating/editing campgrounds, comments and ratings. I wrote a script to create 350 random users. You can login as any of those users and test the functionality of the website. Here are a few test users:

You can also create your own account and add/edit campgrounds, ratings or comments

You can’t perform that action at this time.