DEV Community

Examinizer.net
Examinizer.net

Posted on

How I Built a Multilingual CEFR Language Testing Platform in PHP

When I started building Examinizer, the goal was simple: make
CEFR language certification accessible online without expensive
test centres.

The Stack

  • PHP 8.2 backend with MySQL 8.0
  • Static HTML/CSS/JS frontend (1000+ pages)
  • Python + ReportLab for PDF certificate generation
  • Claude AI API for adaptive testing and question classification
  • myPOS for EU payments

The Challenge: 13 Languages × 6 CEFR Levels

The biggest architectural decision was generating 126,000+
questions across 13 languages (EN, DE, FR, ES, IT, PT, TR,
AR, ZH, KO, BG, CS, PL) at all 6 CEFR levels (A1–C2).

We used Claude Haiku API to classify and generate questions
in batches, then stored them in MySQL with language/level tags.

Certificate Generation

Each certificate is generated server-side using Python +
ReportLab. The pipeline:

  1. User passes test → PHP triggers cert queue
  2. Python generates PDF with QR code
  3. PDF delivered by email within 30 seconds

The QR code links to our public verification page where
employers can instantly verify the certificate.

AI Adaptive Testing

Our AI Adaptive Test uses Claude API to dynamically adjust
question difficulty based on user responses. If you answer
B2 questions correctly, the system escalates to C1.

This gives a more accurate level assessment than fixed
25-question tests.

Results

  • 13 languages live
  • 1,000+ pages indexed
  • Users from 50+ countries
  • Certificate issued in under 30 seconds

Try it at examinizer.net

Top comments (0)