-
Notifications
You must be signed in to change notification settings - Fork 132
Google Summer of Code 2017
The General Transit Feed Specification (GTFS) has revolutionized multi-modal information and open transit data. Started as a simple way to represent fixed route transit systems by TriMet in Portland, Oregon and Google in 2005, GTFS data is now shared publicly by over 1,500 transit agencies worldwide, according to Transitland.
There are exciting new developments in the world of bike share that could potentially mirror the success of the GTFS data format. The General Bikeshare Feed Specification (GBFS) was launched by the North American Bikeshare Association (NABSA) in 2016 as a standardized way for apps to access information about the availability and location of rental bikes, as well as the capacity of racks where bikes can be returned.
However, unlike the launch of the GTFS format, there currently aren't any open-source tools or projects that demonstrate how GBFS data can be consumed and visualized in a mobile app.
This Google Summer of Code project will help accelerate the adoption and utilization of the GBFS format by implementing open-source tools to consume the data format and visualize it in an existing open-source transportation app:
-
Integrate GBFS data in OpenTripPlanner - This task will add support to consume GBFS data in the OpenTripPlanner project and make it available via the OpenTripPlanner REST API. This step is important as it allows mobile apps to request bikes and hubs in a particular geographic region (vs. all bikes in a city, which is supplied by GBFS). The team will also need to coordinate with the team that TriMet is leading for their Mobility On Demand Sandbox project, as the integration of GBFS into OTP is also part of their roadmap. David Emory from Conveyal has implemented GBFS support as part of the TriMet project in this branch. The Center for Urban Transportation Research at USF did some existing preliminary work on GBFS. However, at this point the above Conveyal branch should take priority.
- Set up OpenTripPlanner GBFS branch with two different systems from the GBFS directory. We should choose one floating bike-based rental system (I'd suggest USF Share-A-Bull in Tampa, FL) as well as a rack-based bike rental system.
- Review existing real-time configuration documentation for OTP. Create step-by-step documentation for setting up and configuring a GBFS system with OpenTripPlanner, building on the existing documentation.
-
Visualize bikeshare data in the OneBusAway mobile app - The OneBusAway Android open-source app already has basic support for trip planning via an OpenTripPlanner server. This project would integrate bikeshare data by pulling the data from OpenTripPlanner and displaying on the map in the app. Currently only transit trip plans are supported in OneBusAway - this project would also extend trip planning support to include bike/bikeshare.
- Review OBA Android Github issue for bikeshare support
- Implement a default layer for floating bikes and zones/racks in OBA Android
- Add bikeshare as a mode in trip planning for OBA Android - Check out OpenTripPlanner Android to see how this is implemented.
- Support deep-linking to rent a specific bike - requires proposal for adding deep links to be implemented by vendor
-
GBFS
- GBFS specification - https://github.com/NABSA/gbfs/blob/master/gbfs.md
- Directory of all known GBFS feeds - https://github.com/NABSA/gbfs/blob/master/systems.csv
- Example bikeshare layer in the USF Maps App for floating bikes in Tampa, FL on USF Tampa campus
- Proposal for adding deep links to GBFS spec to rent a specific bike
-
Conveyal/TriMet OpenTripPlanner GBFS integration with OTP
- GBFS implementation branch - https://github.com/opentripplanner/OpenTripPlanner/tree/gbfs
- Dev server with OTP Bikeshare API endpoint (this OTP server is consuming the Biketown GBFS API) - http://trimet.dev.conveyal.com:8001/otp/routers/default/bike_rental
- Dev server with bikeshare UI - http://trimet-mod-dev.conveyal.com/
- Software that is used for the above OTP server with bikeshare UI - combination of otp-react-redux and trimet-mod-otp.
-
OBA Android
- Existing Github issue for adding bikeshare to OBA Android
- Configuring OBA Android for your own OBA and OTP servers
-
- Has existing bikeshare support. Take a look at this for how we might integrate bikeshare into trip planning.
Expected skillset for a student working on this project includes:
Expected completed coursework includes typical introductory Computer Science classes, for example:
- Data structures
- Object-oriented programming
- Introduction to algorithms
Mentors for this project are:
- Sean J. Barbeau, Ph.D. - Center for Urban Transportation Research @ University of South Florida
- Sean Óg Crudden - Irish Rail
- Stefan Steiniger - Pontificia Universidad Católica de Chile
- Aaron Brethorst - OneBusAway Open-source Project
Questions about this project should be directed to the onebusaway-developers group or the OneBusAway Slack Group (and specifically the #gsoc-2017
channel). Questions specific to OpenTripPlanner are best directed to the OpenTripPlanner Developers Group.