Skip to content

YelpCamp is a full-stack website project that allows users to explore, create and review campgrounds.

Notifications You must be signed in to change notification settings

akdevv/yelp-camp

Repository files navigation

Yelp Camp

Overview

Yelp Camp is a full-stack website project that allows users to explore, create, and review campgrounds. It provides a platform for users to discover new camping destinations, share their experiences, and connect with fellow outdoor enthusiasts. You can visit the website https://yelp-camp-tkfu.onrender.com.

Screenshots

Homepage

Homepage

All Campgrounds Page

All Campgrounds Page

Show Page

Show Page

New Campground Page

New Campground Page

Edit Campground

Edit Campground Page

Login & Register Page

Login & Register Page

Technologies Used

Frontend

HTML5 CSS3 JavaScript Bootstrap

Backend

NPM NodeJS Express.js

Database

MongoDB

Authentication

Passport

Template Engine

EJS

Deployment

Render

Instructions

To run the Yelp Camp project locally, follow these steps:

  1. Clone the repository to your local machine:
git clone https://github.com/akdevv/yelp-camp.git
  1. Navigate to the project directory:
cd yelp-camp
  1. Install dependencies using npm:
npm install
  1. Set up the environment variables:

    • Create your account on MongoDB and get DB url
    • Create you account on Mapbox and get Access Token
    • Create your account on Cloudinary and get API keys
    • Create a .env file in the root directory
    • And add the following environment variables:
        CLOUDINARY_CLOUD_NAME=<<your-cloud-name>>
        CLOUDINARY_API_KEY=<<your-api-key>>
        CLOUDINARY_API_SECRET=<<your-api-secret>>
        MAPBOX_TOKEN=<<your-mapbox-token>>
        DB_URL=<<your-mongodb-url>>
        SECRET=<<secret-pharase>>
  2. Run the project:

npm start
  1. Access the application through your web browser at http://localhost:3000.

File Structure

├── cloudinary/                 # cloudinary config script
├── controllers/                # backend controllers (express)
├── models/                     # backend models (mongoose)
├── public                      # static assets
│   ├── images/
│   ├── javascripts/
│   └── stylesheets/
├── routes/                     # backend route handlers
├── seeds/                      # database seeding scripts
├── utils/                      # utility functions
├── views/                      # server-side rendered views (EJS)
│   ├── campgrounds             # campground views
│   │   ├── edit.ejs
│   │   ├── index.ejs
│   │   ├── new.ejs
│   │   └── show.ejs
│   ├── layouts                 # boilerplate layout
│   │   └── boilerplate.ejs
│   ├── partials                # EJS partials (flash msg, footer & navbar)
│   │   ├── flash.ejs
│   │   ├── footer.ejs
│   │   └── navbar.ejs
│   ├── users                   # users views
│   │   ├── login.ejs
│   │   └── register.ejs
│   ├── error.ejs
│   └── home.ejs
├── app.js                      # main script file
├── middleware.js               # custom middleware functions
├── schemas.js                  # joi validation schemas
├── .gitignore
├── package-lock.json
├── package.json
└── README.md

Credits

This project was created with reference to the Udemy course The Web Developer Bootcamp by Colt Steele. I appreciate the valuable insights and knowledge gained from the course.

About

YelpCamp is a full-stack website project that allows users to explore, create and review campgrounds.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published