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

# Now, open another window or tab and continue running commands:

docker compose exec builder bash
./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

# Next, build a data bundle:
cd /oba
./build_bundle.sh

# Finally, copy all of the built WAR resources into /usr/local/tomcat
./copy_resources.sh

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

Finally, verify that everything works as expected!

Debugging

VSCode

  1. Make sure that you have completed all of the earlier steps and that this endpoint loads in your browser: http://localhost:8080/onebusaway-api-webapp/api/where/config.json?key=test
  2. Install these extensions:
  1. Set breakpoints in the code file that you want to debug. If you're just getting started, we recommend that you set a breakpoint in onebusaway-api-webapp/src/main/java/org/onebusaway/api/actions/api/where/ConfigAction.java in the index() method.
  2. Open the Run and Debug tab in VSCode, make sure that the debug target dropdown lists Debug (Attach).
  3. Click the Start Debugging button.
  4. Open your web browser and navigate to the API action where you have set a breakpoint. If you have set a breakpoint in ConfigAction.java, navigate to http://localhost:8080/onebusaway-api-webapp/api/where/config.json?key=test

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.