Giter Site home page Giter Site logo

andikandi / quizzduell Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 550 KB

QuizDuell Clone for you web browser. Build with React and TypeScript.

License: GNU General Public License v3.0

Shell 0.13% JavaScript 0.99% TypeScript 98.16% HTML 0.24% CSS 0.49%

quizzduell's Introduction

QuizzDuell

This project is intended to be a QuizDuell clone:

  • At the beginning of a game round the players choose in alternating order the category to which questions are asked.
  • Questions are generated from six categories and relate to topics from computer science.

Functionalities

Backend

  • Login and registration of new users (JWT).
  • REST-Api for creating, fetching, updating and deleting entities used in game.
  • Websockets for game status updates and messaging between friends.
  • Migration of questions from external Api.

Frontend

  • Games in progress are displayed in a list.
  • Rounds in pending and completed games are displayed in different colors depending on the number of correct answers.
  • Random opponents can be challenged via the "Matchmaking" button.
  • Players can change their icon displayed next to their username.
  • Friends are displayed in a list and can be searched and added.
  • Players can challenge their friends.
  • Player statistics like games played, ranking, best category, win ratio are displayed in a dashboard.
  • Player statistics can be displayed:
    • win ratio as a pie chart.
    • top ten leaderboard as a bar chart.

Used technologies

  • Docker
  • React
  • Typescript
  • Node.JS
  • TypeORM
  • Express.js
  • Socket.io

Getting Started

Follow the instructions to set up the system.

Prerequisites

  • Docker and Node.JS must be installed.

Installation with Docker

Create environment file:

  • cp ./packages/backend/.env.example ./packages/backend/.env

Install npm packages:

  • docker-compose run backend npm install

  • cd packages/frontend/

  • npm i

Start containers:

  • docker-compose up / docker-compose up -d

Sync database schema:

  • docker-compose exec backend npm run typeorm schema:sync

Exec migration:

  • docker-compose exec backend npm run typeorm:migration

Insert fixtures:

  • docker-compose exec backend npm run fixtures

How to play a game

  • Register a new user or login with an existing account
  • Press the "Matchmaking" button to play against a random active player or search for an existing player and challenge them directly

Credits

  • This pproject was created in cooperation with Abdelaziz Akkad, Stephan Harijan, and Rami Souai
  • This project is based on the finance-tracker project (https://code.fbi.h-da.de/fbi1483/fwe-ss-20-finance-tracker) by Daniel Schulz, Daniel Wohlfarth, Thomas Sauer.
  • The questions are based on: https://quizapi.io/

License

The project is licensed under GPL v.3 (gpl-3.0).

quizzduell's People

Contributors

andikandi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.