Inspiration
The everlasting pain of having to find parking in a busy city is something most of us can relate to and MySpot is here to alleviate that pain. There is a ton of government data sets that are available to the public and we chose to focus on parking because it can be supported by a user-based reporting system.
What it does
MySpot is a user-based reporting system that helps find open street parking. It checks the eligibility of a user to see if their location has a supported dataset. Then the user can input a location using the search bar and a visual map with available parking and taken spots report by other users. When a user grabs a parking spot, MySpot asks the user if they took the spot and uses location data to mark the location so other users know that spot is taken.
How we built it
MySpot was built using Python, and the Pandas, Numpy, and Geopy libraries. It uses Pandas to import and read CSV files and convert them to readable data frames. It then uses Geopy to get the longitude and the latitude of all the parking spots. The longitude and latitude are then compared to the user's destination's longitude to latitude and give them the closest parking spot.
Challenges we ran into
It was the first time using the Pandas and Geopy library for a few of us so we were a little iffy at first but we eventually got the hang of it and we learned how to manipulate and work with data frames:
- Due to the limitations of the Geopy server, it can take an awful amount of time to compute. We solve this by pre-caching the latitude and longitude data directly into the data frame. That way we only have to go use the Geopy server once when the program is running.
- "NaN" type is a float and empty at the same time. Which is another reason why our "if" statements do not function correctly. We eventually fix that by checking its emptiness, not its type.
Accomplishments that we're proud of
There are a lot of issues that are typically present in the often unpolished hackathon project or prototype. We managed to really polish and develop our backend implementation even optimizing for time so you can demo it through the terminal. A bunch of our team members had issues with time especially because we are first-year engineering students, but we were able to very effectively allocate tasks. In software, splitting up can be harder than it sounds like but we learned to use oop strategies to do so.
What we learned
We learned how to manipulate, import, and work with data frames using the Pandas library. We learned how to locate the coordinates of the parking addresses and add them to data frames using the GeoPy library.
What's next for MySpot
Making a front end that uses our backend implementation and is based on the Figma design prototype. Scaling the app using multiple datasets maybe even searchable data can be auto-implemented. One of our team members also mentioned the use of blockchain to anonymize the user-based reporting system. The business potential is really good as you can collaborate with lot owners to provide more parking by paying them part of your small subscription cost.
Software Architecture Design
https://docs.google.com/document/d/105zQnihUAnsTaOAYHPDQ0EOWogoWcS-8_HvVYrqDB-M/edit?usp=sharing

Log in or sign up for Devpost to join the conversation.