Inspiration

It's hard to know where to park on a large college campus. Which parking garage is closest to your destination? Where can you find an available parking spot?

Uncertainty about parking can be a major source of stress during a trip to campus, and we would like to help reduce that stress for everyone who drives to large college campuses such as UCF's, including students, faculty/staff, and visitors.

Our research has shown that when choosing a parking garage, driving times are very similar to all campus garages, and garage-to-final-destination walking time is the most important factor in minimizing total travel time. As far as we know, no other parking apps that serve UCF are currently taking this metric into account.

What it does

CentralPark gathers real-time parking availability data from UCF Parking Services' website and uses a database of estimated walking times, from each parking garage to every building on the main UCF campus, to help users find the best available parking spot.

How we built it

We had previously experimented with finding the shortest combined walking/driving times for different campus destinations using a console program in Python along with the Google Maps Distance Matrix API as a proof-of-concept.

We were able to re-use some of that Python codebase in order to build a new Python script that takes a list of buildings on campus and uses the Distance Matrix API to generate a JSON-file database of on-campus walking distances for each parking garage. The Python script and list of campus buildings that were used to build the JSON file can be found in the assets folder of the CentralPark Android Studio project along with the JSON file itself.

All other parts of the program were developed using Java in Android Studio. Real-time garage availability data is web-scraped from UCF Parking Services' website, and when a user enters their destination on campus, the app uses the JSON data source to get a sorted list of parking-garage walking distances for the destination and finds the closest garage that has at least some minimal number of spaces available.

We used Android Studio's Git integration along with remote hosting on Github for version control. We appreciate both Google and Github's support in providing the API services, software, and hosting that were used to complete this project.

Challenges we ran into

Neither of us had ever developed a mobile app or used Android Studio before, and our Java experience was limited to relatively simple console programs. It was challenging to figure out how to organize our project's source files and how to arrange and partition our Java classes.

It was also a significant challenge to learn how to design the app's user interfaces and integrate it with our core code.

Accomplishments that we're proud of

We built our first Android app in 24 hours, and it works! We think that this app could be really useful and we're hoping to continue development and share the app with other students/faculty/staff/visitors at UCF.

What we learned

We learned how to develop a UI for a mobile app, how to debug an app using a mobile device emulator, how to manage dependencies using Gradle, and how to develop and manage a project in Android Studio.

What's next for CentralPark

The app's source code still needs testing and re-factoring in order to be ready for release. We had to forego a lot of defensive coding work (null checks, avoiding corner cases, etc.) in order to get a working app ready in time for submission.

Moving forward, we plan to let users manually select which garages they are considering parking in (seen in the UI "Options" screen).

We could also provide users with estimated combined driving/walking times based on their current location by adding Google Maps API calls to the app code.

Share this project:

Updates