Ethereum App for E-Commerce

Ethereum App for E-Commerce

Information
Region:
Worldwide
Industry:
Financial Services and Banking, Commerce and Shopping
Type:
Mobile
Engagement model:
Fixed cost
Duration:
3.5 months
Staff:
1 developer
ID:
300
Technologies used
Front-end
HTML
Truffle
web3j
Solidity
Zeppelin Solidity

Decentralized applications (DApps) are open-source applications without a centralized owner that controls the majority of its tokens. Bitcoin and Ethereum by themselves are examples of DApps, as well as the apps developed on top of them.

Elinext was challenged to create a decentralized e-commerce platform with the business logic built on the basis of the Ethereum smart contract.

The application is a retail store where the customers can purchase necessary items using an Android app with the ability to pay with ethers (ETH) and the admin can add products to the shop or remove them.

Challenge

Our client experienced the problem of expensive and long payment processes. The payment process included some obstructive steps to settle a transaction and extra fees to pay for payment gateways.

To cut this long route short, Elinext has started the blockchain-based project that consisted of the following parts:

  • Smart contract
  • Web Admin Panel
  • Android app for customers

The main challenge for our developer was to implement data exchange between a smart contract and clients’ parts: Android app and web admin panel. Another challenge was to support purchases by ETH and custom tokens. On top of that, we needed to provide full test coverage.

Smart contract

The smart contract entails all the products in-store with descriptions and prices. The contract is deployed into the Ethereum blockchain and is used to streamline purchasing processes, remove duplicate processes and optimize data recording.

Web Admin Panel

Web Admin Panel allows the administrators to add new products to the contract or remove them. The admin can also set a 'beneficiary' account, edit descriptions and prices in ETH currency. 

Android App

Android app allows users to purchase products from the contract with ETH.

The purchasing process is flexible, with many parts of it in a working state. You can buy a product with or without the admin, pay for that product with ETH, and accumulate the bonuses for your transactions which can be used for the new payments.

The whole blockchain works as follows:

1. The user makes a purchase with their Android app.

2. The admin manages product supply from the admin panel.

3. Smart contracts (SC) are encoded for Ethereum’s runtime for smart contracts and backward to read the data out of transactions with the help of the application binary interface (ABI).

4. The Android app signs the transaction with the user’s private key in the  Ethereum wallet. This is the piece of client-side software that allows you to prove that you have enough cryptocurrency to buy an item.

5. The transaction appears in the Ethereum blockchain.

6. The transaction gets confirmed by the network.

The smart contracts were written in js-like Solidity language which is supported by web3 and web3j – the lightweight, reactive libraries that allow integrating JavaScript and Android applications respectively with Ethereum blockchains

All functionality of the Smart contract was covered by Truffle tests to make sure that the Smart contract is secure.

Results

The final product was based on the Smart contract that was deployed into the Ethereum blockchain, with the Web Admin Panel connected to the contract and placed at hosting. The Android app was distributed to the users. The client has  received the following benefits:

  • Simplification of multi-party purchasing and payment process;
  • High-level security assurance;
  • Enhanced verification process to reduce risks of fraud or theft.
 
Do you want the same project?
Got A Project Idea? Lets Discuss It With Us
Contact Us


    Insert math as
    Block
    Inline
    Additional settings
    Formula color
    Text color
    #333333
    Type math using LaTeX
    Preview
    \({}\)
    Nothing to preview
    Insert