Music Powered by Democracy
BeatNet is a collaborative music streaming platform where users join rooms, add songs from YouTube or Spotify, and vote on what plays next. Let the crowd decide the playlist!
- 🎪 Room-Based Sessions - Create or join music rooms
- 🔗 Multi-Platform - Support for YouTube and Spotify links
- 👍 Democratic Voting - Upvote songs to influence the queue
- 🎵 Smart Queue - Songs ordered by popularity
- 👑 Host Controls - Room creators can manage playback
- 🔄 Real-time Updates - Live queue and vote updates
- 🔐 Secure Auth - Google OAuth integration
- 📱 Responsive Design - Works on all devices
- Node.js 18+
- PostgreSQL database running
- Google OAuth credentials
# Clone the repository
git clone https://github.com/singhaditya73/BeatNet.git
cd BeatNet
# Install dependencies
npm install
# Set up environment variables (see .env.example)
# DATABASE_URL, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
# Run database migrations
npx prisma migrate dev --name add_rooms
# Generate Prisma client
npx prisma generate
# Start development server
npm run devVisit http://localhost:3000 to see the app.
- SETUP.md - Complete setup guide and feature documentation
- MIGRATION.md - Database migration instructions
- Sign In - Authenticate with your Google account
- Browse Rooms - See all active music sessions
- Create/Join - Start your own room or join an existing one
- Add Songs - Paste YouTube or Spotify links
- Vote - Upvote your favorite tracks
- Enjoy - Watch the most popular songs play first!
- Framework: Next.js 14 (App Router)
- Database: PostgreSQL + Prisma
- Auth: NextAuth.js
- UI: Tailwind CSS + shadcn/ui
- Validation: Zod
beatnet/
├── app/
│ ├── api/ # API routes
│ ├── dashboard/ # Room browser
│ ├── room/[roomId]/ # Room interface
│ └── page.tsx # Landing page
├── components/ # UI components
├── prisma/ # Database schema
└── lib/ # Utilities
- YouTube - Full video link support
- Spotify - Track link support
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
This is a Next.js project bootstrapped with create-next-app.