(Work in progess!!)
A real-time web application for hosting and participating in gameified karaoke sessions. Kara.io allows users to create virtual karaoke rooms, join existing sessions, and manage song queues in real-time.
- Session Creation: Create karaoke sessions with customizable settings
- Real-time Updates: WebSocket integration for live participant updates
- QR Code Integration: Easy session sharing via generated QR codes, and easy to input URL slugs
- Role-based Access: Different interfaces for hosts and participants
- Waiting Room System: Organized participant management before sessions begin
- Queue Management: Lets players vote on the queue of karaoke songs, which will get automatically updated based on upvotes per song
- React
- React Router for navigation
- Tailwind CSS for styling
- Socket.io-client for real-time communication
- shadcn/ui components for UI elements
- Node.js
- Express.js
- MongoDB with Mongoose
- Socket.IO for WebSocket functionality
- QRCode for generating sharing codes
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- Clone the repository:
git clone [repository-url]
cd karaio- Install dependencies for both frontend and backend:
# Install backend dependencies
cd server
npm install
# Install frontend dependencies
cd ../client
npm install- Set up environment variables:
Create a .env file in the server directory with the following variables:
MONGODB_URI=your_mongodb_connection_string
PORT=3000
FRONTEND_URL=http://localhost:5173
- Start the backend server:
cd server
npm start- Start the frontend development server:
cd client
npm run devThe application will be available at http://localhost:5173
POST /api/jams/create- Create a new jam sessionPOST /api/jams/join-jam- Join an existing sessionGET /api/jams/:sessionId- Get session detailsPOST /api/jams/:sessionId/start- Start a jam session
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Spotify/Music service integration
- Custom room themes
- Performance scoring system
- Video/Audio streaming capabilities
- Chat functionality
- Custom avatar support