Inspiration
Before and during hackathons, I see a lot of participants wander about discord channels searching for teammates. I thought it would be great, if there was a more efficient method for team-building while making the process completely transparent. Blockchain fits naturally to this use-case, because it allows the users to query all transaction history (who joined which team at what time) and it is decentralized (no outside authority intervening the process).
What it does
This application provides user interface for creating new teams, joining existing teams, and recruiting teammates. Each user needs a blockchain credentials to use the service.
How I built it
I built an express server that listens to Hedera Consensus messages. When a user makes a request (to create team, join team, etc.) by submitting a message, the server processes the request and update the current match-making state. Since blockchain guarantees order of submitted messages, the server's final state is deterministic.
Challenges I ran into
Compared to traditional way of communication (i.e. http request, socket programming), Hedera Consensus messages were significantly slower. I am not sure if this is because of inherent characteristics of blockchain algorithm or this is from limitation of Hedera's test network, but each transaction took a couple seconds to be processed. I could not find a way to improve speed of my application, so there is some impact on user experience.
I also had trouble subscribing to Hedera Consensus topic from front-end scripts.
What I learned
Blockchain is a very interesting field of technology that will innovate how developers think about web services.
What's next for Fair Team Builder
Right now, the web application does not display the real-time status. Users need to manually refresh the page to get the latest team-building status. My original plan was to subscribe to Hedera Consensus topic from front-end scripts and allow users to track team-building status without connecting to the server, but I had trouble with mirror nodes on my front-end scripts this time. If I could manage to fix that issue, then it would be possible to provide UI that updates in real-time.
Built With
- express.js
- hedera
- node.js
Log in or sign up for Devpost to join the conversation.