Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lucasweng/yelp-camp
A Node.js web application project from the Udemy course - The Web Developer Bootcamp by Colt Steele
https://github.com/lucasweng/yelp-camp
ejs express express-session geocoder mongodb mongoose passport restful-api
Last synced: 4 months ago
JSON representation
A Node.js web application project from the Udemy course - The Web Developer Bootcamp by Colt Steele
- Host: GitHub
- URL: https://github.com/lucasweng/yelp-camp
- Owner: lucasweng
- License: mit
- Archived: true
- Created: 2017-11-28T10:21:45.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-10-16T23:28:09.000Z (over 6 years ago)
- Last Synced: 2024-09-20T08:31:58.499Z (4 months ago)
- Topics: ejs, express, express-session, geocoder, mongodb, mongoose, passport, restful-api
- Language: JavaScript
- Homepage: https://yelpcamp--demo.herokuapp.com/
- Size: 36.1 KB
- Stars: 40
- Watchers: 5
- Forks: 43
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# YelpCamp
[![Known Vulnerabilities](https://snyk.io/test/github/lucasweng/yelp-camp/badge.svg)](https://snyk.io/test/github/lucasweng/yelp-camp)
[![NSP Status](https://nodesecurity.io/orgs/webdevprojects/projects/e3247e54-2256-44ff-9c8a-e4e087bd49fa/badge)](https://nodesecurity.io/orgs/webdevprojects/projects/e3247e54-2256-44ff-9c8a-e4e087bd49fa)> A Node.js web application project from the Udemy course - [The Web Developer Bootcamp by Colt Steele](https://www.udemy.com/the-web-developer-bootcamp/)
## Live Demo
To see the app in action, go to [https://yelpcamp--demo.herokuapp.com/](https://yelpcamp--demo.herokuapp.com/)
## Features
* Authentication:
* User login with username and password* Admin sign-up with admin code
* Authorization:
* One cannot manage posts and view user profile without being authenticated
* One cannot edit or delete posts and comments created by other users
* Admin can manage all posts and comments
* Manage campground posts with basic functionalities:
* Create, edit and delete posts and comments
* Upload campground photos
* Display campground location on Google Maps
* Search existing campgrounds* Manage user account with basic functionalities:
* ~~Password reset via email confirmation~~ (disabled)
* Profile page setup with sign-up
* Flash messages responding to users' interaction with the app
* Responsive web design
### Custom Enhancements
* Update campground photos when editing campgrounds
* Update personal information on profile page
* Improve image load time on the landing page using Cloudinary
* Use Helmet to strengthen security
## Getting Started> This app contains API secrets and passwords that have been hidden deliberately, so the app cannot be run with its features on your local machine. However, feel free to clone this repository if necessary.
### Clone or download this repository
```sh
git clone https://github.com/lucasweng/yelp-camp.git
```### Install dependencies
```sh
npm install
```or
```sh
yarn install
```### Comments in code
Some comments in the source code are course notes and therefore might not seem necessary from a developer's point of view.
## Built with
### Front-end
* [ejs](http://ejs.co/)
* [Google Maps APIs](https://developers.google.com/maps/)
* [Bootstrap](https://getbootstrap.com/docs/3.3/)### Back-end
* [express](https://expressjs.com/)
* [mongoDB](https://www.mongodb.com/)
* [mongoose](http://mongoosejs.com/)
* [async](http://caolan.github.io/async/)
* [crypto](https://nodejs.org/api/crypto.html#crypto_crypto)
* [helmet](https://helmetjs.github.io/)
* [passport](http://www.passportjs.org/)
* [passport-local](https://github.com/jaredhanson/passport-local#passport-local)
* [express-session](https://github.com/expressjs/session#express-session)
* [method-override](https://github.com/expressjs/method-override#method-override)
* [nodemailer](https://nodemailer.com/about/)
* [moment](https://momentjs.com/)
* [cloudinary](https://cloudinary.com/)
* [geocoder](https://github.com/wyattdanger/geocoder#geocoder)
* [connect-flash](https://github.com/jaredhanson/connect-flash#connect-flash)### Platforms
* [Cloudinary](https://cloudinary.com/)
* [Heroku](https://www.heroku.com/)
* [Cloud9](https://aws.amazon.com/cloud9/?origin=c9io)
## License#### [MIT](./LICENSE)