Inspiration

The Odyssey project was born out of the desire to make it easier for people, particularly students without their own vehicles, to explore their neighborhoods using public transportation. Public transport is a much more eco-friendly mode of transport, but its potential is often limited by the lack of comprehensive travel apps that make the most of its connectivity.

As international students in San Jose, we personally experienced the need for a more objective travel exploration app, especially as we found ourselves commuting to certain stops almost every other week without realizing there were more interesting places to visit just one stop away. Even with Google Maps, we would sometimes find ourselves changing two buses to get to a destination that was actually closer than one that was recommended. Apparently, this is the case with most students that do not drive. Through Odyssey, we hope to provide a solution that not only makes it easier for people to explore their neighborhoods but also makes their travels more enjoyable by avoiding unnecessary hassles.

What it does

The Odyssey app provides a unique and comprehensive approach to exploring neighborhoods through public transport. The app has three user interfaces that allow users to explore their neighborhood in various ways. The first screen lets users search for prominent places along the route of a bus that they are interested in. The app then displays an unordered list of prominent places sorted in descending order of public interest, allowing users to get a glimpse of the kind of places in their neighborhood.

The app also provides a "reverse search" function, allowing users to give the app a bus stop of interest and see prominent places within a certain radius of that stop. Users can refine these results by setting filters such as broadening the radius, increasing the search detail, and filtering by a certain place type. This feature allows users to explore their neighborhood in greater detail and find places that may have previously gone unnoticed.

The second screen is a favorite feature of the app, allowing users to choose a bus of interest and display an ordered list of its stops. Users can then choose a stop that they're interested in and see the prominent places within a variable radius of that stop. This feature saves users the hassle of changing buses while looking for a particular outlet or location.

Finally, the app provides a map view for spatial learners, displaying the same information as screen #2 on a map that enables route planning and gives users a better idea of how far a certain place is from a bus stop of interest.

Overall, the Odyssey app provides a unique and comprehensive approach to exploring neighborhoods through public transport, making it easier and more enjoyable for users to discover the hidden gems in their community.

How we built it

Frontend: The Android app uses Android Architecture Components such as Nav Graph and ViewModel to develop three screens. Material 3 components have been used by abiding Google's Material Design guidelines.

The first screen comprises of 2 dropdowns, a collapsible section, and a list backed by a RecyclerView that display the list of places from the current bus stop that the user is at, until the end of the route. Furthermore, the filter collapsible section contains 2 sliders and another dropdown.

The second screen, in addition to the 2 dropdowns mentioned above, contains a button that loads all stops that this bus passes through. The stops are displayed in a nice timeline with the help of custom drawables in Android.

Finally, the third screen is a map view that lets users see all the information on a map with markers pointing to bus stops as well as places of interest clustered at every stop. This screen uses Google's MapFragment that exposes a GoogleMap object, which is then used for drawing markers. Backend: The backend was developed in Spring Boot and the Transit API was used to fetch information about the bus schedules, nearby bus stops, and bus routes. The google places API was used to fetch information about nearby places, their ratings, and more.

Challenges we ran into

Dealing with the Transit API was complicated as the documentation for it is not comprehensive. There was a lot of reverse engineering involved in understanding the API thoroughly. Being an active user of the Transit app came in handy :P

Accomplishments that we're proud of

We are proud that we have been able to create something which has a social value to it and is something we people can relate to. We are also proud that we have been able to identify a problem that we faced in real lived and have come up with a solution that works. Computer Science is all about problem-solving and this is a step in the right direction.

What we learned

Collaboration and coordination when done right can create wonders. I think as a team we have learned how to complement each other and use each other's strengths to the best use. We have also learned how important deadlines are and how not meeting them can result in a lot of hard work going to waste.

What's next for Odyssey - Explore Neighborhoods w/ Public Transport

We would like to make the recommendation of the place more personalized according to the preference and liking of the user. This can be done by various machine learning algorithms which we are very excited to explore.

Built With

Share this project:

Updates