RUBus is a feature-packed progressive web app (PWA) alternative to the Passio GO! apps for Rutgers University–New Brunswick.
This project is unaffiliated with Rutgers and Passio Technologies.
RUBus features real-time bus locations, bearings, capacities, speeds, time stopped, ETAs, loop time, and live and historical ridership, alongside customization options. Bus positioning is fetched from the Passio API while live speed and ridership estimations are calculated on the client.
This repo does not provide or include a method by which to calculate ETAs. Your own external endpoints or sockets will have to be set if you're computing these server-side.
Alternatively, you can use Passio's own ETA endpoint, although the methodology they use to calculate ETA is unclear:
GET passiogo.com/mapGetData.php?eta=<int>&routeId=<int>&stopIds=<int list>&routeIds=<int list>
Interestingly, the ETA endpoint also returns bus speed while the positioning endpoint does not. This can be used as an alternate source of speed if bandwith is not a concern. It's unclear whether this is actual real speed though, as the returned key is named "calculatedSpeed".
You will also need to supply your own map tiles API key in js/maps.js
and LineString, routes, and stops in lib/
if you're using these. You can also fetch from server to guarantee latest version; check getStopsData()
removed in commit ad0767c
to see how this was previously done. Update the Font Awesome Kit key in index.html
if you'd like to use the same icons.
This app can easily be made to service another bus network Passio handles by changing the form data parameters in js/pre.js
and map coordinates and bounds in js/map.js
.