Giter Site home page Giter Site logo

usufruct / caravan-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from transittalk/transit-talk

0.0 2.0 0.0 3.49 MB

Empowering citizens to create their own transit network issue reporting systems

Home Page: http://caravan-transit.herokuapp.com/

Ruby 68.31% JavaScript 3.06% CSS 7.01% HTML 21.62%

caravan-app's Introduction

Caravan

Build Status Coverage Status

Caravan is a platform for collective commuters to inquire and report on the status and structure of public transportation stations and lines. Behind the scenes, Caravan is an open-source framework that facilitates efficient implementation of any major transit system that provides their GTFS formatted information. This adaptability to any transportation network provides the potential for an extensive network of locations within one centralized package where users and contributors can take better advantage of transportation resources. Presently, these benefits are products of Caravan's ability to:

  • Process GTFS formatted data and output accurate details regarding scheduling, transportation units, and locations.

  • Act as a community forum where peers can report issues regarding discrepancies in the transit system that are publicly visible to other peers. These issues are likewise marked resolved by future users after the issue has dissipated.

  • Track location which allows for automated presentation of the nearest stops and lines of transportation relative to a user's position.

  • Log individual users with a login system that offers custom settings such as 'Favorite' stops.


In the future we hope to expand the functionality of Caravan by:

  • Analyzing issues and their effect on a user's commute. From there, suggest alternative routes that improve efficiency.

  • Implementing real-time rendering of transportation unit locations.

  • Including more logistical factors and their effect on transit (i.e. transportation fares).

  • Improving personal abilities to create a creative name.

  • Creating an accountability system that will track an individual user's history of reports and closing of other user's reports. Distribute some form of punishment if logs suggest abuse of the platform.

  • Consistently resolve bugs in the code as they appear over the development process. Unresolved issues are logged on GitHub


Using Caravan

Caravan's user interaction occurs through a mobile-oriented website that allows users to view recent reported issues of nearby stops and transportation units.

For a user to report, they must first login or create an account. Navigation between pages is largely centered around the menu icon in the top left corner which opens a directory side menu (also accessible through a right swipe).

The platform utilizes a standard account creation process requiring an email and a password. Once logged in, two core features are unlocked for the user--'Favorite' stops and report submission. Reports are created using the '+' icon located in the bottom right corner. The button takes the user to the issue report page.

The report page has a sequential selection order starting with the transportation line being chosen first. Based on which line is chosen, a list of all the stops on that line are listed and can be selected as an origin of an issue. From there, a user can classify the issue as a 'type' and give a description explaining the details.


BUILD/INSTALLATION INSTRUCTIONS

  • Ruby on Rails v2.3.0 and Other Packages

    • All necessary packages for running this software are provided in the GEMFILE included in the source-code. Use the command:

      $ bundle install
      

      to install all packages listed.

  • Local Testing

    • Navigate to root directory
rails server
* Connect to Localhost:3000 on your browser

Contributor Guide

To learn more about how to contribute, check out our contribution guidelines

Adding New Modular Settings

To add a new modular setting to the settings panel (/settings), add it as a default in config/app.yml and then add the display name of the attribute in config/locales/en.yml under en.settings.attributes.{{new_setting_name}}.name. For example, when adding the theme_color setting, I added a default theme_color of theme_color: "#58b7ff" and then added en.settings.attributes.theme_color.name = "CSS Theme Color".

License

Copyright 2017. Copyright shared among all those listed in CONTRIBUTORS

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Making a New App

Loading Data from transit.land

Start by finding the transit network operator you want to setup a site for from transit.land's feed registry. Grab the onestop_id for the desired operator.

Then run rake transit:set_up_transitland TLAND_AGENCY_ONESTOP_ID=%onestop_id%

Alternatively, the transit agency's onestop_id can be pulled from environment variables, so setting the TLAND_AGENCY_ONESTOP_ID environment variable to your desired onestop_id and then running rake transit:set_up_transitland will also work.

Loading GTFS Data (Deprecated)

Note: This method is now deprecated for the transit.land data import mentioned above

Get the URL for the GTFS data, which we'll call data_url.

Download the file using wget - wget '_data_url_'

Load in the data using the Rake task - rake transit:set_up_transit GTFS_FILE=_path_to_data_file_

Tweaking The Site

We use rails-settings-ui (a UI wrapper for rails-settings-cached) that lets you tweak certain global setttings about your Transit Network site.

To tweak your settings, go to http://your-app-url/settings. Once your settings are updated, you should see the changes reflected immediately (if they are non styling changes) or upon the next server restart. If you need to manually rebuild to test your settings, close your server, run rm -fr tmp/cache to clear built Sass files, and rerun your server.

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.