Giter Club home page Giter Club logo

citi_hikes's Introduction

CITI HIKES

Ever had a nice day on the weekend, wanted to go for a hike, but didn’t know where to hike or what to do? Citi Hikes is a full stack JavaScript application and hike blog, focusing on day trip hikes from Washington, DC.

Check it out live here: http://cithikes.com

Basic Concept

  • Use a RESTful API to return hiking data and display it creatively on a Mapbox Map.
  • Implement full CRUD functionality using RESTful routes.
  • Implement an authentication strategy.

Technologies Used

  • For maps, Mapbox is used.
  • Hiking data is returned using the Hiking Project Data API
  • This app uses the MEHN stack. MongoDB, Express, HandleBars, and Node.js.
  • For authentication, Passport and BCyrpt are used.
  • Materialize is used for some basic formatting (nav bar, forms, and buttons)
  • Flexbox is used in much of the CSS and layout.

Functionality

  • Plot all hikes returned by the hiking API on a map.
  • Have detailed 'show' page of an app which populates with data returned by the hiking API.
  • Two models, for hikes and for users.
  • A subdocument for comments is embedded into the hike model.
  • Full CRUD functionaltiy distributed over both models.
  • Admin level role permissions for users, as well as restricted pages for admin users only.
  • Configuration parameters in place for deployment to Heroku, with an MLAB Mongo DB.

To Do

  • Allow user to specify locations other than Washington DC, and distance to return a list of hikes.
  • Allow an authenticated user to pin or favorite hikes so they come up on their profile page.
  • Rewrite using React framework in resuable components

Installation instructions

  • Clone down this repo
  • run "npm install" to include all the dependencies.
  • Ensure that you have a local instance of MongoDB running.
  • Start the node.js server by running nodemon app.js or node app.js
  • Run "node db/seed.js" to seed the DB with some demo hikes.
  • To create an admin user, you must edit a user directly in the DB, by changing the "isAdmin" boolean attribute to true.

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.