Inspiration
Finding accessible handicapped parking is a persistent challenge for individuals with mobility impairments. Many designated spots are either occupied, misused, or difficult to locate, leading to frustration and reduced mobility for those who rely on them.
What it does
This project was born out of the need to bridge this gap by using CCTV footage to analyze available handicapped parking spots and display them on a map. By providing real-time information, ParkAble aims to enhance accessibility, independence, and convenience for users, reducing the stress of searching for an open space.
How we built it
As we're building a mobile application, we utilized the React Native library framework to design the front end. The designing and brainstorming part took process in Figma. For the backend, we used MongoDB Atlas's key-value data structure, which is connected to the front end by REST APIs. When making the HTTP Requests, we include the HTTP status code when responding to the user. As AI took a huge part in this project, particularly in terms of Visual Computing, we used the YOLOs model architecture to train the model and perform the object detection.
Challenges we ran into
When working on this application, we wanted two kinds of user privileges: public (which doesn't require you to sign in) and private users (which are businesses that can input and modify the parking lot data manually). However, we struggled when working with non-relational database designs such as MongoDB as it is hard to connect the key between different collections. We thought so hard about how to trigger a change in the other collection's key while the other one is changed. In the process, we learnt about Trigger in MongoDB but had a hard time understanding how to implement the syntax. We ended up changing our database model to ensure MVP delivery. While using OpenCV, we also struggled with the object identification part where we weren't able to differentiate between empty and non-empty parking lots. We ended up learning about YOLOs, a different model architecture that we adopt to train our data and produce good predictive results. Lastly, we were unable to obtain footage of a parking space where it clearly shows handicap parking spots. As a result, we had to opt for a regular parking space.
Accomplishments that we're proud of
When doing this hackathon, our aim is to learn. We try to shuffle our responsibilities that don't reflect each of our skills. For example, when one of our members has a lot of experience dealing with the backend, the person tried to deal with the front end instead. We're proud that we managed to finish the project with results beyond our expectations despite our constraints and the challenges that we faced. We learnt so much from this hackathon within such a short amount of time.
What we learned
Each of us learn different skills in the software development process. We try to be in charge of the part that we're most not familiar of, and it has been an enjoyable journey. Our members learned various new skills in this hackathon, including designing, using deep learning to train data, using MongoDB Atlas as a backend, and React Native as the front end. But most of all, I believe we learned how to also communicate with each other, learning how to receive feedback from amazing mentors and coordinate our work to produce the best possible outcome in such a short period of time.
What's next for SpotAble
- Integrate machine learning to predict parking availability trends based on historical data
- Reward users for reporting violations or contributing useful data
- Create different authentication processes for business owners to allow more privilege, and try to connect different collections in a non-relational database
- Incorporate a feature to allow users to know real-time parking situations based on the crowdedness based on the GPS detection from different devices
- Provide crowdsourcing options where user can provide feedback on the real-time availability of the parking spots
Built With
- gsx
- mongodb
- python
- react-native
- yolo
Log in or sign up for Devpost to join the conversation.