Git Product home page Git Product logo

bike-share's Introduction

Bike Share

Abstract

In this project we used Ruby, Sinatra, and ActiveRecord to build a web application that analyzes bike share usage in San Francisco using this data. The project structured is centered on the Model, View, Controller (MVC) concept.

This application collects data in two ways: 1) through web forms allowing users to enter trip/station/weather information, and 2) by consuming CSV files with historical information for stations, trips, and weather. In addition to creating and storing this information for viewing at a later date, this application provides a number of user dashboards with higher level analysis of trends in bike share usage.

  • Iteration 1: Allow users to save and view information related to bike share stations.
  • Iteration 2: Create a seed file to consume information on the seventy existing bike share stations in San Francisco.
  • Iteration 3: Create a station dashboard with analysis of station information (split by city, date installed, number of of bicycle docks)
  • Iteration 4: Allow users to save and view information related to trips taken.
  • Iteration 5: Update the seed file to consume information on the nearly 670,000 trips taken between August 29, 2013, and August 81, 2015.
  • Iteration 6: Add information to the station dashboard using trip information, and create a trip dashboard with an analysis of trips taken.
  • Iteration 7: Allow users to enter weather information.
  • Iteration 8: Update the seed file to consume weather information.
  • Iteration 9: Create a weather dashboard and update the trip dashboard with additional analytics regarding the relationship between weather and trips taken.

ActiveRecord

We used ActiveRecord migrations, queries, and methods to create and interact with our Postgresql database. ActiveRecord migrations created a normalized database, and all tables in the database were structured as 2NF or 3NF. ActiveRecord queries and relationships were implemented to calculate and report on information in the database.

User Experience and Conventions

We used Sinatra and ERB templates to render views to create, read, update, and delete resources using restful routes and appropriate HTTP verbs. The dashboard views display information and analytics not related to a specific resource saved in the database. For styling, we used Materialize to create a user experience that allows users to comfortably navigate the site.

Testing

We used RSpec and Capybara to drive development at the feature and model levels.

Project Management and Organization

We used Waffle.io and user stories to communicate our progress and provide feedback to each other on the spec.

bike-share's People

Contributors

blackknight75 avatar case-eee avatar meyerhoferc avatar s-espinosa avatar thekatertot avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

bike-share's Issues

Format date from csv

String formatting method needs to exist for the seed file.
This method should be in a data loading/cleaning module.
All module methods get called in seed file.
The date comes in as day/month/year and active record expects month/day/year

Database Migration

-normalize DB
-seed trip data

Will update structure after whiteboarding

Feature Tests: Edit

  1. /stations/:id/edit
  2. submits new info, click submit
  3. redirects /stations/:id

Feature Tests: Index

  1. user goes to /stations
  2. user sees all stations
  3. can click delete & edit for a station
  4. edit reroutes to /stations/:id, submits, redirects to /stations/:id to see edited version
  5. delete redirects to /stations

Iteration 1 Styling

-set up layout.erb
-use consistent styling
-add classes & ids to HTML consistently
-bootstrap + /public direction styling sheet

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.