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.
To run the Yelp Camp project locally, follow these steps:
- Clone the repository to your local machine:
git clone https://github.com/akdevv/yelp-camp.git
- Navigate to the project directory:
cd yelp-camp
- Install dependencies using npm:
npm install
-
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>>
-
Run the project:
npm start
- Access the application through your web browser at
http://localhost:3000
.
├── 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
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.