VibeRoom is a comprehensive music streaming and social interaction platform that combines the best of music discovery, streaming, and real-time communication. Built with cutting-edge technologies, VibeRoom offers users a seamless experience to enjoy music, connect with friends, and explore new sounds.
- Real-time music playback
- Personalized playlists
- Song recommendations
- Music discovery
- In-app messaging
- Friend activity tracking
- Collaborative playlists
- Music sharing
- User management
- Content moderation
- Analytics dashboard
- Platform configuration
- React
- Vite
- Tailwind CSS
- Shadcn/UI
- Clerk Authentication
- Zustand (State Management)
- Node.js
- Express.js
- MongoDB
- Cloudinary (Media Storage)
- Clerk Authentication
- Cloudinary (Media Management)
- MongoDB Atlas (Database)
- Node.js (v18+ recommended)
- MongoDB Atlas account
- Clerk Account
- Cloudinary Account
Create a .env
file in the root of your backend directory with the following variables:
PORT=3000
MONGODB_URI=mongodb+srv://your-connection-string
ADMIN_EMAIL=your-admin-email@example.com
CLOUDINARY_API_SECRET=your-cloudinary-api-secret
CLOUDINARY_API_KEY=your-cloudinary-api-key
CLOUDINARY_CLOUD_NAME=your-cloudinary-cloud-name
NODE_ENV=development
CLERK_PUBLISHABLE_KEY=your-clerk-publishable-key
CLERK_SECRET_KEY=your-clerk-secret-key
cd backend
npm install
npm run dev
cd frontend
npm install
npm run dev
src/
controller/
: Business logic handlerslib/
: Utility functionsmiddleware/
: Request processing middlewaremodels/
: Database schema definitionsroutes/
: API endpoint definitions
index.js
: Main server entry point
src/
components/
: Reusable React componentspages/
: Page-level componentsstores/
: Zustand state managementtypes/
: TypeScript type definitionslib/
: Utility functions
App.tsx
: Main application component
VibeRoom uses Clerk for secure, multi-method authentication:
- Email/Password
- Social Logins
- Passwordless Authentication
- Recommended: Render, Heroku, or DigitalOcean
- Ensure MongoDB Atlas connection
- Set environment variables
- Recommended: Vercel, Netlify
- Configure environment variables
- Set up custom domain
- Express
- Mongoose
- Cloudinary
- Cors
- Dotenv
- React
- TypeScript
- Tailwind CSS
- Zustand
- Clerk React
- Lucide React
- Environment variable protection
- Clerk authentication
- HTTPS enforcement
- Input validation
- Rate limiting
- CORS configuration
- Lazy loading
- Code splitting
- Memoization
- Efficient state management
- Cloudinary image optimization
- Fork the repository
- Create a feature branch
- Commit changes
- Push to the branch
- Create a Pull Request
Specify your project's license (e.g., MIT, Apache 2.0)
- Ensure all environment variables are correctly set
- Check MongoDB Atlas network access
- Verify Clerk authentication configuration
- Review Cloudinary media upload settings
For issues or questions, please open a GitHub issue or contact support@viberoom.com
- Clerk Authentication
- MongoDB
- Cloudinary
- React Community