Late breaking projects for GSoC: API clients

Want to participate in the OneBusAway (OBA)/TransitClock efforts for Google Summer of Code, but you’re not sure your skills line up with the projects we’ve outlined? You’re in luck, because we need folks skilled in Ruby, Python, JavaScript (or TypeScript), Go, and YOUR FAVORITE LANGUAGE HERE to help us build official OneBusAway REST API client libraries!

At their cores, our iOS and Android apps have REST API libraries that can communicate with OneBusAway servers to learn about the available agencies, stops, service, alerts, arrivals and departures, and all of the other information that makes up our mobile apps.

Imagine if your favorite programming language had a pre-built API client that you could use to build a brand new OneBusAway experience. maybe you could build a reminder feature for yourself. Maybe you could build a screen that would show upcoming departures for your favorite stop. Maybe you could build an awesome new take on the OneBusAway experience that we’ve never even imagined!

That’s where you, a prospective Google Summer of Code participant, come in. We want to see proposals for creating official API clients that will be able to talk to OneBusAway servers in a variety of programming languages. These clients should support all of the REST API methods, rich data types supporting all of the API elements, tests demonstrating that all of the functionality works, and some examples to help new users get started.

We think these projects could be a great experience for our GSoC participants, and could help unlock OneBusAway for a new generation of developers.

You can learn more about the REST API at on our developer documentation site. Join us on Slack to ask questions.

Google Summer of Code 2024, here we come!

We are excited to announce that we have officially been accepted into the Google Summer of Code (GSoC) 2024 program as a mentoring organization! Are you interested in taking part in this exciting opportunity? Anyone age 18 or older can participate!

Here are some helpful links to get you started:

How to Craft a Successful GSoC Proposal

Here’s how to craft a successful proposal for our organization:

  1. Review our example projects and consider which area best fits your skill set and interests: https://opentransitsoftwarefoundation.org/2024/01/google-summer-of-code-2024-projects/
  2. Join our Slack and post in the #general channel about your skill set, interests, and what type of project you want to work on this summer to be matched with a mentor.
  3. Clone the appropriate repository from GitHub to become acquainted with building and running the project.
  4. Submit the application/proposal including all requirements at the Google Summer of Code website.

Example Proposals

Looking for examples of how you should structure your proposal for submission, or want to see what a successful proposal might look like? Here are some resources to help you out:

Google Summer of Code 2024 Projects

Update: Look here for more information about creating a proposal and applying.

We’re excited to share that OneBusAway (OBA) and TheTransitClock will be participating in this year’s Google Summer of Code (GSoC)! Google has asked us to create this to help applicants understand the kinds of projects available in our organizations. Please note that this list is not exhaustive! We love hearing ideas from our community!

OBA Server

Containerize development and deployment

Modernize our development and deployment strategy: we’re working on Dockerizing the OneBusAway server, but we need help with making this more seamless, feature rich, and deployable!

We have an outdated, no-longer-functional GitHub repository that Dockerized an older version of the OneBusAway server, and an active effort underway to modernize this, but we need help! In this project, you would take the lead on building and testing Docker images to make it easier and faster to develop and deploy OneBusAway, and establish best practices for deploying to different cloud providers. This is a great opportunity for someone with some experience with Docker, some sort of deployment orchestration technologies (Kubernetes, etc.), and a desire to make a real difference in the adoption of open source transit tools around the world.

Expected outcomes:

  • Functioning Docker images for developing OneBusAway and deploying it to a server.
  • Best practice guidelines for deploying to at least one cloud provider, if not two or three (ideally: AWS, GCP, and Render or Digital Ocean).

Possible mentors:

  • Aaron Brethorst, Executive Director, OTSF (US/Pacific Time)
  • Sean Crudden, Maintainer of TheTransitClock (GMT)

Project Size:

  • 175 hours

Difficulty:

  • Intermediate

Enhance our developer documentation website

We have just launched a new developer documentation website built on Bridgetown (a Ruby static site generator) and Tailwind, but it needs a ton of love!

Our existing documentation is scattered across websites, wikis, blogs, and different GitHub repositories. We need to unify all of our API documentation and guides for building and deploying our software in this one place. In this project, you’ll take the lead in polishing the website itself, fixing links, defining a process for automatically generating and updating API docs from our Java-based server software, and improving our documentation and development guides. This is a great project for a native English speaker (or equivalent proficiency) with a love for getting the details right, and a desire to work on both front end software and improving the lives of developers around the world.

