Skip to content

OneBusAway/onebusaway-application-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The OneBusAway Application Suite Java CI with Maven Join the OneBusAway chat

A project of the non-profit Open Transit Software Foundation!

The OneBusAway application suite's primary function is to share real-time public transit information with riders across a variety of interfaces:

  • Wayfinder - A high-performance web application built with with the SvelteKit JavaScript web app framework
  • OneBusAway Web - A variety of web interfaces to transit data
    • A standard web interface to transit data, including maps and stop pages with real-time info
    • Sign-mode - Same information as the standard web interface, but in a large format for large displays (e.g., large televisions)
    • A mobile-optimized version of the web interface for smart phone mobile browsers
    • A text-only version of the web interface for more-basic mobile browsers
  • OneBusAway REST API - A RESTful web-service that can be used to quickly write applications built on top of transit data. This API powers the following apps:
  • OneBusAway GTFS-realtime export - A bulk export of all trip updates (predictions), vehicle positions, and service alerts for a transit system in the GTFS-realtime format.
  • OneBusAway Watchdog - A module hosting webservices for monitoring realtime data

Watch the YouTube video for more information.

Getting Started

Here are the high-level steps you'll need to take to launch the OneBusAway mobile apps in your area:

  1. Get your schedule transit data in the GTFS format
  2. Have an AVL system that produces arrival estimates (Note: we're working removing this requirement - contact us if you're interested. Alternatively, you may be able to use other open-source projects, such as The Transit Clock, to go directly from raw vehicle locations to arrival times that are shared via GTFS-realtime and SIRI - this would replace Steps 2 and 3.)
  3. Implement a GTFS-realtime or SIRI real-time data feed (We also support other formats)
  4. Set up a OneBusAway server
  5. Do some quality-control testing of arrival times
  6. Request to be added as a OneBusAway region

See the multi-region page for more details.

Setting up a OneBusAway server

There are two options for setting up your own OneBusAway instance:

Development Instructions with Docker

docker compose up builder
docker compose exec builder bash # from another window or tab
./build.sh --help # acquaint yourself with the build.sh options
./build.sh --clean --check-updates --test

# now you have built all of the OBA artifacts:
ls build/org/onebusaway/onebusaway-application-modules

# Download GTFS data and build an OBA transit data bundle from it
docker compose up bundle_builder

# verify that the bundle built as expected
ls docker_app_server/bundle

# Start up the app server
docker compose up appserver

# enter the app server
docker compose exec appserver bash

# run the copy_resources.sh script (it's on your path)
# to copy the necessary WAR files into /usr/local/tomcat
copy_resources.sh

# wait a few seconds for everything to spin up...

Finally, verify that everything works as expected!

Deploy OneBusAway

Deployments

OneBusAway is used in a number of places:

Check out the full list on the OneBusAway Deployments page. Check out the main project page at http://onebusaway.org.

Download

Build and Deploy OBA Artifacts to Maven Central

  1. Set up your environment, including GPG
  2. Run the command mvn deploy -DskipTests
  3. Upload the Zip file at ./target/central-publishing/central-bundle.zip to Maven Central's publishing page.
    • The Zip file is about 600MB in size. Be sure to have a fast, reliable connection.

Open questions and issues:

  • I haven't figured out why I cannot get the mvn deploy command to upload to Maven Central automatically.
  • We need to automate deployment to Maven Central via GitHub Actions eventually, too.

Developer Information

Contact Info

There are lots of ways to get in touch with us.