Git Product home page Git Product logo

my-outdoor-adventures's Introduction

My Outdoor Adventures

An Angular 2 fully responsive website that provides campground search, trip stories, photo upload, and campground rating ability.

What problem does My Outdoor Adventures solve?

People trying to find fun and high-quality camping experiences in an area of interest.

Who has this problem?

This site was built for Max, a 30 year old city-dwelling guy who likes to camp and needs to find a great campground for his next trip.

How does your project solve this problem?

This site works on the principle of crowd sourcing. It allows users (adventurers) to find campgrounds and post reports, a picture, and vote on the quality of their experience at the location. The user sourced data, combined with public data allows Max to search for campgrounds that are highly ranked, see some official and adventurer photos, and search within his geographic area.

What web APIs did it use?

  • RIDB - (Recreational Information Database) For campground information.
  • Free Geo IP - To pull default city / state from IP address
  • Google Maps GeoCoding - To convert city / state names to coordinates
  • Cloudinary - Image upload

What technologies did it use?

  • Webpack with Hot Module Reloading
  • Angular 2.0 Final Release
  • TypeScript 2.0
  • Rxjs Observables
  • Angular Router, HTTP client, Forms/Validation, Custom Services, Pipes, and Transitions
  • Karma/Jasmine View Testing
  • Express / Node 6.5
  • Postgres with Knex.js
  • Heroku
  • Eslint for linting JavaScript files
  • TSlint for linting TypeScript files
  • Atom editor with active linting and TypeScript syntax/type checking
  • Angular Material 2
  • Materialize with Angular 2 directives
  • Bcrypt, Crypto (SHA256) encryption, JSON Web Tokens
  • Axios HTTP library.
  • Lodash, jQuery
  • Github issues

What was the most valuable piece of Customer feedback you received?

To work on one feature at a time and make it work the way it would be expected by a user. Generating lots of content is not valuable when the content doesn't work properly or make sense to a consumer.

What was the biggest challenge?

Bringing the complete development environment online with Webpack, hot module reloading, an express server, in-memory transpiling of typescript, live view testing, live linting of JS and TS, and Angular 2 module bootstrapping took quite a while to figure out. The single most troublesome characteristic was figuring out how to make Express send the index file from the in memory transpiled server instead of the file based build folder. An HTTP request was necessary to the in memory server and a piped response to the Express response object.

Images

Search Page Desktop View:

Image of Search Page Desktop View

Search Page Tablet View: All pages are fully responsive

Image of Search Page Tablet View

Search Page Phone View: All pages are fully responsive

Image of Search Page Phone View

Campground Details Page Desktop View: All pages are fully responsive

Image of Campground Details Page Desktop View

Campground Details Page Tablet View Part I: All pages are fully responsive

Image of Campground Details Page Tablet View Part I

Campground Details Page Tablet View Part II: All pages are fully responsive

Image of Campground Details Page Tablet View Part II

Login Page:

Image of Login Page

Registration Page:

Image of Registration Page

Adventurer Page:

Image of Adventurer Page

Adventurer Page Tablet View:

Image of Adventurer Page Tablet View

Adventurer Page Welcome Message:

Image of Adventurer Page Welcome Message

User Settings Page:

Image of User Settings Page

New Adventure Page:

Image of New Adventure Page

Mobile Slide-out Side Nav:

Image of Mobile Side Nav

my-outdoor-adventures's People

Contributors

chadlatham avatar g206 avatar ryansobol avatar

Stargazers

Patrick Richardson avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

ryansobol

my-outdoor-adventures's Issues

Update statistics after new adventure

The add an adventure feature works well, but when you navigate back to the search page, the new adventure is not reflected in the statistics for the campground. Need to either re-query server to refresh statistics or calculate the new stats in the submit function for new-adventure component.

Image transforms

Hi-res images need to be transformed down to optimize Cloudinary usage and improve site speed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.