Crowdify is a real-time music streaming platform where users can create rooms, invite others to join, add songs, and upvote tracks. The most upvoted song gets played automatically. It also features an AI chatbot for assistance and engagement.
- 🎵 Create and Join Rooms: Users can create rooms or join existing ones.
- 📌 Add Songs: Anyone in the room can add songs to the queue.
- 👍 Upvote Songs: The song with the highest votes plays next.
- 🤖 Chat box: Real Time chatbox.
- 🔄 Real-time Updates: WebSockets ensure instant updates on song queues and votes.
- Frontend: Next.js, React, TailwindCSS
- Backend: https://github.com/Fahad-Dezloper/crowdify-backend [ REDIS, WEBSOCKET ]
- Database: PostgreSQL
- ORM: Prisma
- Authentication: NextAuth / OAuth
- Streaming API: YouTube API
Follow these steps to set up the frontend for CROWDIFY.
Fork the repository and then clone it to your local machine:
git clone https://github.com/Fahad-Dezloper/Crowdify
cd crowdifyRun the following command to install all necessary dependencies:
pnpm installNavigate to WebContext.tsx and modify the WebSocket configuration as follows:
- Comment out the existing WebSocket connection:
// const ws = new WebSocket("wss://crowdify-backend-production.up.railway.app");- Uncomment the local WebSocket connection:
const ws = new WebSocket("ws://localhost:4000");Copy the example environment file and set up the necessary credentials:
cp .env.example .envThen, update the .env file with your credentials:
# Google OAuth Credentials
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
# YouTube API Key for searching YouTube videos on the dashboard
YOUTUBE_API_KEY=""
# NextAuth Configuration
NEXTAUTH_URL="http://localhost:3000/"
NEXTAUTH_URL_INTERNAL="http://localhost:3000/"
# Generate a secure NEXTAUTH_SECRET using:
# openssl rand -base64 32
NEXTAUTH_SECRET=""
# Database Configuration
DATABASE_URL=""Apply database migrations using Prisma:
npx prisma migrate deployRun the following command to generate the Prisma client:
npx prisma generatehttps://github.com/Fahad-Dezloper/crowdify-backendRun the frontend development server:
pnpm run devNow, your frontend and backend should be up and running!
- Create a new room and invite others.
- Add songs to the playlist.
- Upvote songs to determine the next track.
- Interact with the others through chatbox
Contributions are welcome! Feel free to fork the repo, make improvements, and submit a PR.
This project is licensed under the MIT License.
🚀 Enjoy collaborative music streaming with Crowdify!
