A multiplayer quiz game with a retro 70's game show aesthetic, powered by GPT-4. Features dynamic question generation, real-time multiplayer support, and a virtual host (Mona Woolery) that provides witty commentary.
graph TB
    subgraph Frontend
        React[React App]
        Socket[Socket.IO Client]
        Router[React Router]
    end
    
    subgraph Backend
        Express[Express Server]
        SocketIO[Socket.IO Server]
        Redis[Redis]
        GPT4[GPT-4 API]
    end
    
    React --> Socket
    Socket --> SocketIO
    React --> Router
    Express --> SocketIO
    SocketIO --> Redis
    Express --> GPT4
    Express --> Redis
    - 🤖 GPT-4 powered question generation across various topics
- 🎮 Real-time multiplayer gameplay using Socket.IO
- 🎭 GitHub-based player registration with avatar integration
- 🎙️ Virtual host (Mona Woolery) providing dynamic commentary
- 📊 Live score tracking and leaderboard
- 🎯 Configurable game settings (number of questions, topics)
- 💾 Persistent game state with Redis
- 🏆 Round-by-round winner celebrations
- 🎪 Multiple game instances support
- 🔄 Automatic reconnection handling
- Frontend: React, Socket.IO Client, React Router
- Backend: Express.js, Socket.IO, Redis
- AI Integration: OpenAI GPT-4 API
- Authentication: GitHub API
- State Management: Redis
- Build Tools: Node.js, npm
- Testing: Jest, Testing Library
- Deployment: Docker, Docker Compose
- API Documentation
- Component Documentation
- Contributing Guidelines
- Deployment Guide
- Architecture Documentation
- Node.js 16+
- Redis server
- OpenAI API key
- GitHub API access
- 
Clone the repository: git clone https://github.com/cheeragpatel/quiz-game.git cd quiz-game
- 
Run the setup script: npm run setup 
- 
Configure environment: # Update .env with your keys OPENAI_API_KEY=your_key_here GITHUB_CLIENT_ID=your_client_id GITHUB_CLIENT_SECRET=your_client_secret REDIS_URL=redis://localhost:6379
- 
Start development servers: npm run dev 
- 
Build and start containers: docker-compose up --build 
- 
Access the application: - Frontend: http://localhost:3000
- Backend API: http://localhost:3001
 
- Access at /game-master
- Configure game settings
- Control game flow
- Monitor player progress
- Register at root URL
- Join using GitHub handle
- Answer questions
- View scores and rankings
- View at /game-show
- Watch live gameplay
- See leaderboard
- Enjoy host commentary
- Question count (5-50)
- Topic selection
- Time limits
- Scoring rules
- Theme customization
- Font preferences
- Animation settings
- Layout options
Run the test suite:
# All tests
npm test
# Backend tests
npm run backend:test
# Frontend tests
npm run frontend:testSee DEPLOYMENT.md for detailed instructions on:
- Server setup
- SSL configuration
- Environment variables
- Monitoring
- Backup procedures
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the ISC License.