Coder Social home page Coder Social logo

jeffreyquan / quizy-client Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 4.0 12.6 MB

React front end for clone of Kahoot!

Home Page: https://jeffreyquan.github.io/quizy-client/

HTML 1.70% CSS 1.03% JavaScript 80.02% SCSS 17.25%
react express socket-io scss material-ui mongodb mongoose

quizy-client's Introduction

Quizy

Table of Contents

Introduction

This project is a multiplayer quiz app inspired by Kahoot!. Kahoot! is a game-based learning platform that is interactive and makes learning fun. It was used during the Software Engineering Immersive course I had undertaken.

The gameplay is simple:

  • A quiz, created by a user, is hosted by a teacher or another person, which generates a game PIN. The game is shown on a common screen.
  • Players connect to the game using the PIN.
  • The common screen is used to display the questions that the players answer.
  • Points are awarded for correct answers. Also, the more timely a player answers correctly, the more points the player receives.
  • Scoreboards are updated and shown after every question.
  • When the game ends (i.e. there are no questions left), a Top 3 podium finish is shown and each player receives their own rank.

How to get started

Using my site

  1. Visit https://jeffreyquan.github.io/quizy-client/ and follow the links to host one of the existing quizzes or create your own.
  2. Click on "Host Game", which will generate a game that'll show a game PIN for other players to use their own devices to join the game. Hosting a game works best on a projector but will also work with any desktop or laptop screen.
  3. Test it out with this simple math quiz. Host using this link and join using this link.

To test locally

Feel free to clone this repository. The link to the server repository is: https://github.com/jeffreyquan/quizy-server.

After cloning:

In the client root directory in the terminal:

  1. Run npm install and
  2. Run PORT=3333 npm run start

This will run using our server which was deployed to Heroku. To run the back-end server locally, change to Heroku links to http://localhost:3000/ and run the following:

In the server root directory in the terminal:

  1. Run npm install and
  2. Run npm run start:dev

Motivation

I wanted to build something interactive and fun, that many users can be involved with at the same time in the same location. Furthermore, I loved the idea of a learning-based game that made it easier for students to learn.

Technologies

This project is created with:

Packages (React)

Packages (Node)

Key Feaures

  • Simple creation of quiz - simple quiz creation form that takes 4 multiple choice answers for each question. You can create a simple quiz to host within minutes.
  • Publicly available quizzes to host - quizzes that other people have created can be hosted
  • Multiplayer quiz games - friendly competition between players

Future Developments

These are following features I would like to add:

  • Validation - at the moment, quizzes can be created without a name and category. This can lead to bugs. I will be adding validation across the whole app on the front-end and back-end.
  • Edit questions - edit questions that have already been added during the creation of quizzes.
  • End quiz - end quiz button that allows the host to end a quiz early (for example, when a class is about to end and the quiz needs to finish).
  • Custom time for each question - default time set for each question is 20 seconds. I would like to allow the creation of a custom time, most likely increments of 10 seconds.
  • True or false questions - default answer options are 4 multiple choice answers. I would like to allow true or false questions.
  • Images to supplement questions - allowing users to add images to supplement questions when creating a quiz. This will be shown to players during a game.

There's so much more to add! Check out Kahoot! to test out their amazing platform.

Screenshots

Create a quiz

Create A Quiz - Details Create A Quiz - Questions Create A Quiz - Confirmation

All quizzes

Quizzes - Index

Quiz preview

Quiz - Preview

Game Play

Joining a game

Host - Empty Lobby Player - Join Game with PIN
Lobby - Empty Player - Join Game

After players have entered

Host - Filled Lobby Player joined successfully
Lobby - Players Joined Player - Instructions

Start of game

Host previewing quiz Player getting ready for first question
Quiz Preview Player - Get Ready

Question preview

Host previewing question Player preview showing question number
Host - Question Preview Player - Question Preview

Question and Answers

Host showing the question and answer options Player with answer buttons
Host - Question Block Player - Answers

Results

Host shows how many have selected each answer and the correct answer Player is given correct or incorrect result, as well as rank and streak (if correct)
Host - Results Player - Result - Correct

Scoreboard

Host shows scoreboard which gives the Top 5 ranked players and their scores

Host - Scoreboard

End of game

Podium finish Player's final rank
Host - Podiums Player - Final Rank

quizy-client's People

Contributors

dependabot[bot] avatar jeffreyquan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

quizy-client's Issues

license or terms of use

Hi Jeffrey,

Congrats on the super cool project here, Just tried it locally on my PC and works great. I would like to make use of it for some hosting games with friends and colleagues.

Is there some license or some terms of use that I could refer to if i plan to spend some time on it ?

Regards
Hari

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.