Skip to content
ClassQuiz system development
JavaScript HTML CSS Python TypeScript Makefile Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


CLASSQUIZ is a system that aims to increase the participation of students within high attendance classes, through the carrying of surveys.

The system developed consists of 3 main parts:

  • Individual Terminals, through which the students can answer the surveys;

  • A server, located within the classroom, which validates the students ID, their answers;

  • A web application, which allows the creating and execution of the surveys.


This project requires Python 3.6 or higher.


To install MySQL (version 5.6 or higher) on Ubuntu 18.04:

During installation, setup root's password as: password

Virtual Environment:

pip3 install virtualenv
cd project_folder
virtualenv venv

To activate the Virtual Environment:

source venv/bin/activate


After activating the Virtual Environment, run the following command to install the required packages:

pip3 install -r requirements.txt


With all the above set up, navigate to quiz_dev/django_quiz/ directory, containing the file, and run the following:

python3 makemigrations
python3 migrate
python3 makemigrations users
python3 migrate users
python3 makemigrations quiz
python3 migrate quiz


The commands required the Virtual Environment to be activated.

To create a new Super User:

python3 createsuperuser

To start the web application:

python3 runserver

To access the main page, open the browser and navigate to localhost:8000.

To access the admin page, open the browser and navigate to localhost:8000/admin.

You'll need to create a new Course within the admin page. After that, you'll need to associate it with an existing User by creating a new ProfileCourse.

When creating a new ProfileCourse, if the Profile option appears to be blank, you'll need to add a first and last name to the User. This can be done by editing it's Profile.

The CLASSQUIZ system will only work with it's dedicated terminals, and when connected to it's dedicated network.

Network credentials:


PASSWORD: password

Terminal Firmware Installation

To upload quiz_dev/firmware/firmware.ino to the terminal through Arduino IDE, you'll need to do the following:

  1. Install Arduino IDE and open it

  2. Go to File > Preferences

  3. Enter into the “Additional Board Manager URLs” field, then click ”OK”

  4. Go to Tools > Board > Board Manager

  5. Scroll down, select the ESP8266 board menu and install “esp8266”

  6. Choose your ESP8266 board from Tools > Board > NodeMCU 1.0 (ESP-12E Module)

  7. Install the package MFRC522 by GithubCommunity from Sketch > Include Libraries > Manage Libraries

  8. Following the previous step, install the package ESP8266RestClient by fabianofranca

  9. Finally, re-open your Arduino IDE

NOTE: Existing terminals are already updated.

Additional Notes

Since this project works without an Internet connection, JavaScript and CSS libraries usually obtained through CDN are already installed within the directory django_quiz/quiz/static/quiz/.

The file upload_template.xlsx is merely a template to help users upload previously created quizzes.

ClassQuiz Development Blog


Author: João Carlos da Silva moreira (


You can’t perform that action at this time.