Expected outcomes:

  • Polished our documentation website.
  • Unify disparate sources of documentation, verify that what remains is correct, and write new guidance where necessary.
  • Create a pipeline for generating, loading, and deploying updated Java API docs.

Possible mentors:

  • Aaron Brethorst, Executive Director, OTSF (US/Pacific Time)

Project size:

  • Either 90 or 175 hours, depending on your availability and interest.

Difficulty:

  • Easy

OBA Android App

Android: Improve Accessibility

Our Android app is reasonably accessible, but it needs a full accessibility audit and implementation of the findings/recommendations.

If you have experience with building Android apps and a desire to make the preeminent open source public transit app for Android more accessible, this is a great project for you! You’ll review our Android app’s support for TalkBack, font sizing, appropriate color contrast, hit target sizing, and other features needed to help everyone take full advantage of the app, create a report documenting your findings, and then fix the top priority issues that you’ve discovered.

Expected outcomes:

  • An accessibility audit report.
  • Implementation of the top recommendations from the report.

Possible mentors:

  • Aaron Brethorst, Executive Director, OTSF (US/Pacific Time)

Project size:

  • 90 hours.

Difficulty:

  • Medium

Build Surveys into OneBusAway

Surveys play a key role in helping transit agencies understand the needs of their riders and ultimately to make transit easier to use. In this project, we hope to build short travel survey functionality into the OneBusAway iOS and Android apps that would allow riders to rate aspects of service or answer questions about how to improve their experience on transit. While we may have already identified an iOS developer for this, we are particularly in need of someone who codes for Android.

While OneBusAway has been a beloved app for our riders for more than a decade, at its roots is the conduct of research to examine the impacts of real-time traveler information on the attitudes and behavior of transit customers. This new functionality would allow us to grow this research arm of OneBusAway for the first time in years. A project for its use has already been identified to help transit agencies better serve women’s unique travel experiences such as mobility of care trips and more complicated travel patterns.

Expected outcomes:

  • A production-quality short survey interaction module (to ask single questions or provide ratings) that can be deployed in the Android app.

Possible mentors:

  • Aaron Brethorst, Executive Director, OTSF (US/Pacific Time)
  • Kari Watkins, Board Chair, OTSF (US/Pacific Time)

Project size:

  • 175 hours

Difficulty:

  • Medium

Other Ideas

We’d love to see OneBusAway for Android be updated with new experiences, work on new devices, and so much more. Tell us about your ideas or find some here: https://github.com/OneBusAway/onebusaway-android/issues

OBA iOS App

iOS: Improve Accessibility

Our iOS app is reasonably accessible, but it needs a full accessibility audit and implementation of the findings/recommendations.

If you have experience with building iOS apps in Swift and a desire to make the preeminent open source public transit app for iOS more accessible, this is a great project for you! You’ll review our iOS app’s support for VoiceOver, dynamic text sizing, appropriate color contrast, hit target sizing, and other features needed to help everyone take full advantage of the app, create a report documenting your findings, and then fix the top priority issues that you’ve discovered.

Expected outcomes:

  • An accessibility audit report.
  • Implementation of the top recommendations from the report.

Possible mentors:

  • Aaron Brethorst, Executive Director, OTSF (US/Pacific Time)

Project size:

  • 90 hours.

Difficulty:

  • Medium

Build a Trip Planner

The OneBusAway iOS app needs a trip planner! Be a founding engineer on the project to build the only Apache 2.0-licensed Open Trip Planner library for iOS, and help hundreds of thousands of people reach their destinations.

The top feature request for the OBA iOS application for the past ten years running has been for a trip planner! Unfortunately, there are no open source libraries for iOS that are compatible with Open Trip Planner, and that’s where you come in. You’ll work with Aaron, our Executive Director and iOS app maintainer, to design an Apple-quality trip planning experience, and then build it from scratch in Swift and SwiftUI, taking care to incorporate user research findings and platform best practices along the way.

The result of your work will help hundreds of thousands of people reach their destinations every day, and power the trip planning experiences for every iOS app that uses Open Trip Planner for the next ten years.

Expected outcomes:

  • A production-quality trip planning framework built in Swift.

Possible mentors:

  • Aaron Brethorst, Executive Director, OTSF (US/Pacific Time)

Project size:

  • 350 hours.

Difficulty:

  • Hard

Build an Apple Watch app

