Skip to content

💡 Real-time multiplayer quiz platform to make learning fun, based on Kahoot and built with Rust and React.

Notifications You must be signed in to change notification settings

w-henderson/Kascreech

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Kascreech

Kascreech is a real-time multiplayer quiz platform to make learning fun, and certainly not a blatent rip-off of Kahoot. Built in Rust and React, Kascreech is a joint project between myself and flauntingspade4 which allows anyone to play a quiz with their friends. A production build of Kascreech can be found at kascreech.whenderson.dev.

How to Play

To select a quiz to play, visit Kahoot's discover page. Kascreech has no database, so relies on Kahoot to store the actual quizzes! Once you've selected a quiz, copy its ID from the address bar (it should look something like fb42b463-e549-4b18-a175-9ca8c510760a), select "Host" on Kascreech, and enter the ID. Then hit "Create", and you're good to go! From there onwards, everything works exactly like Kahoot.

How to Run

Prerequisites

  • Cargo and Rust
  • NPM and Node
  • This repository

Ensure the front-end dependencies are installed by running npm i in the client directory.

Running the Development Server

  1. Start the front-end by running npm start in the client directory.
  2. Start the server by running cargo run in the server directory. You can pass the address to bind it to as an argument, for example cargo run -- 0.0.0.0:8000 to run on port 8000.

Deploying to Production

  1. Build the React app for production by running npm run build in the client directory.
  2. Build the Rust back-end by running cargo build --release in the server directory.
  3. Deploy on your platform of choice.

Command-Line Arguments

Kascreech
William Henderson <[email protected]>
Real-time multiplayer quiz platform to make learning fun, based on Kahoot and written in Rust and React.

USAGE:
    kascreech [addr] [static]

    [addr]    The address to bind the server to. Defaults to `0.0.0.0:80`
    [static]  The path to the front-end's static files. Defaults to `./client/build`

Tech Stack

Client

Server

Cloudflare

Cloudflare is used to allow access to the WebSocket through HTTPS despite the Kascreech server itself not supporting it.

Screenshots

Desktop

Homepage screenshot Lobby screenshot
Question screenshot Leaderboard screenshot

Mobile

Homepage screenshot Question screenshot Result screenshot Placement screenshot