For years at UCF, parking has been the bane of many a student’s existence. As the largest university in the United States and a commuter school, during the week, students come from everywhere. The garages rapidly fill up and finding a parking spot can be extremely frustrating after having already driven an hour to gete here, taking upwards of 45 to 90 additional minutes to find a spot. We observed that UCF’s existing solution requires constantly checking the garage information page, which is not convenient or safe to do while driving, and we set out to fix that.
What it does
By recording the number of available spots in UCF parking garages as a time-series and recognizing that the data is seasonal, we predict how crowded certain garages will be at a future time. Convenience and safety were our top priorities, so we designed an easy-to-use, hands-free conversational interface using Google Assistant.
How we built it
We use Google’s voice assistant for voice recognition and as an entry point. From there, we connect it to Google’s Dialogflow for natural language processing to create a rich conversational experience. Dialogflow then triggers a webhook to Heroku, which handles interpreting data from the backend REST API for use in Dialogflow. The Node.js REST backend automatically scrapes parking data every minute, and stores it in InfluxDB, a time-series database. The backend also handles generating predictions. In order to make onboarding a breeze, we implemented it using Actions on Google, so frustrated students don’t need to waste time installing an app and can simply say to the Google Assistant “Talk to UCF Parking Agent”.
Challenges we ran into
Google Dialogflow’s interface is not very intuitive to use, and the lack of updated documentation made implementing rich responses difficult at first. We lacked experience with Google’s Dialogflow / Actions on Google, so we spent most of our time learning those. For the backend, while we would have liked to use Holt Winters for seasonal prediction, but the queries for them took too long, and were outside of Google’s established 5 second limit on responses.
What we learned
We learned Dialogflow API, firebase API, Actions on Google, Git / Github, and teamwork and project planning (Frustration -> Problem -> Solution, Minimum Viable Product, etc). We learned how to leverage the power of Google 's Cloud APIs to allow us to focus on making AI-enhanced experiences instead of spending all of our time training a machine learning model.
What's next for UCF Parking Agent
We are planning to implement location-based tracking to allow the agent to estimate and recommend a parking garage based on location. We are also planning to expand more and have graphical displays to help better visualize the data.