KYANPUCAMP is a website where users can discover campgrounds. This project was part of _Colt Steele's web dev course on udemy.
Users cannot manage posts and view user profiles without authentication, nor can they edit or delete posts and comments created by other users
- ✂️Create, read, update, delete campsites and campsite reviews
- 🪪Manage account Options for users to edit their profile or delete their account
- 🤖Creation of routes with authentication
- ⚡️User profile includes more information about the user (full name, email, phone, join date)
- 🔎Search for campgrounds by name or location
- 📚Sort campgrounds (ratings, reviews and prices)
- 🧩Google Maps API
- 💎Create and update forms with client-side and server-side **validation
-------------------------------------------------------------------------
Normal Routes
-------------------------------------------------------------------------
[Method] [Route]
GET / Landing page
GET /login Request the user login page
GET /register Request the user edit page
-------------------------------------------------------------------------
Users Route
-------------------------------------------------------------------------
[Method] [Route]
GET /users Fetch all users
POST /users Create new user in database
GET /users/new Request the user register page
GET /users/:id Show the user information
PATCH /users/:id Update user information
DELETE /users/:id Delete user information
GET /users/:id/edit Request the user edit page
-------------------------------------------------------------------------
Sessions Route
-------------------------------------------------------------------------
[Method] [Route]
POST /sessions Create a session (user login)
GET /sessions/login Request the user login page
DELETE /sessions Delete a session (user logout)
-------------------------------------------------------------------------
Campgrounds Route
-------------------------------------------------------------------------
[Method] [Route]
GET /campgrounds Fetch all campgrounds
POST /campgrounds Create a new campground to database
GET /campgrounds/new Request the campground adding page
GET /campgrounds/:id Show the campground information
PUT /campgrounds/:id Update campground information (all)
PATCH /campgrounds/:id Update campground information (part)
DELETE /campgrounds/:id Delete a campground
GET /campgrounds/:id/edit Request the campground editing page
POST /campgrounds/:id/likes Like the campground
-------------------------------------------------------------------------
Comments Route
-------------------------------------------------------------------------
[Method] [Route]
POST /campgrounds/:id/comments Create a new comment
PATCH /campgrounds/:id/comments/:cid Update comment
DELETE /campgrounds/:id/comments/:cid Delete comment
This project was created using Node.js, Express, MongoDB, and Bootstrap. Passport.js was used to handle authentication.
- 🪄Node.js used as environment for writing server-side code
- 🗑RESTful routing using express and mongoose
- 🤖 Express Cookie-Session middleware
- 📢Templating Node.js applications with EJS
- 🔎Responsive sites with Bootstrap allowed mobile friendly
- 🚧 Express method-override middleware to handle update and delete features
- 💾 Non-relational database (MongoDB)
- 📫Mongoose for configuring MongoDB models
- ⚡️Using the "Flash" middleware allows the user to send information (objects, arrays, etc.) to the request to which the user wants to be redirected.
- 🔐 Deploying applications to Heroku and databases to MongoDB Atlas
- 🔬Database hosted on mLab
- 💳passport.js for password hash and salt
- 📍Geocoder with Google Maps API for rendering locations of campsites
Follow the instructions below to set up the environment and run this project on your local machine.
- Clone this repository.
# Clone repository
$ git clone https://github.com/Hsins/udemy_Yelp-Camp.git- Install dependencies via NPM or Yarn
# Install dependencies via npm
$ npm install
# Install dependencies via yarn
$ yarn install- Run the server with nodemon and open a browser to visit http://localhost:3000/.
# Run server
$ npm run dev "express": $ npm install express
"ejs": $ npm install ejs-mate
"Schemas": $ npm install -g schemas
"method-override: $ npm install method-override
"mongoose": $ npm install mongoose
"geocoder":
"connect-flash": $ npm install connect-flash
"Path": $ npm install --save path
"express-session": $ npm install express-session
"passport"
"passport-local"
"passport-local-mongoose"
The skeleton of this project was based on Colt Steele's YelpCamp during the Web Development Bootcamp.
All the notes I took in [Markdown]format. You can find them in my Udemy-Notes repository. The note for this course is here.
Licensed under the MIT License, Copyright © 2023-present Itsyuimorii
