Giter Site home page Giter Site logo

belqati / yelpcampdeployment Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 976 KB

Fullstack web app (MongoDB, Express, NodeJS) providing a persistent platform for browsing, creating and managing campgrounds and user profiles. Live version:

Home Page: https://evening-everglades-41057.herokuapp.com

License: MIT License

JavaScript 41.36% CSS 12.89% HTML 45.74%
yelpcamp mongodb express nodejs

yelpcampdeployment's Introduction

TOC

Introduction

landing-page.jpg

YelpCampDeployment is a refactored version of the yelpCamp project developed under the instruction of Colt Steele, with a shoutout to Ian Schoonover and Zarko Maslaric. The project is my first fully deployed fullstack app, and is not intended for heavy use. It allows a user to accomplish the following:

  • browse campgrounds and registered users
    • no login required
  • search (fuzzy) for campgrounds and registered users
    • no login required
  • create and manage a yelpCamp profile
    • edit profile info
    • reset forgotten password via registered email
    • delete profile
  • create and manage campgrounds
    • must be signed in to a yelpCamp profile
    • post a campground
    • edit posted campground info
    • delete posted campground
  • comment on any posted campground
    • must be signed in to a yelpCamp profile
    • edit one's own posts
    • delet one's own posts
  • edit/delete other user content
    • must have administrative privileges

See the live version here: https://evening-everglades-41057.herokuapp.com. Feel free to experiment with it, and please reach out to me if bugs are found.


Select Packages and Features

This app leverages the following strategies. For all installed packages see package.json. For further explanation see the relevant dev notes in each route for the package in question.

  • express and mongoose for RESTful and CRUD strategies

  • passport for local authentication/authorization

  • connect-flash for front-end error handling

  • ejs for templating

  • node-geocoder for implementing Google Maps APIs

  • cloudinary for hosting and moderating user uploaded images

  • mLab for hosting a persistent MongoDB database

  • Heroku for app deployment


Functional Summary

Campground and User Show Pages

The show page for each campground boasts a fully interactive map via the Google API. On loggin in users can create campgrounds and contributed comments. Options for editing or deleting the campground and/or comments appear if the logged-in user posted them.

The show page for each user is similar but simpler, with the authorization functionality for editing and deleting also present.

Search Results

The search feature is currently limited to campground names and usernames. Like the index pages for all campgrounds and all users, search results are displayed in paginated format. The default number of displayed search results can be adjusted in the search.js route by modifying the perPage variable. The same holds true for the campgrounds and users index pages via the campgrounds.js and users.js, routes, respectively.

Administration

Administration is built into the user profile on the database side, where all registered users are {isAdmin: false} by default. This is where I departed from the course, leaving the option for {isAdmin: true} up to the sole discretion of the one having database permissions to do so. That is, it cannot be accessed through the front-end, but in the current version must be human-moderated. If a user profile is granted administrative authorization, they have the ability to edit or delete any other user profile, campground, and comment.

All images uploaded by registered users are filtered through Cloudinary's moderation tools: WebPurify for human moderation; aws Rekognition for AI moderation. Both are fast, and allow uploaded images to appear right away (presuming they are not flagged).

yelpcampdeployment's People

Contributors

belqati avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

kadoarc

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.