Inspiration

After constantly hearing poor stories from both buyers and sellers of goods that centered around being scammed, we decided that it would be our responsibility to provide safety and security of both parties in the exchange of goods.

What it does

Our program Ethertrade revolutionizes escrow by allowing the seller of a good to initiate a smart contract with the conditions of the buyer provides a predetermined amount of Ethereum to one of our private and secure cryptocurrency wallets and the seller providing our software with a valid tracking number. Our system automates the validation of a shipping number by checking the number with the world's most popular shipping companies to ensure that the package was shipped at the right time and that the package is what the buyer has ordered. The buyer must send all of the required funds to our secure wallet before the buyer will have access to the tracking number. The outcome of this is a very secure system for both the buyer and seller. At last both parties can live without fear of being scammed!

How I built it

The front end of our project has been completed using the native tkinter library in python. This allowed us to create a very functional front end that allows for ease of use. Our backend is using python as well with a few notable APIs. These include the web3 library that interacts directly with the Ethereum block chain to allow for fast, secure and free transactions of Ethereum. We also used the trackingmore API to allow for us to parse tracking numbers and ensure that the number fits our strict criteria for the seller to be eligible to get the funds. In order to showcase the trades happening with access to multiple wallets, we used the program Ganache. This software allows us to simulate numerous client wallets that interact in the exact same way as regular ethereum wallets without the hassle of having to open up and configure numerous private wallets.

Challenges I ran into

One of the main challenges that we ran into was selecting the proper API to facilitate the transactions of cryptocurrencies. Initially we planned on using the MakerDao API, but since there were a lot more technical issues using this with python, we decided that it would be a better route to use web3 to ensure no loss of currency during transactions. Another challenge that we ran into was getting the front end to interact with backend. This challenge was resolved by adding more pipelines for the front end to interact with backend using a mixture of facades and adapters to provide a smooth transition for the data as is migrates it's way through our program.

Accomplishments that I'm proud of

We as a team are very proud of the amount of knowledge that we have gained throughout this event. We learned a lot about how smart contracts work, as well as how the blockchain stores data and how much utility that a decentralized network has. We are also very proud of our teamwork and the way that we were able to communicate as a team. This made working our way through bugs a lot easier for us and a lot less stressful to our group. Looking back on our project, we are very proud of the amount of work that we were able to accomplish with the little existing knowledge we had about cryptocurrencies and the uses of them.

What I learned

We learned a lot about design patterns and the needs for them in order to have beautiful and functional code. We also learned a lot about the power of different languages, and the power that programming has on the world.

What's next for Ethertrade

As this hackathon comes to a close, we will continue to develop ethertrade by first providing more documentation for the code in the event that future hackers or developers would like to us our API to aid the making of their projects. We also plan on expanding the functionality of ethertrade to make it a remote program hosted on the internet with aims to shift solely to smart contracts to make this a fully decentralized program.

Built With

  • ethereum
  • ganache
  • python
  • tkinter
  • trackingmore
  • web3
Share this project:

Updates