Welcome to QWIZ, an engaging and interactive quiz game where users can challenge themselves and compete on leaderboards. With a sleek design and intuitive user experience, QWIZ offers a fun way to test your trivia knowledge and see how you stack up against other players.
- Create & Join Rooms: Easily create a quiz room or join an existing one.
- Multiplayer Support: Play with friends and see who knows more.
- Real-Time Leaderboards: Track and compare your high scores with other players.
- Customizable Avatars & User Profiles: Personalize your profile and avatar.
- Dynamic Question Fetching: Fetch questions from the Open Trivia Database API.
- Variety of categories and difficulty: Lots of questions categories to chose from.
- WebSocket Integration: Real-time communication between clients and server.
- Efficient Concurrency: Utilizes Go's Goroutines for fast, scalable performance.
- Responsive Design: Beautifully optimized for both desktop and mobile devices.
- Database Integration: Utilizes MongoDB for storing user data, game rooms, and leaderboards.
-
Clone the repository:
git clone https://github.com/yourusername/qwiz.git cd qwiz -
Navigate to the frontend directory and install dependencies:
cd frontend npm install -
Start the development server:
npm start
The frontend application will be available at http://localhost:5173.
- Navigate to the backend directory:
cd backend - Install dependencies:
go mod tidy
- Run the application:
go run main.go
The backend server will be available at http://localhost:4000.
- Register and Log In:
- Use the provided interface to register a new account or log in with existing credentials.
- Play single player or multiplayer by creating or joining room:
- Select game settings and start the game.
- Create a new quiz room by providing a settings for fetching questions.
- Join an existing room using a unique room ID.
- Play and Compete:
- Answer questions in the quiz room and see your score update in real-time.
- Check the leaderboard to compare your performance with other players.
- React: A powerful JavaScript library for building dynamic user interfaces.
- Axios: A promise-based HTTP client for making requests to the backend API.
- Tailwind CSS: A utility-first CSS framework for creating custom designs quickly and efficiently.
- React Router: For handling navigation and routing within the application.
- Material-UI: A popular React UI framework for implementing pre-designed components.
- Go (Golang): The primary language used for the backend, known for its performance and simplicity.
- Goroutines: Leveraged for concurrent execution, enabling efficient handling of multiple tasks simultaneously.
- WebSockets: Used for real-time communication between the client and server, providing instant updates.
- MongoDB: A NoSQL database for storing user data, game rooms, and leaderboards. Offers flexible schema design and scalability.
- Gorilla WebSocket: A Go package for managing WebSocket connections.
- Open Trivia Database API: Provides trivia questions for the quiz game.
- Visual Studio Code: The primary code editor used for development.
- Postman: For testing and debugging API endpoints.
- Git: Version control system for tracking changes in the codebase.
QWIZ is deployed here



