Inspiration

In 2018, 36,560 people were killed in motor vehicle traffic crashes on US roadways, a 2.4 percent decrease from 37,473 in 2017. Of the young drivers with known seat belt use who died in motor vehicle crashes in 2017, 47 percent were unrestrained at the time of the crashes. In 2018, 15 percent of young drivers ages 16 to 20 years old involved in fatal crashes had blood alcohol concentrations (BACs) of .08 g/dL or higher; it is illegal in the US for anyone under age 21 to drink alcohol. In 2018, 6,283 pedestrians were killed in traffic crashes, a 3.4 percent increase from 2017 and the highest number in 28 years. In 2018, 857 pedalcyclists were killed in traffic crashes, a 6.3 percent increase and the highest number since 1990.

What it does

We start out at the authentication screen, which has been created with the help of Google Firebase. When we go to register an account, we see this change reflected in the authentication. In the video, I previously had a different testing email and after refreshing we see the new email I had input. Then we are signed in and a new document is created and assigned to the user after the creation of their account.

Now to the main four tabs:

(This is out of order in the video because I did it in a rush)

Complaint/Rewards System At the home screen we are able to view various sections of the app. One of the main features of the app is being able to submit a complaint, which is then put in pending, until the complaint is verified by local authorities. This allows anyone to be able to use this system to find and expose people in violation of the traffic laws, allowing for safer roads. Additionally, the subconscious effect of this is that people will stop violating these laws knowing they could get a ticket via this app. The complaint is then sent into verifications, where the data is stored in Firestore. Local authorities will be able to access these complaints through Firestore and approve or deny the complaint, which is used for determining whether the user receives points for submitting the complaint. The points can later be used by the user to redeem coupons and other rewards (Still in progress as there may be more sponsorships).Complaints are approved when local law enforcements feel that the complaint had enough details and evidence in order to be able to give a ticket to the person who has been complained about. After being approved, this is reflected in Firestore and it will be reflected in the UI.

Road Analytics In the road analytics page, we have a maps UI showing our current location. We are able to type in a road which we want to see details regarding. After entering we find useful details such as the danger level of the road, the amount of IDEAL users on the road and the estimated amount of people on the road at the current time. This information allows the user to know whether they should use that road or not with these fine tuned details.

Resources The last page of this application is the Resources tab where we are able to view the various resources teaching us regarding the various important traffic violations present. This allows to the end-user to learn about the various traffic laws as well as the violations they are complaining about to make sure they are submitting a valid complaint to local authorities.

How I built it

To create the authentication, I used google firebase's authentication api in order to create a backend using Google Firebase. This made it easier than me creating my own backend in a tight time frame. It helped me create custom user assigned data as well.

For the rest of the back end, I also used google firebase's Firestore, a realtime database which allows for end-users to update data in the application (sending forms, ect.) asap. This allowed me to be able to use user custom data for each user with these firebase technologies being able to integrate with each other.

For the tab navigator, I used react-native-navigation's material tab navigator. For the point system, I used Firestore for data modeling and assigning custom data to each user. For the form UI, I used react-native-base in order to create the form elements.

For the point system, I built the backend with google Firestore, as previously stated, to efficiently upload and store data in real time. I created the data model with google Firestone where everything was stored.

I also used expo permissions and their image-picker library in order to get the image and upload it to Firestore.

I hope this makes the world a better place.

Challenges I ran into

I had many issues with Firestore for storing data due to the data modeling. It was quite difficult to have a specific document assigned to one user, which I have learned how to implement properly over this experience.

Accomplishments that I'm proud of

To help have IDEAL Roads

Teach others regarding Traffic Violations Provide Critical Information regarding roads to end-users

What I learned

I learned how to implement custom user interface with Google Firebase's Firestore

What's next for IDEAL (Incentifying Driver Exposer and Learning Tool)

I hope to create an admin system in the future rather than local authorities accessing Google Firebase directly.

Built With

Share this project:

Updates

posted an update —

I noticed there was some odd auto commit for the first repository I had which showed I had committed 9 days earlier, where I had just created the repo yesterday. If you look at the commit, it shows code for a blank application. Just to make sure I am not DQ for hackathons, I brought this to awareness.

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

Submission history