{"id":29873804,"url":"https://github.com/kunal-511/beatwave","last_synced_at":"2026-04-11T04:32:55.678Z","repository":{"id":276430596,"uuid":"928938655","full_name":"kunal-511/BeatWave","owner":"kunal-511","description":"BeatWave |   🎵 Full-Stack Music Streaming App | 🎧 Seamless playback | 💬 Real-time chat with WebSockets | 🚀 Built with TypeScript, React, Express, Docker \u0026 Clerk Auth. Connect, stream \u0026 vibe with friends! 🎶","archived":false,"fork":false,"pushed_at":"2026-02-22T13:28:50.000Z","size":20587,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-22T18:53:16.380Z","etag":null,"topics":["backend","clerk-auth","express","frotnend","nodejs","react","redis","shadcn-ui","socket-io","typescript","websocket"],"latest_commit_sha":null,"homepage":"https://beatwave-ncb1.onrender.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kunal-511.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-07T14:14:12.000Z","updated_at":"2025-11-04T04:06:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"eb03135c-d080-4fd5-b41e-ab663cdd8e28","html_url":"https://github.com/kunal-511/BeatWave","commit_stats":null,"previous_names":["kunal-511/beatwave"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kunal-511/BeatWave","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunal-511%2FBeatWave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunal-511%2FBeatWave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunal-511%2FBeatWave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunal-511%2FBeatWave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kunal-511","download_url":"https://codeload.github.com/kunal-511/BeatWave/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunal-511%2FBeatWave/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31669115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","clerk-auth","express","frotnend","nodejs","react","redis","shadcn-ui","socket-io","typescript","websocket"],"created_at":"2025-07-30T23:38:05.447Z","updated_at":"2026-04-11T04:32:55.648Z","avatar_url":"https://github.com/kunal-511.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# 🎵 BeatWave\n\n**Full-Stack Music Streaming Application**\n A modern, feature-rich music streaming platform built with TypeScript, React, Express, and real-time WebSocket communication. Connect, stream, and vibe with friends!\n\n---\n\n## 📌 Overview\n\nBeatWave is a comprehensive music streaming application that provides seamless music playback, real-time chat functionality, and social features for music enthusiasts. This project showcases modern web development practices with a scalable architecture designed for production deployment.\n\n---\n\n## 🚀 Key Features\n\n### 🎧 Core Music Features\n- **Seamless Audio Playback** – High-quality music streaming with custom audio controls  \n- **Smart Queue Management** – Add, remove, and reorder songs in your playback queue  \n- **Album \u0026 Artist Pages** – Browse music organized by albums and artists  \n- **Advanced Audio Player** – Volume control, seek functionality, and playback modes  \n\n### 👥 Social Features\n- **Real-time Chat** – Connect with other users through WebSocket-powered messaging  \n- **Friends Activity** – See what your friends are currently listening to  \n- **User Profiles** – Personalized user experiences with profile management  \n\n### 🔐 Authentication \u0026 Security\n- **Clerk Authentication** – Secure user authentication with social login options  \n- **Protected Routes** – Role-based access control for admin and user features  \n- **Session Management** – Persistent user sessions across devices  \n\n### 💡 User Experience\n- **Responsive Design** – Optimized for desktop, tablet, and mobile devices  \n- **Modern UI/UX** – Clean, intuitive interface built with Radix UI and Tailwind CSS  \n- **Real-time Updates** – Live activity feeds and instant notifications  \n- **Search \u0026 Discovery** – Find music quickly with advanced search capabilities  \n\n### 🛠️ Admin Panel\n- **Content Management** – Upload and manage songs, albums, and artists  \n- **User Analytics** – Track user engagement and platform statistics  \n- **Dashboard Overview** – Comprehensive admin dashboard with key metrics  \n\n---\n\n## 🧱 Technical Architecture\n\n### Frontend Stack\n- **React 18** with TypeScript for type-safe development  \n- **Vite** for fast development and optimized builds  \n- **Tailwind CSS** for responsive, utility-first styling  \n- **Radix UI** for accessible, high-quality components  \n- **Zustand** for lightweight state management  \n- **React Router** for client-side routing  \n- **Socket.io Client** for real-time features\n\n### Backend Stack\n- **Node.js** with Express.js framework  \n- **MongoDB** with Mongoose ODM for data persistence  \n- **Socket.io** for real-time WebSocket communication  \n- **Cloudflare R2(similar to S3)** for media storage and optimization  \n- **Clerk** for user authentication and management  \n- **CORS** enabled for cross-origin requests\n- **Redis** for in memory storage\n\n### Development Tools\n- **ESLint** for code linting and consistency  \n- **TypeScript** for enhanced developer experience  \n- **Nodemon** for automatic server restarts during development  \n- **Docker** for containerization and deployment\n\n\n\n## ⚙️ Getting Started\n\n### Prerequisites\n- Node.js 18+ installed  \n- MongoDB database (local or cloud)  \n- Redis server (local or cloud)\n- Cloudflare account for media storage  \n- Clerk account for authentication  \n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/kunal-2004/beatwave.git\n   cd beatwave ```\n\n2. **Install dependencies**\n\n   ```bash\n   npm install\n   ```\n\n3. **Set up environment variables**\n\n   Create `.env` files in both `backend/` and `frontend/` directories:\n\n   **Backend `.env`:**\n\n   ```env\n   PORT=5000\n   MONGODB_URI=\n   REDIS_HOST=localhost\n   REDIS_PORT=6379\n   CLERK_SECRET_KEY=\n   R2_ACCOUNT_ID=\n   R2_ACCESS_KEY_ID=\n   R2_SECRET_ACCESS_KEY=\n   R2_BUCKET_NAME=\n   R2_PUBLIC_URL\n   ADMIN_EMAIL=\n   NODE_ENV=development\n   ```\n\n   **Frontend `.env`:**\n\n   ```env\n   VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key\n   VITE_API_URL=http://localhost:5000\n   ```\n\n4. **Start Redis server**\n\n   ```bash\n   # Start Redis server locally\n   redis-server\n   \n   # Or using Docker\n   docker run -d -p 6379:6379 redis:7.2-alpine\n   ```\n\n5. **Start the development servers**\n\n   ```bash\n   # Start backend server\n   cd backend \u0026\u0026 npm run dev\n\n   # Start frontend server (in a new terminal)\n   cd frontend \u0026\u0026 npm run dev\n   ```\n\n6. **Access the application**\n\n   * Frontend: `http://localhost:5173`\n   * Backend API: `http://localhost:5000`\n\n---\n\n## 🚢 Production Deployment\n\n### Docker Deployment\n\nBuild and run with Docker:\n\n```bash\n# Build and start all services\ndocker-compose up --build\n\n# Run in detached mode\ndocker-compose up -d\n```\n\n### Kubernetes Deployment\n\nFor Kubernetes deployment, please refer to the `custom-deployment-k8s` branch documentation and manifests.\n\n\n---\n\n## 🗂️ Project Structure\n\n```\nbeatwave/\n├── backend/\n│   ├── controllers/\n│   ├── models/\n│   ├── routes/\n│   └── ...\n├── frontend/\n│   ├── components/\n│   ├── pages/\n│   ├── hooks/\n│   └── ...\n├── manifests\n|    ├── base/\n|    └── production/\n|\n├── docker-compose.yml\n├── README.md\n└── ...\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkunal-511%2Fbeatwave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkunal-511%2Fbeatwave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkunal-511%2Fbeatwave/lists"}