Here's a scenario: you're driving I-95 and you witness a nasty collision, you want to contact the necessary authorities as soon as possible so you call 911 and struggle to describe the exact location of the accident. Another scenario: you notice someone with demonstrating dangerous driving tendencies (swerving, texting, not using their signal) but there is no good method of holding that driver accountable. Honking, screaming, or contacting the authorities (who won't take any action without enough justification) will not actually force the offending driver to reevaluate how they drive. In addition, if you notice that another driver's brake light is out or tire is flat there is no good way to let them know. We built a product to solve these shortcomings and bring accountability and communication to the roadways in order to promote saftey.
What it does
Drivr lets users submit three different types of reports: emergency, bad driver, and bad car. An 'emergency' report will rapidly grab the GPS location from the user's device and contact first responders with this data, cutting out any extra time that a 911 call would take might just be the difference between life and death. A 'bad driver' report prompts users for the license plate information of the offending driver and provides options for various infractions (speeding, swerving, tailgating, etc.). A 'bad car' report also prompts users for the license plate information but instead provides options for various issues with the car. These reports are then stored in a database so that users can check in on any claims made to their vehicle. Users who have the app will get notified when a claim is made, users who don't have the app will still be able view their vehicle's history at any point in the future.
How we built it
We built the entire application with Java in the Android Studio IDE. We used the native android framework and the built-in android-speech-to-text library to develop a simple yet intuitive user interface that would let drivers stay focused on the road. We created a report class to store user input and leveraged the safeTrek API with the user's GPS data to notify first responders in the event of an emergency. We then used firebase to create a database to store the report information.
Challenges I ran into
There were a number of challenges that we ran into during the process of creating this app. One major difficulty that we faced was with deep links in our app, which inhibited our ability to connect with the SafeTrek API in Heroku for many hours. We also realized late in the game how the Android Speech to Text detection has many errors. While we faced a few smaller challenges that many teams might with using GitHub, these were two large difficulties that we faced.
Accomplishments that I'm proud of
We are proud of our motivation and perseverance despite setbacks, failures, and uncertainty. We have successfully completed of the rudimentary aspects of our application, which is awesome. Our biggest accomplishments would have to be the use of the SafeTrek API and Firebase for our database system.
What we learned
Through the process of designing Drivr, we learned about using and implementing the SafeTrek API within our app. We also learned about AndroidStudio and Android App Development. For our database, we used Firebase, which was also another learning point.
What's next for Drivr
Looking to the future, we would like to include an aspect of the application to detect car crashes. This would use the SafeTrek API along with a detector in the car to determine when a crash occurred and send the information immediately to the first responders.