Welcome to BeatBlock! Our application lets users create, buy, and sell NFT beat music via blockchain and trading crypto.
Within the last two months, the NFT market has grown its monthly volume from "$200 million to $2.2 Billion USD", a surge of 1000% in two months (FORBES). With the rise of digital assets, our project bridges the gap between NFT audio assets and community sharing.
What is a Non-fungible token (NFT)?
At a high level, most NFTs are part of the Ethereum blockchain (such as our product). Ethereum is a cryptocurrency, like bitcoin, but its blockchain supports NFTs, which store extra information (such as music) that makes them work differently from, say, an ETH coin (The Verge).
What it does
BeatBlock lets users create, buy, and sell music portions, while rewarding creators for higher streamed tracks by the community. Music writers have their music ownership certified with blockchain security and are able to sell their ownership with cryptocurrency (i.e. Ethereum).
Full Application can be found at: GitHub
How we built it
We used backend tools with blockchain, Node.js, and MongoDB. For the frontend, we used React.js. Smart contracts were programmed in Solidity, and Ethereum was our coin of choice.
Challenges we ran into
Over the course of the project, we ran into numerous challenges while building the project.
- We spent a significant amount of time on GitHub merge conflicts as it was the first time many of us had collaborated on a product in code.
- The first and most time-consuming challenge was grasping a deep understanding of the essence of Blockchain and NFTs. We spent hours researching Blockchain before even writing a single line of code.
- After mastering Blockchain and its applications, we ran into challenges implementing NFT minting. We spent a long amount of time learning to code smart contracts from scratch, as well as coding the Music Grid and other portions that required us to learn new fundamental techniques.
- Figuring out the ownership model for the NFTs was also quite challenging, especially regarding the sale and copyright transfer of a song upon completion.
Accomplishments that we're proud of
- We managed to make use of Ethereum and NFTs, serving a purpose that can be seen in our web-app
- The incorporation of crypto-based payments was huge for us, as we have not dealt with any type of finance before.
- Coding the music file handling and note selection system is something we're extremely proud of, as we did most of it from scratch.
What we learned
Ishan: Over the course of this project, I learned more about the process of blockchain and NFTs in programming and the evolving tech climate. I also learned about the interaction between React js and blockchain API's, as well as some tricks on React frontend. Besides programming, I also trained in new graphic design techniques when it came to making logos and graphics with photoshop. Lastly, I enjoyed exploring a completely new domain of technology; it felt like learning to program all over again.
Robert: During the project, I learned a lot about combining and manipulating mp3 audio files. Also, I learned a significant amount about NFTs and MongoDB executions with React. Over the course of the project, my role covered both backend and some frontend aspects of BeatBox, with emphasis on the Blockchain and database aspects.
Altogether: Surprisingly, most of us had very little prior knowledge on building blockchain and NFTs. However, through research and experience, we gained a deeper understanding of how they were linked. We hope that BeatBlock allows people to securely explore and share their digital music assets with the community.
What's next for BeatBlocks
In the future we're planning on adding several new features to BeatBlocks.
- Adding more musical options that give creators increased choice and a funnier experience interacting with our platform
- Incorporating the parts of each song as fractional NFT's, giving the original creators a stake in their song beyond the initial sale.
- Expanding song playback functionality and incorporating advertising