Skip to content

A full-stack Node.js project using RESTful routing and a non-relational database.

Notifications You must be signed in to change notification settings

sherryxiaoyizhu/yelp-camp

Repository files navigation

YelpCamp

YelpCamp is a full-stack web-based application using RESTful APIs and MongoDB database, which promotes crowd-sourced reviews and photos about local campgrounds.

Stack

Node.js, Express.js, MongoDB

Environment & Setup

  • Run npm install to download all dependencies from package.json.
  • Recreate a .env file in the root of project directory, template code is given in .env-template.
  • Ensure that the database cluster is active in MongoDB.

Features

Authentication

  • User login with username and password
  • Admin sign up with admin code

Authorization

  • One cannot manage posts and without being authenticated
  • One cannot edit or delete posts and comments created by other users
  • Admin can manage all posts and comments

Users

  • View campgrounds available
  • Sign up account with credentials
  • Login with credentials
  • Create, post, edit, and comment on campgrounds
  • Remove own posts and comments
  • Reset password through a link sent to user's email
  • Look up campgrounds using fuzzy search box
  • View user profiles
  • Flash messages responding to users' interaction with the app

Campgrounds

  • View a variety of campgrounds on home page
  • Select individual campgrounds for further information
  • Each campground has a name, author, description, image, location, price, timestamp since created, and associated comments
  • Each campsite location is rendered using a Google Maps API plugin

Webpage

  • Responsive web design that automatically adjusts for different screen sizes

Technology

Platform

  • GoormIDE - an online integrated development environment
  • Heroku - a cloud platform that runs apps in virtual containers

Front-end

  • JavaScript - high-level, interpreted programming language
  • HTML - standard markup language for creating web pages and web applications
  • CSS - style sheet language used for describing the presentation of a document written in a markup language like HTML
  • EJS - templating language that generates HTML markup with plain JavaScript
  • Bootstrap 4 - an open-source toolkit for developing with HTML, CSS, and JS
  • jQuery - cross-platform JavaScript library designed to simplify the client-side scripting of HTML

Back-end

  • Node.js - JavaScript run-time environment that executes JavaScript code server-side
  • Express.js - minimalist web framework for Node.js
  • mongoDB - open-source cross-platform document-oriented database program
  • mongoose.js - MongoDB object modeling for Node.js
  • moment.js - parse, validate, manipulate, and display dates and times in JavaScript
  • node-geocoder - Node.js library for geocoding and reverse geocoding

Middleware

Source

The Web Developer Bootcamp on Udemy by Colt Steele and Ian Schoonover

About

A full-stack Node.js project using RESTful routing and a non-relational database.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published