We saw the need in having a decentralized queue system with payment to ensure to customers that others cannot be prioritized over them, being able to check position in queue, and be able to recuperate any ether transferred to the contract if they wish to be removed from the queue. The seller benefits by having a secure and consistent queue system to be able to provide products or services to the customer.

We thought this was a need since in centralized systems, the user cannot be sure if their order is being pushed back for any reason and it allows the buyers to have a more consistent payment system. This also allows the customer to back out of the order up until the point when the product is provided, and not have to go through refunding from a company. Having a queue system that is visible to the customer but also secure is the main benefit to our DApp.

What it does

This DApp allows users to create queues where anyone can enter the queue by pressing the enqueue button and transferring the specified ether. As the elements in the queue are dequeued, the ether is transferred from the contract to the owner of the queue. The functionality to remove from the queue was not added as we did not have enough time to build the UI to support this.

How I built it

We built it with Truffle to manage solidity contracts and web3js interactions.

Challenges I ran into

We ran into most of our challenges creating the UI that interacts with the blockchain. We spent most of our time learning about the smart contracts and the interaction through JavaScript that we did not have enough time to build out the functionality of the app.

Accomplishments that I'm proud of

Learning Solidity contracts and web3js with no prior experience and limited experience with JavaScript as well.

What I learned

Truffle, Solidity, Web3js, and many underlying concepts of blockchain and Ethereum transferring.

What's next for BlockQueue

Build out the rest of the functionality and make it usable by businesses trying to sell products/ services.

Built With

Share this project: