Many universities use randomized question pools to prevent cheating in examinations. While this type of selection ensures high academic integrity, it can also introduce problems in terms of fairness due to varying levels of difficulty in the exams that students receive.

This creates a negative loop:

Random selection → Unequal difficulty → Student stress and complaints → Continued randomization → Repeated unfairness

To break this loop, we designed a system to ensure that students are provided with fair exams.

The Problem

Using random exam generators, there is no control over the difficulty of the exams that are generated. It is possible for a student to receive an exam with all easy questions while another student receives an exam with mostly hard questions. This introduces unfairness into the examination process.

Problems caused by traditional exam random generators:

No control over exam difficulty

No guarantee of even topic coverage

Randomization does not ensure fairness

High potential for unfair grading

Our Solution

We created the Blueprint-Based Fair Exam Generator.

This system allows for the creation of exams by first creating a blueprint for the exam. This blueprint dictates:

Number of questions per topic

Number of questions per difficulty level

Size of the exam

The exam is then generated by randomly selecting questions to fit the constraints defined in the blueprint. This guarantees fairness in the exam creation process.

Difficulty Score = Σ difficultyi

Where:

Easy = 1

Medium = 2

Hard = 3

By specifying the total difficulty score, we ensure that all generated exams will have the same total difficulty score.

Key Features

Blueprint-controlled exam creation

Fairness ensured using difficulty score

Randomized exam generation

Cheating reduced using variant wording

Visual fairness metrics and comparisons

Frontend-only implementation (no backend)

How We Built It

Tech Stack

HTML, CSS, JavaScript, and JSON

Architecture

Question Pool (questions.json)

Blueprint Engine (app.js)

Fairness Algorithm

UI Layer

Core Algorithm Logic

Rather than simply randomly selecting questions from the question pool, we created an algorithm that first groups questions by topic and difficulty.

Then, using a controlled process, randomly selects questions that satisfy the constraints defined by the blueprint and difficulty score requirement. This ensures that every generated exam is both fair and adheres to the specified criteria.

Share this project:

Updates

Submission history