Check out a video demo here! Check out the presentation here!


Ridesharing apps such as Uber and Lyft thrive today thanks to the latest advancements in technology. However, certain flaws in the ridesharing system harbor great amount of opportunities for potential crime.

In order to guarantee a safe ride and provide customers with the best ridesharing experience, we came up with the app called Unlock! By tracking the real-time location of the car en route, we can notify customers when they are under potential threat. We can then give them the option to unlock their Uber and get out of the car or at the very least contact the authorities!

Our application! Unlock!

What it does

By keeping track of the car's location and the path of an Uber ride, the application provides the distance between your current location and the route. If the car strays too far off route (1 mile), then the user will be notified that they may be in potential danger.. At this point, Users can unlock the car and run away simply by pressing the "unlock" button in the app, if the car is remotely connected in the smartcar network. Additionally, he or she can also press 911 to call the authorities. The authorities will also be texted with the user's current GPS coordinates.

This app additionally provide users with driver's basic information including image, phone number, and car make / model, allowing users to get a better sense of the driver's background.

Unlock Retrieve user information

How we built it

We made Unlock! with Node.js as backend and React Native for frontend. This allowed the application to run on both Android and iOS. We additionally utilized Google Maps API in Google Cloud Playform, Uber's API, and the smartcar API.

Minjing Shi managed to unlock and lock the car using Node.js and Smartcar API, and send the current location to the backend.

Zirui Wang and Haihao Sun set up the frontend and drew the expected route in the map, implementing the Google Maps APIs in Google Cloud Platform in React Native.

Antony Nguyen integrated our app's backend with frontend, developed the real-time distance algorithm behind our apps, and polished the user-interface by developing React Native components.

It was a lot of fun hacking into the Tesla!

Challenges we ran into

In the beginning, we were not very familiar with how to use APIs, especially with setting up their keys. We also ran into issues for Google Cloud Platform in which we exceeded the limit of free calls. For several times the smartcar API was not responding to calls due to the wrong server setup and we have to adjust our code to make it work. To conquer the problem, we firstly discussed with our teammates who have relative experiences and then asked staff from Google and smartcar for help. We also spent a long time coming up with solutions for building a working backend and connect it to the frontend.

Accomplishments that we're proud of

We are proud of our user-friendly interface, the way how we split the tasks according to different people's skills, and connecting frontend and backend within such a short time. More importantly, we sharpened our skills in utilizing APIs to enrich our functionalities for our app. We are able to pull things together as a team and achieved much more than we have expected.

What we learned

combing special features of APIs through the node.js and react-native. By working in a collaborated environment, we significantly fulfill our potential to construct an interesting app which can improve security in society. We learned to make prototypes of our app and implement ideas as quickly as possible given the existing programming languages and APIs to use.

What's next for unlock

We will add more artificial intelligence features such as autopilot. This helps users force the uber car to come back to original route. We will also make a database for drivers and analyze their driving behaviors to help predict times and places with higher possibility of crimes.

We had a good time Thank you for having us at HackSC 2019!

Share this project: