YelpBBQ

YelpBBQ
A RESTful Node.js web application project that allows users to share their BBQ experience by uploading photos and comments.
Live Demo
To see the app in action, go to https://calm-depths-02705.herokuapp.com/
Username: guest Password: guest
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
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)
What Next
- Immigrate to AWS and DynamoDB