Cities in the Northeast have alternate side parking laws which cause confusion and frustration. In addition, team members often park on unfamiliar streets and are concerned with public safety. Team members have frequently parked on the street and have forgotten to move their car to the other side of the street and received a parking ticket.
What it does
The app makes parking easier for drivers in the city by solving two types of problems: 1) managing long-term street parking and 2) addressing crime risks in the immediate locality of the parking location.
For parking management, the app identifies the parking space by latitude and longitude and records whether parking is allowed on that side on the given even or odd day. The app provides real-time information to the user concerning the time remaining before the car must be moved to the other side of the street.
To determine crime risks, the app utilizes the Stae API to analyze crime records in all of Syracuse, and selects crimes relevant to the safety of both the automobile and those walking to and from their parking space. The app provides information to the driver and any passengers to help make an informed decision about the safety of parking in the users specific location.
How I built it
We built the frontend in React Native and developed components for the Welcome Screen, Compass, and Timer.
The stae.dev/syracuse crime api was used in order to obtain the most commonly occurring crime which has historically taken place in the vicinity. If there have been no recent crimes the app will alert the user the location is safe to park. This was done by using the Flask framework written in Python.
Challenges I ran into
Due to our lack of experience with React Native, we ran into syntax errors throughout the project. Due to the styling differences between CSS and React Native, we had to research styling requirements.
Our initial idea for the stae crime API was ambitions however there were some challenges after further familiarization with the data. We realized the latitude and longitude in the API are generalized for an entire road. We then found the existence of a box key in the json and correlated the user's latitude and longitude to fit within the specified area of the crime to obtain a more specific location to crime relation.
The Raspberry Pi server was out of date and the time was inaccurate. Therefore, the Raspberry Pi could not download flask. We had to reinstall Raspbian and configure the port.
Accomplishments that I'm proud of
This was the first time that we developed a full frontend using React Native.
Having used stae's API to successfully warn users of potential crimes in the area.
We are proud that the Raspberry Pi successfully accessed a web server.
What I learned
We learned how to develop a frontend using React Native.
We also learned how to host a Python-based server on Heroku, which was functionally very different from Rails or Heroku.
What's next for Parking Assistant
A wealth of crime data is available through the Stae API, and our safety component could be further refined to provide a wider range of information about safety risks by area. We are particularly interested in the correlation between crimes and both time of year and time of day. Future iterations could harness this data to provide more detailed information about risk.
In addition, as the Stae API evolves to provide more and different data to the public, the safety feature of our app can evolve alongside it.