Inspiration
I was inspired by my brother's high school graduation last week. My parents and I went along with him for his big day, and we were all so excited for the event until we reached there and saw how crowded the area was. There was no parking available at the school, so we dropped off my brother and went around, looking for open parking spaces. We drove for several miles, until we found a shady complex with run-down stores and only a few cars around. We decided to park there, but I was really scared that something would happen to our car; what if someone tried to break in our window, or even tried to steal it? Fortunately, that never happened, but reflecting on this event during the hackathon gave me a different perspective on the parking problem. What if I could make an app that not only recommended parking locations based on how busy they were, but also on how safe they were?
Description of the Problem SafePark AI is Addressing
SafePark AI is specifically addressing two issues: car thefts and the challenge of finding available parking space in crowded areas. The first issue is the reason that SafePark AI is unique from all of the other parking apps out there. No other parking apps address the issue of safety when it comes to finding a parking space. Furthermore, the second issue is the common issue of not being able to find parking, which SafePark AI addresses by providing a combined solution to the safety and availability issues related to parking.
What it does
SafePark AI recommends parking locations to users (e.g. streets, complexes). The only parameters the user has to enter are the destination they would like to go to and how far away from this destination they are willing to park. SafePark AI then recommends specific parking locations that are in the user-selected range of the destination; these parking locations are ranked by an ML model, which attempts to optimize the location recommendations by how safe/available they are. SafePark AI recommends the top five parking locations generated by this model.
How I built it
I needed data to train my ML model to accurately assess what the best parking locations would be, based on their safety and availability. Therefore, I began by searching for datasets that would cover these two aspects of parking locations. I didn't have a hard time finding datasets that determined how busy certain areas were, probably because the issue of not being able to find parking is a common problem, but I struggled to find data based on how safe certain areas were. I wondered whether I could just assess how safe an area around a parking location was based on its crime rate. I decided not to, since simply looking at the crime rate would be far too general.
I realized that most problems regarding the safety of parking occurred in big cities, so I decided to shift my focus to larger cities. I found a really good dataset that had every single recorded car theft in San Francisco since 2018, and I combined it with another dataset about how busy specific areas in San Francisco are. I used the k-nearest neighbors algorithm on the first dataset to see how safe specific areas were and then made an ML model to optimize parking location recommendations based on how safe/available they were.
My model generated conclusive results, so I then used HTML, CSS, and JavaScript to make a website similar to what an app for SafePark AI would look. I made two pages: one was an about/description page that familiarized the user with what exactly SafePark AI does and how it's different from other apps, and the other was the page where the user could use the app by entering any place they wish to go to within San Francisco and how far away from that destination they are willing to park. I then configured the website to display the top 5 parking locations within that range.
Challenges I ran into
I had a hard time finding data about how safe a specific location was for parking. I was unsure about whether it was practical for me to solely look at the crime rate for each area, and I was also confused as to which cities I was going to be finding this data for. It was really easy to see what the general crime rate was for each location, but it was difficult to see how many crimes were specifically related to car thefts. I decided to narrow my project down to San Francisco, since it is a large city and has certain locations that are unsafe, and fortunately, I was able to find a great dataset that had the location and time for car thefts in San Francisco since 2018.
I also found it challenging to analyze the safety dataset. There were over 100,000 datapoints, and it was especially difficult because there were no safety labels for any of the datapoints. The datapoints were just car thefts, with their date and time of occurrence, street name, and location in longitude and latitude. I was really confused about how I would be able to translate all of this information about specific car thefts into a general idea about how safe a location was to park in. It wasn't supervised classification, like I was used to doing, and I had to do a lot of research about what unsupervised classification algorithms I could implement for this task.
My challenges evidently arose from the uniqueness of my project: instead of solely focusing on how busy areas were to determine the best parking location, I incorporated safety as well, which made my project much more difficult to implement. I'm happy that I never gave up on this idea, regardless of the many challenges I faced attempting to implement it.
Accomplishments that I'm proud of
Looking back at it, I'm surprised that I was able to turn an annoying experience at my brother's high school graduation into a functional app that addresses the safety concerns of those who are looking for a parking space. I have always looked up to people who have been able to translate an unpleasant experience in their lives into something great, and I think this hackathon is just the starting point in my journey of making my idea into something that can change the world.
I'm also proud of the fact that I was able to choose an idea and stick to it. I often find myself narrowing down on an idea and later choosing to pursue another, simply because it seemed too complicated to implement or I suddenly felt that it wasn't going to succeed. Due to the fact that I had limited time to implement my idea in this hackathon, I was forced to choose one idea and stick to it, and I'm very proud that I was able to successfully do that.
What I learned
I learned about how important ideas can be. I always thought that only really good coders could make good apps, but this hackathon completely changed my perspective on this. My coding skills are nowhere the near those of the coders who have developed some of the best parking apps out there, yet I was able to think of a new idea that has the potential for an app better than the apps these coders have made. Safety is a growing concern in today's world, and I think it's something that everybody consciously thinks about in every decision they make, including where they park. Therefore, a parking app that also takes the safety of every parking location into account could be much more impactful than a regular parking app, which is something that you don't need to be a great coder to think of.
I also learned more about analyzing data using unsupervised classification. This hackathon made me realize that I've barely been exposed to machine learning algorithms that don't use labels; not being able to analyze the safety dataset with supervised classification algorithms was one of my major challenges, but I was eventually able to overcome this by reading more about unsupervised classification algorithms and ultimately implementing the k-nearest neighbors algorithm on the dataset.
What's next for SafePark AI
For this hackathon, SafePark AI was only trained on San Francisco data, so in the future, I will be implementing SafePark AI for large cities around the world. It has the potential to help a lot of people in crowded, busy areas, so it would work best in big cities. I hope to make a mobile app to improve the ease of use of SafePark AI. Since most people have their GPSs on their phones, it would be much more convenient for people to access SafePark AI on a mobile app rather than a website while driving. Once I get enough downloads and am convinced that a lot of people are using it, I plan on making a company out of it. My idea is unique, and it would be a great idea to start making money off of it. I could either make SafePark AI a paid app or even try to make a freemium business model around it. In this business model, there will be a monthly subscription to get unlimited parking location recommendations, instead of just the top 5, and also the option to use it in any city, rather than only in large, well-known cities.
Log in or sign up for Devpost to join the conversation.