Skip to content

Repository files navigation

🎡 Dybys - Music Tokenization Platform (WIP)

A decentralized music platform for track uploading and tokenization, built with Next.js and Express.js. Currently in development with basic functionality implemented.

Platform Status License

✨ Current Features

🎧 Track Upload: Artists can upload music files with metadata πŸ” Wallet Connection: Phantom wallet integration with Solana πŸ’³ Auto SOL Airdrop: New wallets receive 100 SOL for testing πŸ“Š Track Management: Basic CRUD operations for music tracks 🎨 Modern UI: Next.js 15 with shadcn/ui components 🐳 Docker Setup: Containerized development environment πŸ—„οΈ Database: SQLite with Prisma ORM for data storage

πŸš€ Quick Start

Prerequisites

  • Docker Desktop installed and running
  • Git for cloning the repository
  • Phantom Wallet browser extension for wallet connection

Setup

# 1. Clone the repository
git clone <your-repo-url>
cd dybys

# 2. Run the setup script
./setup.sh

The setup script will configure environment files and start all services via Docker.

Manual Docker Setup (Alternative)

# Start all services
docker-compose up -d --build

Access the application:

🎯 Current Functionality

πŸ’³ Wallet Integration

  • Connect Phantom wallet
  • Automatic 100 SOL airdrop for new wallets (if balance < 50 SOL)
  • Basic balance checking and display

🎧 Track Management

  • Upload audio files (up to 50MB)
  • Add track metadata (title, description, genre)
  • View uploaded tracks in artist dashboard
  • Basic track listing and browsing

πŸ—„οΈ Data Storage

  • User profiles linked to wallet addresses
  • Track metadata and file storage
  • SQLite database with Prisma ORM

⚠️ Limitations

  • No actual tokenization: SPL token creation not implemented
  • No marketplace: Investment features are UI-only
  • No smart contracts: Blockchain integration is minimal
  • Local development only: No production deployment setup

πŸ› οΈ Technology Stack

Frontend

  • Next.js 15 with App Router and TypeScript
  • Tailwind CSS + shadcn/ui for modern components
  • Solana Wallet Adapter for wallet connection
  • Zustand for state management
  • Sonner for toast notifications

Backend

  • Node.js + Express.js with TypeScript
  • Prisma ORM with SQLite database
  • JWT Authentication (basic implementation)
  • Multer for file upload handling

Blockchain

  • Solana Wallet Integration for wallet connection
  • Local Solana test validator via Docker
  • Basic balance checking and airdrop functionality

Infrastructure

  • Docker Compose for containerization
  • PostgreSQL (configured but SQLite used)
  • Volume persistence for uploads and data

πŸ“ Project Structure

dybys/
β”œβ”€β”€ 🐳 Docker Configuration
β”‚   β”œβ”€β”€ docker-compose.yml          # Main docker configuration
β”‚   β”œβ”€β”€ docker-compose.vps.yml      # VPS deployment config
β”‚   β”œβ”€β”€ setup.sh                    # Setup script
β”‚   └── Makefile                    # Make commands
β”‚
β”œβ”€β”€ 🎨 Frontend (Next.js)
β”‚   β”œβ”€β”€ app/                        # App router pages
β”‚   β”‚   β”œβ”€β”€ page.tsx               # Home page
β”‚   β”‚   β”œβ”€β”€ marketplace/           # Marketplace page
β”‚   β”‚   β”œβ”€β”€ artist/                # Artist pages
β”‚   β”‚   └── profile/               # Profile page
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ ui/                    # shadcn/ui components
β”‚   β”‚   β”œβ”€β”€ WalletConnect.tsx      # Wallet connection
β”‚   β”‚   β”œβ”€β”€ Navigation.tsx         # Main navigation
β”‚   β”‚   └── TrackCard.tsx          # Track display
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ solana.ts              # Solana utilities
β”‚   β”‚   β”œβ”€β”€ store.ts               # Zustand store
β”‚   β”‚   └── utils.ts               # Helper functions
β”‚   └── Dockerfile                 # Frontend container
β”‚
β”œβ”€β”€ πŸ› οΈ Backend (Express.js)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ routes/                # API endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ auth.ts            # Authentication
β”‚   β”‚   β”‚   β”œβ”€β”€ tracks.ts          # Track management
β”‚   β”‚   β”‚   └── investments.ts     # Investment (placeholder)
β”‚   β”‚   └── index.ts               # Main server
β”‚   β”œβ”€β”€ prisma/
β”‚   β”‚   └── schema.prisma          # Database schema
β”‚   └── Dockerfile                 # Backend container
β”‚
β”œβ”€β”€ πŸ“‹ Documentation
β”‚   β”œβ”€β”€ README.md                  # This file
β”‚   └── VPS_DEPLOYMENT.md          # VPS deployment guide
β”‚
└── πŸ§ͺ Development
    └── test-ledger/               # Local Solana validator data

πŸš€ Available Commands

Docker Commands (Recommended)

# Start all services
docker-compose up -d --build

# View logs
docker-compose logs -f

# Stop all services
docker-compose down

# Check service status
docker-compose ps

Development Commands

# Frontend development
cd frontend && npm run dev

# Backend development
cd backend && npm run dev

# Database operations
cd backend && npx prisma migrate dev
cd backend && npx prisma generate

πŸ§ͺ Testing the Application

Manual Testing

  1. Wallet Connection

    • Visit http://localhost:3000
    • Click "Connect Wallet"
    • Approve connection in Phantom wallet
    • Verify 100 SOL airdrop notification
  2. Track Upload (Artists)

    • Navigate to Artist β†’ Upload page
    • Select audio file and fill metadata
    • Click "Upload Track"
    • Verify track appears in dashboard
  3. Browse Tracks

    • Visit marketplace page
    • View uploaded tracks
    • Note: Investment functionality is UI-only

🌐 API Endpoints

Health Check

GET /health
# Response: {"status":"OK","timestamp":"2025-01-15T..."}

Track Management

GET /api/tracks                    # List all tracks
GET /api/tracks/:id               # Get specific track
POST /api/tracks/upload           # Upload new track (requires auth)
POST /api/tracks/:id/tokenize     # Prepare track for tokenization

Authentication

POST /api/auth/register           # Register user
POST /api/auth/login              # Login user
GET /api/auth/profile             # Get user profile

🎯 Development Roadmap

βœ… Implemented

  • Basic track upload and storage
  • Wallet connection with Phantom
  • Auto SOL airdrop for testing
  • Docker containerization
  • Database schema and models

🚧 In Development

  • Smart contract integration
  • Actual SPL token creation
  • Investment marketplace
  • User authentication system

πŸ“‹ Planned

  • Real tokenization with smart contracts
  • Marketplace with actual trading
  • Royalty distribution system
  • Production deployment

πŸ“œ License

MIT License - see LICENSE file for details.


🎡 dybys - Music Tokenization Platform

A work-in-progress platform for decentralized music tokenization

About

Hackathon project (Solana Day) A decentralized music platform for track uploading and tokenization

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages