Git Product home page Git Product logo

outdoor_access_ri's Introduction

HTML 5CSS 3JavaScriptReactReact RouterRubyRuby on RailsBootstrapLeaflet for ReactOpenStreetMapsReduxPostgreSQLRenderNodeNPMVSCUbuntu


OARI-logo

Created by Ben Kurose

Final project for the Flatiron School Software Engineering Bootcamp
An application designed to facilitate access to the coast in Rhode Island
LinkedIn · Contact Ben · Report a Bug
Video Presentation »


More Projects:
Congress Stock Watch: Live Deployment »
All Bike Trails »
Munchies »
Visualize »

Table of Contents
  1. About The Project
  2. Usage
  3. License
  4. Contact
  5. Acknowledgments

About The Project

Outdoor Access Rhode Island is a React/Rails application (along with other technologies) designed to help facilitate access to the coast and other outdoor points of interest. After securely logging in, users will be able to create, track, edit, rate, upload photos and comment on different GPS locations.


(back to top)

Technologies Used

  • HTML 5
  • CSS 3
  • JavaScript
  • React
  • React Router
  • Ruby
  • Ruby on Rails
  • Bootstrap
  • Leaflet for React
  • OpenStreetMaps
  • Redux
  • PostgreSQL
  • Render
  • Node
  • NPM
  • VSC
  • Ubuntu

(back to top)

Usage

Outdoor Access Rhode Island is designed to be simple to use while having a robust variety of features. The primary usage of the site involves the creation, viewing, and editing different locations of interest.

(back to top)

Login/Logout

The most fully developed features of the application have to do with the secure sign-up and login. Using front-end HTML5 validations and custom Rails validations on the backend, the registration function does not allow for bad data to be submitted. Users must submit a unique email, username, and a strong password (caps, lowercase, symbol, number all required). Passwords are then kept secure using bcrypt, which scrambles the password storage to keep the database extra secure. Once registered, users can login for an enhanced experience and logout when finished. Many features are only available to logged in users, and are limited further still to editing only their own contributions.

Creating a New Place

One of the key functions of the website is to be able to create new places of interest to add to the database. Using the interactive map, users can click on the map to create a GPS tag in the new place they'd like to add. The positioning information is automatically captured, and the form asks for more details about the specific location. Areas that have the same name or that do not have enough information posted about them are rejected, again using validations to ensure no problematic data gets entered in to the database.

View Existing Places

Once a place has been added, you are able to view it in a number of different ways. The homepage will display a select number of featured places, but specific spots can be searched also be search for on a map, by name, location, or access type. The overview map gives a view of the whole state with GPS tags on the access spots that have already been added.

Comment, Rate, and Upload Photos

After clicking on a outdoor access, the user will be brought to the page for that location. Here more details on the location are available including more photos, a GPS tagged map, amentities availablity, and comments left by users. A logged in user will be able to add and edit their own comments, add a star rating to the location, upload photos from their local machine.

Getting Started

If you would like to run a copy of this application locally, follow the instructions below. These will require you to be familiar with CLI and Git.

Prerequisites

  • Make sure that you have all the prerequisite technologies installed: Ruby 2.7.4, NodeJS (v16), NPM, PostgreSQL

Installation

  • Fork/Clone to your local environment
  • Install required gems and packages:
$ bundle install
$ npm install
  • Seed and start the local database:
$ rails db:migrate
$ rails db:seed
$ rails s
  • Run the frontend locally:
$ npm start --prefix client

(back to top)

License

Distributed under the MIT License. See LICENSE.md for more information.

(back to top)

Contact

Email Ben

(back to top)

Acknowledgments

  • Flatiron School for the excellent ciriculum
  • OpenStreetMaps for allowing me use of their tile server
  • All of the contributors to the various technologies used to create the project
  • Special thanks to Sam, Al, Sharon, Alex, and Meg

(back to top)

Contributors Forks Stargazers Issues LinkedIn

outdoor_access_ri's People

Contributors

bkurose avatar

Stargazers

 avatar

Watchers

 avatar

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.