This is a project to learn and practice full-stack web development. Project originated from Colt Steele's course.
- Display hiking trail clusters on map.
- Convenient for users explore new destinations around them.
- Safeguard your GoHiking experience with secure user authentication to protect your profile and ensure a trusted community.
- Strictly limit Create/Edit/Delete permissions to ensure a safe and respectful environment for all users.
- Collect and display latest and detailed information of hiking trails.
- Allow users to post reviews for the trail and rate it.
Install Node.js with NPM from its website.
Once installed, check Node version:
node --version
Check npm version:
npm --version
Install MongoDB and MongoDB Shell (mongosh) from its website.
Cloudinary is used for image storage. Sign up for an free-tier account to receive an API key.
Mapbox is used for a cluster map and individual campground maps. Sign up for an free-tier account to receive an API key.
git clone https://github.com/YXShang97/GoHiking.git
cd GoHiking
npm install
If vulnerabilities are found when packages are installed, run:
npm audit fix
In home directory, create .env file with the below environment variables and input your API keys an MongoDB URL if using MongoDB Atlas.
# Cloudinary credentials
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_KEY=
CLOUDINARY_SECRET=
# Mapbox credentials
MAPBOX_TOKEN=
# MongoDB credentials
DB_URL=
# Secret key
SECRET=
Start the app and open the default (http://localhost:3000) to register an initial user.
nodemon app.js
Open MongoDB Shell (mongosh) and run the following commands to retrieve the user's ObjectID
use hiking-trail
db.users.find()
Copy the user's ObjectID from above and paste into seeds/index.js under author so all of your seeded hikingtrails have an author.
node seeds/index.js
nodemon app.js
Big thanks to Colt Steele in putting in the time and effort to creating such a robust web dev course.




