team-4/README.md

127 lines
3 KiB
Markdown
Raw Permalink Normal View History

2025-08-02 13:28:10 +02:00
# 🎵 Supa Tunes
2025-08-01 15:31:37 +00:00
2025-08-02 13:28:10 +02:00
**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](https://deno.land/) (for backend)
- [Node.js](https://nodejs.org/) (for frontend)
- Spotify Premium account
- API keys for Spotify, YouTube, and Google Gemini
### Backend Setup
1. Navigate to the backend directory:
```bash
cd backend
```
2. Create a `.env` file with your API keys:
```env
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
```
3. Run with Docker:
```bash
docker build -f Dockerfile -t supa-tunes-backend .
docker run --rm -p 8000:8000 supa-tunes-backend
```
Or run directly with Deno:
```bash
deno run --allow-net --allow-env main.ts
```
### Frontend Setup
1. Navigate to the frontend directory:
```bash
cd frontend
```
2. Install dependencies:
```bash
npm install
```
3. Start the development server:
```bash
npm run dev
```
## 🎮 How to Use
1. **Create a Room**: Connect your Spotify account and create a new music space
2. **Share the QR Code**: Others can scan to join your room
3. **Add Songs**: Search for music using natural language (e.g., "upbeat 80s vibes")
4. **Vote**: Everyone gets votes to influence what plays next
5. **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 AI
- `POST /newSuggestions` - Get AI-powered room suggestions
- `POST /track` - Get track details by ID
- `POST /video` - Find YouTube videos for tracks
- `GET /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!