Skip to content

abby-ux/karaoke-jam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Kara.io - Where Karaoke Meets Party Games

(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.

Features

  • 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

Tech Stack

Frontend

  • React
  • React Router for navigation
  • Tailwind CSS for styling
  • Socket.io-client for real-time communication
  • shadcn/ui components for UI elements

Backend

  • Node.js
  • Express.js
  • MongoDB with Mongoose
  • Socket.IO for WebSocket functionality
  • QRCode for generating sharing codes

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB
  • npm or yarn

Installation

  1. Clone the repository:
git clone [repository-url]
cd karaio
  1. Install dependencies for both frontend and backend:
# Install backend dependencies
cd server
npm install

# Install frontend dependencies
cd ../client
npm install
  1. 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

Running the Application

  1. Start the backend server:
cd server
npm start
  1. Start the frontend development server:
cd client
npm run dev

The application will be available at http://localhost:5173

API Endpoints

Jam Sessions

  • POST /api/jams/create - Create a new jam session
  • POST /api/jams/join-jam - Join an existing session
  • GET /api/jams/:sessionId - Get session details
  • POST /api/jams/:sessionId/start - Start a jam session

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Future Enhancements

  • Spotify/Music service integration
  • Custom room themes
  • Performance scoring system
  • Video/Audio streaming capabilities
  • Chat functionality
  • Custom avatar support

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors