Skip to content

ZarhanMemon/vibechat-music-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎧 VibeChat – Real-Time Music & Messaging App

VibeChat is a full-stack real-time web application that blends Spotify-style music streaming with real-time 1-on-1 chat. Users can listen to music, track what their friends are listening to live, send friend requests, and chat β€” all in one seamless app powered by Socket.io, React, and Clerk.

Experience music socially, not just personally. πŸŽ΅πŸ’¬


βœ… Features (Current Version)

  • πŸ” User Authentication

    • Google Sign In/Sign Up via Clerk
    • Guests can browse and preview music
    • Authenticated users unlock full music + social features
  • πŸ§‘β€πŸ€β€πŸ§‘ Friend System

    • Send/Accept/Reject Friend Requests
    • View Incoming/Outgoing Requests
    • Track Total Friends and Recommended Users
  • 🟒 User Presence

    • Live Online/Offline Status via Socket.io
    • β€œActive Now” section shows who’s listening to music
    • Real-time friend activity feed
  • πŸ’¬ 1-on-1 Real-Time Messaging

    • Instant chat with friends using Socket.io
    • Online indicator next to friend names
    • Custom styled message input component
  • 🎡 Music Player & Album System

    • Home page with Recommended & Featured albums
    • Album pages with:
      • Play/Pause, Next/Previous track
      • Loop Song / Loop Album
      • Volume control
      • Song info preview (image, title, etc.)
    • Listen to songs your friends are playing – live
  • πŸ‘€ User Dashboard

    • Personalized topbar with user name and navigation
    • Notifications section for friend request actions
    • Responsive layout for mobile and desktop
  • πŸ› οΈ Admin Panel

    • Add/Delete Albums and Songs
    • View user base
    • Manage full song and album library

πŸš€ Upcoming Features (Coming Soon)

  • πŸ‘₯ Group Chat System
  • πŸ“€ Playlist Creation
  • πŸ’Œ Typing Indicators
  • πŸ“± Progressive Web App (PWA) Support

πŸ“ Folder Structure

vibechat-music-chats/
β”œβ”€β”€ client/                   # Frontend (React + Tailwind + Clerk)
β”‚   β”œβ”€β”€ components/           # UI components (Topbar, Player, Sidebar, etc.)
β”‚   β”œβ”€β”€ pages/                # Pages like Home, Friends, Messages
β”‚   β”œβ”€β”€ store/                # Zustand for global state
β”‚   β”œβ”€β”€ hooks/                # Custom React hooks
β”‚   β”œβ”€β”€ utils/                # Helper functions
β”‚   β”œβ”€β”€ App.jsx               # Main App entry
β”‚   └── main.jsx              # ReactDOM render logic
β”‚
β”œβ”€β”€ server/                   # Backend (Node.js + Express + Socket.io)
β”‚   β”œβ”€β”€ controllers/          # Route handling logic
β”‚   β”œβ”€β”€ routes/               # API endpoints
β”‚   β”œβ”€β”€ models/               # MongoDB models
|   β”œβ”€β”€ lib/                # Helper functions
β”‚   β”œβ”€β”€ socket/               # Socket.io server configuration
β”‚   └── index.js              # Backend entry point

πŸ›  Tech Stack

Part Technology
Frontend React, Tailwind CSS, ShadCN UI
Backend Node.js, Express, Socket.IO
Auth Clerk (Google OAuth)
Database MongoDB (Mongoose)
State Mgmt Zustand
Deployment Render
Music Features HTML5 Audio API

βš™οΈ How to Run the Project Locally

1. Clone the Repository

git clone https://github.com/ZarhanMemon/vibechat-music-chats.git
cd vibechat-music-chats

2. Set Up Client

cd client
npm install

Create a .env file in client/:

VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key

Then run:

npm run dev

3. Set Up Backend

cd ../server
npm install

Create a .env file in server/:

PORT=5000
MONGO_URI=your_mongodb_uri
CLERK_SECRET_KEY=your_clerk_secret

Then run:

node index.js

Visit http://localhost:5173 to view the app.


πŸ“Έ Screenshots

You can replace these with your own later.

πŸ–₯️ Desktop Views

Image Image Image Image Image

πŸ“± Mobile Views

Image Image Image Image Image Image Image


πŸ™ Credits

Thanks to:


⚠️ Known Issue

While capturing sample screenshots for this project, we encountered a bug where:

When receiving messages through the socket connection, the same message appears twice in the chat interface.

This is likely due to a duplicate event listener or repeated state update.
The issue is currently under investigation and will be addressed in a future patch.
It does not affect core functionalities during testing or demonstration.


πŸ“„ License

This project is licensed under the MIT License.


🌐 Live Project

🎧 Try the live version now:
πŸ”— https://vibechat-music-chat.onrender.com

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors