Inspiration
Blockchain has a lot of interesting applications for secure payment and a strong impact on how information is shared. After learning about how Uber sells the location data and travel patterns of passengers for a profit, we wanted to allow each rider and driver to have their own privacy and rights. Talking to ChainSafe gave us lots of inspirations and ideas regarding how Ethereum blockchain can be used for this application, and we decided to explore opportunities in the car industry using what's provided by the Aragon Platform and SmartCar API.
What it does
AirBnB for cars, except the cars can be owned by anyone, including a group of individuals. This application allows the user to rent from a list of vehicles that are registered with SmartCar. Through the use of smart contracts from the Aragon Platform, location data and travel patterns are preserved from third-party access. After selecting a car on the landing page, the user can create a transaction using the Ethereum blockchain. When the transaction goes through, the Car would be unlocked through a request to SmartCar API to unlock the door.
How we built it
We used two react apps, an app for deploying the blockchain locally, and another app to communicate with the SmartCar API. The Aragon app is built using solidity backend and a react front end, with functionality to process a transaction on click. The SmartCar, on the other hand, includes a local server of endpoints to act as an adapter to the SmartCar API. Which has a centralized authentication service that prevents cross-site scripting and access tokens to be leaked. In addition, we used ethers.js to monitor the transaction at our local address, which then calls the SmartCar methods to physically lock/unlock the car doors.
Challenges we ran into
This is our first time learning and using blockchain, which provided a lot of technical difficulties. In addition, it was hard to narrow down the scope of our project to something that could be completed within a 36-hour hackathon. There were also a lot of interesting features that we were interested in implementing, but couldn't because of their technical difficulty and complexity. Integrating the two react apps was also difficult as both the Aragon app and the SmartCar app had different configurations and set-up requirements, such as conflicting ports on localhost.
Accomplishments that we're proud of
Being able to deliver a complete solution with the very restricted duration of the hackathon. We are proud of being able to incorporate a new technology that we had never touched before into technology that we had already known, as result, producing a complete web application.
What we learned
Lots about blockchain, Ethereum, Aragon, and javascript. We also learned a lot about the different concepts of blockchain and their applications and impact on different industries. In addition, security practices using blockchain and why protecting personal data is extremely important.
What's next for EtherRide
For the scope of this hackathon, we are not able to implement many complex features.
- Rental duration (automatically lock it after the duration passes with smartCar's location API)
- Penalty system to disincentivize malicious actions by the users
- Splitting the fare if there are multiple users for one car
- A car that is collectively owned by a group of individuals
- Sort the list of cars by the distance to the user
- Rating system
- Scheduling
- Self Driving Car!
- Ownership of one's personal data (same as people not wanting to give data to Facebook)
- Assign permissions to each user to replace the current "events triggering" scheme to improve the security of the system
Built With
- aragon
- blockchain
- ethereum
- ethers.js
- javascript
- jsx
- node.js
- react
- smartcar
- solidity
Log in or sign up for Devpost to join the conversation.