Inspiration

As students at UC Merced who live on campus and do not have a car, we often use the university's public transportation system, CatTracks. Unfortunately, the app that is associated with CatTracks is extremely outdated and inefficient, and their bus routes are absent in the Google Maps transit view. This app is meant to help our fellow students plan and find the best bus route to use to get to their destination, with a user-friendly UI communicating bus routes, stops, and times.

What it does

Our app is an AI chatbot that utilizes Google Maps and Gemini to help chart the best route from UC Merced's University Transit Center to the user's specified destination, while also giving the user information such as the address, rating, its opening hours, and the closest CatTracks stop to their destination.

How we built it

Users would communicate their requests to an AI chatbot we powered with Gemini's 2.5-flash model, and that chatbot would access various JSON files we made that is filled with information about CatTrack's buses, stops, and times. Calculations would be done with custom functions to find a location with the most convenient route by bus. This location would then be translated from google map's custom url into coordinates with Google Maps Geocoding API, and that would be displayed to the user with Google Maps JavaScript API. Routes would then be connected and visualized with the Directions API, all communicated to our user with the beautiful UI we made with React and Tailwind. We also used Claude.ai and Gemini to assist in coding the app, and GitHub as our repository.

Challenges we ran into

The hardest part of coding our app was visualizing the map well, due to the APIs we used proving quite difficult to work with. Mapping out the bus routes ourselves was difficult with the finicky APIs and formatting of waypoints on Google Maps. Fine-tuning it to our needs took us many hours, but we are satisfied with what we've got in the limited time we had.

Accomplishments that we're proud of

An accomplishment we're proud of is manually recreating the bus routes taken by CatTracks by calculating the latitude and longitude of each stop, we did a solid job converting the pdfs of all the routes into JSON files which was fed into our chatbot for accurate recommendations. We also had no experience with developing on Google Maps, so figuring out how to juggle all the API calls we had to make to get the map running was something we can all be proud of.

What we learned

As mentioned before, working with Google Maps and Gemini was uncharted territory for us, so we learned a great deal about Google Maps API, Grounding for Maps, and the Gemini AI SDK. While it may have been extremely challenging, we now know what it's like working with APIs for maps and geographical visualization. Furthermore, one of our members is a hackathon first-timer, and he learned a lot about the basics of git, as well as working on an ambitious project with a team.

What's next for CatTracker

We want to work even more on our routes to make them a lot more accurate. Our project relies on the accuracy of the routes we have visualized on google maps, so perfecting the longitude/latitude values for the stops and turns is a big priority for making our app even better. Furthermore, when a student asks for a place with multiple locations, we want to user to view routes for several options with a simple click from a drop-down menu, avoiding them asking multiple times.

Having common places/eateries/stores that students frequent in our database that the agent can pull from would also be a big plus for making our app a lot more convenient and in-line with what fellow students want. (Dutch Bros is a common go-to coffee stop for students, so we can have that saved in our database so any time a student is open to any coffee place we can have one ready for them)

Aman Nindra: Full Stack Engineer Pranav Yadav: Backend Engineer Nicholas Dea: Backend Maps Calculations and JSON configuration

Share this project:

Updates