Our idea started from a group member who is a commuter student who struggled with scheduling commute times. Despite trying to create his own estimates, the many changing variables made it too difficult to do so. However we wanted this idea to expand beyond just commuter students, and create a schedule management tool that could have a more global impact.

What it does

Given a user's Google calendar, our project would have the ability to create a more accurate schedule which considers traffic and transportation into one's schedule. From the user's start destination and scheduled event time, we would first provide them with the closest parking structure to their destination, as well as a statistic for the likelihood of finding on-street parking closer than the closest parking structure. Utilizing INRIX routing data and our own formula for parking time estimation (through INRIX parking probability metric) we created an accurate gauge for a combined driving and parking time. We then used Google's API for walking data to calculate the walking distance from the parking structure to event location. We finally total the driving, parking, and walking times to create a commute event on the calendar to provide the user with an accurate understanding of an ideal departure time. This event also has a link to a Google maps link that links you to the optimal parking garage location, and lets you know the on-street parking statistic.

How we built it

First, we spent roughly an hour going over the design process and dividing work in accordance to the expertise of every member. From this, we were able to come to the conclusion of dividing our group into 3 teams: a Google API team (backend, Python), an INRIX API (backend, Python), and a user interface team (frontend, Django). The Google API team, Malcolm and Ryan, focused on scraping Google Calendar's API for date and locational data, and then utilizing that information to pass it to the INRIX team. Eventually, following the INRIX team's output, they would also create an estimation for walking times. The INRIX team, Wallace and Graham, created an algorithm for scraping information from INRIX's off-street and on-street parking data, as well as routing data to create accurate estimations for the purposes of the project. Finally, the user interface team, Joshua, gathered the outputs of both the Google and INRIX API team to create a visualization and interactive design for the entirety of the project.

Challenges we ran into

Most of our challenges came from returning and inputting data into the two API's we worked with for the project. We had a few issues with differing file types between the two API's, and therefore had to make sure to properly convert our data when passing in-between the two. Only three out of the 5 team members knew how to code in python and therefore, we needed to divy up work in a way that we could all be productive even with our differing amounts of experience. This also extended to our front-end where no members of the group felt especially comfortable, luckily Josh decided to take on the challenge and spent much of the day of learning and implementing a Django website.

Accomplishments that we're proud of

We found our time estimation algorithm to be very interesting and well implemented; being able to change a route to go directly to the best parking location, while simultaneously creating a probability and ranked matrix for on-street parking, was extremely intriguing to us. Moreover, just being able to watch our code successfully compile with what we sought the code out to do was just extremely satisfying. Beyond having functional code, the learning experience of using APIs and front-end development had its own level of gratification.

What we learned

As previously mentioned, we were able to learn a lot about utilizing APIs, as well as front-end development. This experience was very eye opening in how it is like for us hopeful programmers to be writing code for real-world applications; in realizing how our code can potentially impact people, there was much more motivation and enjoyment for completing the task at hand.

What's next for DrivenByTime

If we had more time to develop, we would continue to develop our time estimation algorithms to be more accurate. We would also want to implement our own servers so that we could have our scheduling system reach a larger audience. Also we would ideally implement a way to grab the users current location and update our estimates past just future estimates, and give them more accurate and dynamic travel times.

Share this project: