Inspiration

I've always been into singing and wanted to make an application related to music but never really got a chance to. So this was a great opportunity for me to combine Blockchain and Music as I didn't have any idea of how to do it and didn't know if anyone has done it before so this was a great learning project for me.

What it does

The platform allows artists to:

  • Upload Tracks: Artists can upload their music tracks, which are then stored on IPFS through Pinata for decentralized storage.
  • Blockchain Registration: The uploaded track is registered on the blockchain using a smart contract. This process involves generating a unique fingerprint for each track using the Chromaprint Library, ensuring authenticity and preventing duplicates.
  • Monetization: Fans can tip artists using $VIBE fungible tokens. The platform supports ERC20 tokens, implemented using OpenZeppelin.
  • Explore and Discover: Users can search for tracks and view an artist's entire discography.

How I built it

Frontend

  • React.js: Provides a robust framework for building the user interface.
  • Material-UI: Ensures a consistent and aesthetically pleasing design.
  • Axios: Handles API requests to the backend.

Backend

  • Node.js and Express.js: Handle server-side operations and define API endpoints.
  • Firebase: Manages user authentication and stores user data.
  • Chromaprint Library: Generates unique fingerprints for tracks to ensure authenticity.

Blockchain Integration

  • Polygon Amoy Testnet: Provides a scalable and efficient blockchain network.
  • Alchemy: Facilitates interactions with the blockchain and Smart Contract Deployment
  • IPFS Pinata: Store and retrieve files in a decentralized manner.
  • OpenZeppelin: Implements ERC20 tokens for cryptocurrency transactions.

Deployment Heroku: Hosts the backend and frontend

Challenges I ran into

  • Blockchain Integration: Ensuring the smart contracts interact correctly with the frontend and backend required meticulous debugging and testing. Managing gas fees and transaction speeds on the Polygon network was also challenging.
  • File Handling: Implementing file uploads and ensuring compatibility with IPFS for decentralized storage posed technical hurdles, especially in managing large files and ensuring quick retrieval times.
  • Error Handling: Managing various error scenarios, such as duplicate track uploads or blockchain transaction failures, required error handling to provide a good user experience.
  • Deployment: Deploying the backend and frontend on Heroku and ensuring communication between frontend and backend involved several configurations and adjustments.

Accomplishments that I'm proud of

  • First Blockchain Web3 Project: Successfully completing my first blockchain and Web3 project is a significant achievement. It involved learning new technologies and overcoming numerous challenges.
  • Functional Platform: Creating a fully functional decentralized music platform that supports music uploads, blockchain registration, and cryptocurrency transactions is a substantial accomplishment.
  • User Interface: Developing a user-friendly and visually appealing interface that provides a smooth user experience.

What I learnt

  • Blockchain and Web3: Gained in-depth knowledge about blockchain technology, smart contracts, and Web3 integration.
  • Decentralized Storage: Learned how to use IPFS for decentralized file storage and its advantages over traditional centralized systems.
  • Full-Stack Development: Enhanced my skills in full-stack development, including frontend, backend, and blockchain integration.
  • Deployment: Acquired experience in deploying full-stack applications on Heroku and managing environment variables for seamless operation.

What's next for DeMus

  • Membership Tiers: Artists can introduce membership tier lists, allowing fans to subscribe for exclusive content and perks.
  • NFT Releases: Artists can give out NFTs of their unreleased music or early-release tracks to their fans, creating unique engagement opportunities.
  • Concert Tickets: DeMus plans to enable artists to sell tickets to their concerts, which fans can purchase using the platform's $VIBE tokens.

Built With

Share this project:

Updates