We’d love to add a companion Apple Watch app for OneBusAway. Ever wanted to build an Apple Watch app from the ground up that would be used by tens of thousands of people on day 1? Now’s your chance!

Since the introduction of the Apple Watch, we’ve heard from countless users wondering when we’d finally launch a version of our app that is designed for a wrist-based experience. You will help to perform user research, determine the appropriate scope of features, and build our first Apple Watch app, exclusively for watchOS 10 in SwiftUI.

Expected outcomes:

  • A production-quality Apple Watch app, written in Swift and SwiftUI.

Possible mentors:

  • Aaron Brethorst, Executive Director, OTSF (US/Pacific Time)

Project size:

  • 175 hours.

Difficulty:

  • Medium

Other Ideas

We’d love to see OneBusAway for iOS be updated with new experiences, work on new devices, and so much more. Tell us about your ideas or find some here: https://github.com/OneBusAway/onebusaway-ios/issues

TheTransitClock

Following the successful implementation of the Kalman Filter prediction algorithm in TheTransitClock, we now look to tackle the issue of bus route detours.

Detours present a significant issue for the reliability of real-time passenger information systems. If detours are not in the base schedule, they cannot be reflected in arrival predictions provided to passengers.

The automatic detection of detours is the next frontier for passenger information systems to provide reliable information in times of disruption, which is when this information is most relevant to passengers. For transit agencies, the detection of detours for an agency is a difficult and error-prone task that needs to be undertaken daily. Software and processes that help minimise this effort are therefore needed. This is more relevant today as we move out of the current Pandemic and towards issues relating to climate change.

The DetourDetective will take GTFS real-time vehicle location data and the current GTFS schedule as input to generate a modified GTFS schedule with selected detours. This tool will allow transit agencies to take full advantage of their prediction engines and communicate detours to downstream systems.

The DetourDetective will prioritise detours in terms of total impact. It will allow the user to add metadata to each detour and to select which ones need to be included in the chosen output format. Upon automatic detection of detours, transit planners will be able to specify the start and end dates if known, or if this detour is trip specific or route-specific, and if any alert messages need to be sent during the period the detour is active.

The system will also provide an option to highlight possible detours in real-time based on a set of filtering configuration parameters with functionality as described above. When used in conjunction with TheTransitClock, DetourDetective can provide a remedy in the event of unexpected detours being introduced due to unforeseen ground issues.

We expect this new module to further improve the reliability of real-time bus arrival predictions, especially during disruptions.

In future iterations, the DetourDetective will propose estimated times for travel on the detours and detect stop locations on detours.

Expected outcomes:

  • A JVM library that can run alongside TheTransitClock

Possible mentors:

  • Sean Crudden, Maintainer, TheTransitClock (GMT)

Project size:

  • 350 hours.

Difficulty:

  • Hard.

API Clients in Ruby, Python, JavaScript, Go, etc.

(Also seen here: https://opentransitsoftwarefoundation.org/2024/03/late-breaking-projects-for-gsoc-api-clients/)

At their cores, our iOS and Android apps have REST API libraries that can communicate with OneBusAway servers to learn about the available agencies, stops, service, alerts, arrivals and departures, and all of the other information that makes up our mobile apps.

Imagine if your favorite programming language had a pre-built API client that you could use to build a brand new OneBusAway experience. maybe you could build a reminder feature for yourself. Maybe you could build a screen that would show upcoming departures for your favorite stop. Maybe you could build an awesome new take on the OneBusAway experience that we’ve never even imagined!

That’s where you, a prospective Google Summer of Code participant, come in. We want to see proposals for creating official API clients that will be able to talk to OneBusAway servers in a variety of programming languages. These clients should support all of the REST API methods, rich data types supporting all of the API elements, tests demonstrating that all of the functionality works, and some examples to help new users get started.

We think these projects could be a great experience for our GSoC participants, and could help unlock OneBusAway for a new generation of developers.

You can learn more about the REST API at on our developer documentation site.

Expected Outcomes:

  • A code library written in Ruby, Python, JavaScript, Go, etc. (Not Java or Swift—those already exist)
  • The code library supports all of the functionality of the OneBusAway REST API and has rich support for the data elements returned by the API
  • High test coverage
  • Examples demonstrating how the library can be used

Possible Mentors:

  • Aaron Brethorst, Executive Director, OTSF (US/Pacific Time)

Project Size:

  • 175 hours.

Difficulty:

  • Medium