We wanted to try something completely new, and decided on trying to build a decentralized application. With this, we wanted to build a platform where users collaborate to make something special, all the while keeping the contributions secure and from verified sources, and to avoid spamming and profanity.
What it does
BlockStory is a collaborative storytelling platform where users can use their Ethereum to create new stories or contribute to existing ones in order to create special and secure stories that are free of spam and profanity. The fee allows the smart contract transactions to be mined and verified before being added to the blockchain. This platform could be expanded to a wide variety of collaborative mediums.
How we built it
The project was built using Smart Contracts with Solidity on the Ethereum Blockchain. We used the Truffle framework for the Smart Contracts. A local blockchain is hosted with Ganache which provides us with fake accounts with large amounts of Ethereum for testing. Metamask is used as the bridge between the web browser and the local blockchain network. The frontend was built with React.js and Semantic UI.
Challenges we ran into
Since this was our first time using Blockchain technology, we ran into challenges with setting up Truffle, Ganache, and Metamask. Since string manipulation isn't included in Solidity, we needed to find ways to check the texts for profanity. This was another challenge, as much lower level code was needed to accomplish this. Finally, we ran into issues linking the React frontend with Metamask and the local Ethereum nework.
Accomplishments that we're proud of
We're proud of finishing a Blockchain project, considering that we barely knew anything about the technology before the event.
What we learned
We learned about Smart Contracts, the Ethereum Blockchain, Solidity, Truffle, Ganache and Metamask.
What's next for BlockStory
Adding validation from external sources such as text analysis would improve on our current text analysis in the Smart Contract for the stories. A voting system to approve and validate bits of text into the stories would make the entire platform more collaborative as well. We can also expand it to different forms of media or things to validate such as collaborative HTML/CSS code.