· Aaron Brethorst

Google Summer of Code 2025 Project Ideas

Caution: Please do not consider this list to be definitive: we have lots of ideas for projects we want to see pursued as part of GSoC 2025, but will certainly not receive as many slots as we want. The order of the list is also not indicative of priority.

AI/ML Projects

Transit Stop Identification

Difficulty: Advanced // Size: 350 hours

Have you ever tried to find your specific bus or train stop in an app while you're standing in your city center? Tall buildings make precise GPS location finding a challenge, you may not know which direction you're facing, and finding the right stop on the OBA map can be really difficult! We want to begin introducing AI/ML features to OneBusAway with a small on-device model that can run on iOS and Android to help identify the ID of a transit stop from a sign and then automatically open the correct stop in the OBA app.

You will be responsible for:

  • Helping to create features in our mobile apps to allow existing users to submit training data (i.e. images of transit stop signs)
  • Building the final model on top of MobileNet-v3-Small or another similar model
  • Helping to integrate the final model into OBA on iOS and/or Android

Web UI Projects

Wayfinder Improvements

Difficulty: Intermediate // Size: 175 hours

Wayfinder is our best-in-class SvelteKit based web application. It needs a full accessibility audit and fixes made where applicable. Additionally, we've built a lot of great features, but they are largely untested today. We need someone to enhance our unit testing suite to ensure that changes don't cause regressions. Finally, there are a handful of fit and finish improvements that we need to make to the project.

Expected outcomes:

  • An accessibility and usability audit report.
  • Implementation of the top recommendations from the report.
  • Improved test coverage.
  • Fit and finish.

Next Generation Sign Mode

Difficulty: Intermediate // Size: 175 hours

Next generation Sign Mode is a web application that will let transit agencies and businesses easily create public transit information systems. Our old web app includes a sign mode feature, but the feature didn't make it into Wayfinder. Instead, we want to see a new, standalone web app built in SvelteKit that matches or exceeds the feature set of the old sign mode.

Android App

Accessibility Improvements

Difficulty: Intermediate // Size: 90 hours

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.

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

iOS App/Apple Platforms

Improve iOS App Accessibility

Difficulty: Intermediate // Size: 90 hours

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.

Build a Trip Planner

Difficulty: Advanced // Size: 350 hours

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/SwiftUI
  • Full integration into OneBusAway

Build an Apple Watch App

Difficulty: Advanced // Size: 350 hours

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 11 in SwiftUI.

Expected outcomes:

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

Survey Features

Difficulty: Intermediate // Size: 175 hours

One of our GSoC 2024 participants created a survey feature for our Android app, and now we need to replicate that feature on iOS!

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 app that would allow riders to rate aspects of service or answer questions about how to improve their experience on transit.

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 iOS app.

Golang/Backend Projects

Historically, most of the OBA backend stack has been written in Java with Spring. We're starting to move away from Java/Spring, and are hoping to slowly and organically transition our backend projects to Go.

Watchdog

Difficulty: Advanced / Size: 175 hours

Our first Go-based project is a tool called Watchdog, which monitors the availability and behavior of OBA servers and reports out information to a Prometheus server.

Expected outcomes:

  • Build more metrics for Watchdog: right now, we only have a few metrics for Watchdog that have been created. The original Watchdog project had over a dozen. We need to replicate its behavior!

Integration Test System

Difficulty: Advanced / Size: 350 hours

Even though we do have an OpenAPI spec that documents all of our API endpoints, the OBA API server does not have a formal spec or set of tests that define its behavior, or ensure that a breaking API change does not occur. We need a tool built that can validate the output of the OBA API server for a known set of inputs. In other words, given a known set of GTFS data bundle and GTFS-RT Protobuf files, verify that the JSON-over-HTTP output matches the expected output.

Expected outcomes:

  • Build a test harness (i.e. a specialized Docker image) for the OBA API server; it will need to simulate particular dates and times.
  • Build a Ruby, Python, or Golang tool that can instantiate the OBA API server inside of its test harness and validate the correctness of the JSON output from a given HTTP call.
  • Create a comprehensive test suite that verifies that the OBA API server works as expected for all of its most important API calls.

Your Idea Here!

We don't have a monopoly on great ideas. Let us know what you think would be a great addition to the OBA platform!