Skip to content

Akashsingh310/FanTune

Repository files navigation

FanTune

FanTune is an innovative music-sharing platform that enables collaborative playlist creation and management with real-time community engagement. The platform allows seamless integration of YouTube music content, featuring an interactive voting system and customizable sharing capabilities.

How It Work

Creator Dashboard

The Creator Dashboard provides authenticated users with full control over their music collection:

  • Add new songs via YouTube links
  • Play songs directly from the interface
  • Manage upvotes and playlist ordering
  • Generate shareable links for audience engagement

Audience View

The Audience View (/creator/{creatorId}) offers a collaborative experience with specific permissions:

  • Add songs to the creator's playlist
  • Participate in song voting
  • View real-time playlist updates
  • Automatic playback of highest-voted songs (creator-side only)

Features

Authentication & Security

  • Secure Google OAuth2.0 integration
  • Protected routes and authenticated sessions
  • Role-based access control for playlist management

Core Functionality

  • Add YouTube music tracks seamlessly
  • Real-time playlist updates and synchronization
  • Dynamic queue management with automatic song removal

Community & Social

  • Share playlists with customizable access links
  • Collaborative playlist contributions
  • Song voting system for queue prioritization
  • Real-time community engagement features

Tech Stack

  • Frontend: Next.js, TypeScript, Tailwind CSS
  • Backend: Next.js API Routes
  • Database: PostgreSQL with Prisma ORM
  • Authentication: NextAuth.js with Google Provider
  • Deployment: Vercel

Installation

  1. Clone the repository:
git clone https://github.com/Akashsingh310/FanTune.git
cd FanTune
  1. Install dependencies:
npm install
  1. Configure environment variables: Create a .env.local file with:
GOOGLE_CLIENT_ID="your_google_client_id"
GOOGLE_CLIENT_SECRET="your_google_client_secret"
DATABASE_URL="your_database_url"
NEXTAUTH_SECRET="your_nextauth_secret"
NEXTAUTH_URL="http://localhost:3000"
  1. Set up the database:
npx prisma migrate dev
npx prisma generate
  1. Start development server:
npm run dev

Deployment

  1. Build the application:
npm run build
  1. Deploy to your preferred platform (e.g., Vercel)

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository from dev Branch
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

About

A collaborative platform for creating and sharing music playlists with YouTube integration and real-time community voting.

Topics

Resources

Stars

Watchers

Forks

Contributors