Logo Graziele
← Projects

Automatic Mock Exam Correction System

Developed for an educational institution and put into real use throughout an entire school year: 300 students and 30 mock exams. Corrections that previously took hours now take minutes, without sacrificing the transparency that the educational context demanded.

Python OpenCV NumPy Pillow Matplotlib Pandas fpdf2 pdfplumber pdf2image qrcode pyzbar Poppler

The Problem

Time

Grading and tabulating hundreds of answer sheets required hours of manual work, sometimes days. Teachers needed the data to plan upcoming lessons. Students needed the results to guide their studies. The process could not keep pace with the demands of exam preparation.

Scalability

Administering the same mock exam to different classes, with varying numbers of questions per year and exam type, required separate versions of the process. Any change had to be replicated manually for each class. Growth meant multiplying the problem.

Traceability

Grading the exam was only half the work. The other half — knowing which question the whole class missed, which subjects needed reinforcement, how a student's performance evolved across mock exams — was lost in paperwork or never done. The data existed. The structure to use it did not.

The Solution

The software manages the full cycle of a multiple-choice mock exam, from the blank sheet to the final report, in 6 fully automated steps with no manual intervention between them.

Real system output

1

Answer sheet generation

Each student receives a personalized sheet with their name, class, room, seat number, and a unique QR Code. No manual typing required: the sheet comes ready to print, with alignment markers that ensure accurate reading even from imperfect scans.

2

Automatic reading of the official answer key

The person in charge places the answer key PDF in the correct folder. The system extracts the answers automatically, displays them for confirmation, and allows questions to be voided with a single command — no need to type 80 answers one by one.

3

Batch processing of scanned PDFs

The scanned PDFs are converted to high-resolution images, identified by QR Code (the system reads the student's name directly from the sheet), and geometrically corrected to compensate for distortions and skew from scanning.

4

Computer vision grading

The algorithm detects which bubble was filled in for each question, handles double-marking and erasure cases, and generates annotated images: correct answers in green, incorrect in red with the right answer highlighted. Fully traceable and auditable.

5

Individual visual report per student

Individual PDF with professional charts: a gauge showing the score per subject, a comparative performance breakdown by subject, and the percentage of correct and incorrect answers. Ready to be delivered to the student or their parents.

6

Complete reports for teachers

One PDF per subject with the class ranking, alphabetical list with scores, question-by-question statistics, and a chart of students above and below average — everything a teacher needs to guide upcoming lessons.

A real problem, solved with technology.

What previously required days of manual work is now completed in minutes. Teachers receive the data they need to plan. Students receive the feedback they deserve to study. Every result recorded, organized, and ready to guide the next decision.

Stack

Computer Vision OpenCV NumPy Pillow
PDF Generation fpdf2
PDF Reading pdfplumber pdf2image Poppler
QR Code qrcode pyzbar
Charts Matplotlib
Data Pandas openpyxl
Concurrency ThreadPoolExecutor
Utilities json unicodedata re
Graded answer sheet