LiveQuiz is an app that allows you to create awesome real time quizzes. It is powered by PubNub
- Create a quiz with questions and answers
- Create a quiz session and invite people
- Start the Quiz
- People can play the Quiz in realtime and see the results
- Ruby on Rails — The back end that allows to create quizzes is a Rails app.
- PubNub — The realtime communication layer that allows you to play the quizzes in realtime is PubNub. This app uses the Javascript and Ruby PubNub APIs. It uses PubNub Access Manager and Presence features to secure quizzes access and to allow to see the participants statuses.
- ReactJS — The quiz user interface is made with ReactJS and allows to display and refresh the realtime data received from the PubNub Network.
- PostgreSQL — The main data store is in Postgres.
Plus lots of Ruby Gems, a complete list of which is at /develop/Gemfile.
After you have cloned this repo, run this setup script to set up your machine with the necessary dependencies to run and test this app:
% ./bin/setup
It assumes you have a machine equipped with Ruby, Postgres, etc. If not, set up your machine with this script.
-
Create a PubNub account here and create an app.
-
Activate Access Manager and Presence feature.
-
Get your SECRET_KEY, PUBLISH_KEY and SUBSCRIBE_KEY and set them in the file .env.
There is an example in the .sample.env file :
PUBNUB_SECRET_KEY=XXXXXXXXXXXXX PUBNUB_PUBLISH_KEY=XXXXXXXXXXXX PUBNUB_SUBSCRIBE_KEY=XXXXXXXXXX
After setting up, you can run the application using foreman:
% foreman start
If you don't have foreman
, see Foreman's install instructions. It
is purposefully excluded from the project's Gemfile
.
Use the following guides for getting things done, programming well, and programming in style.
If you have previously run the ./bin/setup
script,
you can deploy to staging and production with:
$ ./bin/deploy staging
$ ./bin/deploy production
LiveQuiz is 100% free and open-source. You can find some features in the issues page