No description
backend | ||
frontend | ||
LICENSE | ||
README.md |
🎵 Supa Tunes
A collaborative music queue app built by Supa Duo
Turn any space into a shared music experience! Supa Tunes lets people vote on songs, add their favorites, and enjoy music together in real-time.
✨ Features
- 🎧 Real-time collaborative queue - Everyone can add songs and vote
- 🎵 Spotify integration - Play music directly through Spotify
- 🤖 AI-powered suggestions - Get song recommendations based on vibes and room themes
- 📱 QR code sharing - Easy room access via QR codes
- ⚡ Live updates - Real-time sync across all devices
- 🗳️ Smart voting system - Rate-limited voting to keep things fair
- 🎯 Room rules - Set the vibe with custom music rules
🚀 Quick Start
Prerequisites
- Deno (for backend)
- Node.js (for frontend)
- Spotify Premium account
- API keys for Spotify, YouTube, and Google Gemini
Backend Setup
- Navigate to the backend directory:
cd backend
- Create a
.env
file with your API keys:
PORT=8000
GEMINI_API_KEY=your_gemini_api_key
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
YT_API_KEY=your_youtube_api_key
- Run with Docker:
docker build -f Dockerfile -t supa-tunes-backend .
docker run --rm -p 8000:8000 supa-tunes-backend
Or run directly with Deno:
deno run --allow-net --allow-env main.ts
Frontend Setup
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Start the development server:
npm run dev
🎮 How to Use
- Create a Room: Connect your Spotify account and create a new music space
- Share the QR Code: Others can scan to join your room
- Add Songs: Search for music using natural language (e.g., "upbeat 80s vibes")
- Vote: Everyone gets votes to influence what plays next
- Enjoy: Music plays automatically based on the queue and votes!
🛠️ Tech Stack
Backend (Deno/TypeScript)
- Deno runtime with TypeScript
- Google Gemini AI for music suggestions
- Spotify Web API integration
- YouTube API for video content
- RESTful API design
Frontend (SvelteKit)
- SvelteKit with TypeScript
- Supabase for real-time database
- Tailwind CSS for styling
- Real-time subscriptions for live updates
Infrastructure
- Docker containerization
- Supabase for database and real-time features
- Railway for deployment
🎵 API Endpoints
POST /music
- Search for songs with AIPOST /newSuggestions
- Get AI-powered room suggestionsPOST /track
- Get track details by IDPOST /video
- Find YouTube videos for tracksGET /health
- Health check
🚀 Deployment
The app is containerized and ready for deployment on Railway or any Docker-compatible platform.
👥 Team Supa Duo
Built with ❤️ by the Supa Duo team!
Thanks
Special thanks to Konverto Lab for providing this challenge!