Skip to content

stevecalla/hiKamp

Repository files navigation

HiKamp

License:  MIT

Index

  1. Overview
  2. Acceptance Criteria
  3. Features
  4. Technologies
  5. Website Preview
  6. Installation
  7. Tests
  8. Future Enhancements
  9. Collaborators
  10. Contributing

Overview

Description

Want to enjoy weekend out camping in the National Parks but unsure of where to go and what to do? HiKamp is here to help you become a campsite guru. HiKamp will provide you with information such as Weather, Access, Fees, Reservations, and more in a single screen. You will be able to also see other campers reviews and comments to get a better idea of what to expect.

User Story

As an outdoors person I want a quick and painless way to find uniform campsite data within the National Park System. HiKamp is the place to go to cut down on your research time and provide the information you need for a wonderful weekend in the National Parks.

Acceptance Criteria

As an outdoors-inclined man or woman, I want to find campsite information quick and easy. 

I'm interested in weather, location, amentities, reservability (whether the campground is by reservation or first come first serve), and information about accessibility.

When I go to the HiKamp app.
Then I am presented with a map and a search bar.

When searching or clicking into a campsite.
Then I am presented with login/registration page.

When I create an account or log in.
Then I am able to access the entire database of campgrounds via a customized Google Map.

When I click into a campsite.
Then I am presented with campsite information, contact information, reservation information, fees, and comments from other users.

When I click to leave comment.
Then I am able to type a comment up about my experience with said campsite for others to view.

When I click the favorite star.
That specific campsite is saved to my favorites and displayed on the left side of my campsite page for easy access.

Features

This highly interactive app allows a user to easily search all campgrounds within the United States National Park Service in all US states and Territories. The app includes features that allows the user to view comments to specific campgrounds. It includes a variety of features such as login, logout, signup, easily save favorite campsites, not to mention a seamless and customized integration with Google Maps for easy and convenient searching. Users can search by Park Name, State Name, Zipcode and/or Campground Name. Our customized pins are located on each National Park campground thoughout the United States and Territories on the map, and users who know which area they wish to camp in but don't know names or zipcodes of the area can also search for specific campgrounds by interacting directly with the map.

Technologies Used

  1. Languages: Javascript, HTML, CSS
  2. Views: handlebars, express-handlebars, Bootstrap, Google Fonts
  3. Back-end Runtime Environment: node.js
  4. Auto-complete Features: jQuery v3.6.0

3rd Party Application Programming Interfaces

  1. National Park Service
  2. Google Maps

Dependencies

  1. express.js for Controller/Router
  2. bcrypt: for password security (hashing)
  3. dotenv: for creating secure production / back-end environments
  4. Axios: to get and render 3rd Party API data
  5. phone-number-formats: npm for formatting telephone numbers
  6. Sessions/Cookies: Sequalize Store: connect-sessions-sequalize
  7. Github: Project Management/Repo
  8. Text-To-Speech:built-in Javascript feature that enables incorporating voice data into web apps.

Website Preview

Static Screenshots

Screen Shot 2022-10-05 at 5 15 10 PM

Screen Shot 2022-10-05 at 5 16 04 PM

Screen Shot 2022-10-05 at 5 16 27 PM

Screen Shot 2022-10-05 at 5 17 39 PM

Screen Shot 2022-10-05 at 5 18 57 PM

Screen Shot 2022-10-05 at 5 20 58 PM

Video Preview

Video Link

Installation

Setup:

  • (1) Fork the repo, (2) Clone the forked repo locally, (3) Run "npm install" (to install the dependencies).

Setup the Database Schema:

  • (1) Update or add an .env file. Include the fields below in the .env file. Note that the .env variables are used in the conf folder, connection.js file.

    • DB_NAME="hiKamp_db"
    • DB_USER=""
    • DB_PASSWORD=""

Seed the Database:

  • Run Server: From the root directory, run either "npm run watch" to start nodemon or "node server.js".
  • Seed Database: (a) To create the database, run "SOURCE ./db/schema.sql" in mySQL, (b) To create the database tables, from the terminal, run "npm run start" or "npm run watch", (c) To seed the database tables, run "npm run seed" or "node ./seeds/index.js".

Note that the seed will also create entries for the user table including hashed passwords. When loggin into the app these user seeds can be used as test email address. Either obtain an email address from the user table (SELECT * FROM user;) or use an option noted below:

If you'd like to use NPM nodemon as/if you make changes to the code, please install nodemon as a development dependency using "npm install --save-dev nodemon" (see https://www.npmjs.com/package//nodemon).

Tests

There are a limited number of tests setup for the helpers util.js file. To run tests install "jest": "^28.1.3" as a dev dependancy, then run "npm test".

For More Information:

  1. NPM Jest
  2. Jest Home Page

Future Enhancements

  1. Incorporate trail data APIs to tie campground searches to long trails for long-distance hikers and backpackers to plan their routes with campgrounds, parking options, and water sources along the way.
  2. Expand search capabilities on Google Maps to include campgrounds of National Forests, BLM lands, State Parks, etc., according to users' requests.
  3. Add weather forecasts to campsite pages
  4. Increase robustness of input validation, and more flexible, approximate searches to allow typos in user inputs.
  5. Offer paid subscriptions for offline use based on GPS data.
  6. Enhance website functionality including add favorites add/delete funcationality across the site, a map of user favorites, automate and integrate the campsite seed & database with the NPS site, add social sharing icons, add ability to email campsite info and more.

Collaborators

  1. Alex Cleveland: Github LINK
  2. Patrick Ratcliff: Github LINK
  3. Rod Bennett: Github LINK
  4. Steve Calla: Github LINK

Resources

  1. GitHub Repo: https://github.com/stevecalla/long-trails
  2. GitHub Projects: https://github.com/users/stevecalla/projects/22
  3. Heroku Deploy: https://hikamp.herokuapp.com/

Contributing

Contributor Covenant Code of Conduct

Contributor Covenant

About

Plan Your Camping Trip

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •