← Back to all projects

Personal project4 min read

GDZ - Homework Solutions Platform

GDZ - Homework Solutions Platform

Tech stack

PythonAIChatGPTGeminiOCRTesseractPaddleOCRDoclingPix2TextGoogle Colab

Services

  • →AI content generation pipeline architecture (Python + ChatGPT + Gemini)
  • →Curriculum-aware prompt engineering per subject and grade
  • →Multi-locale platform setup and SEO configuration
  • →Automated CMS publication and sitemap generation
  • →Content validation pipeline for educational accuracy

Deliverables

  • ✓Thousands of structured homework solution pages across 3 locales (RU, PL, UA)
  • ✓Automated generation pipeline, new content added by updating curriculum input
  • ✓Organic search traffic from day one post-launch
  • ✓Three independently deployed locale-specific platforms

Challenge

GDZ (готовые домашние задания - ready homework solutions) is a well-established EdTech category in Russian-speaking markets. The opportunity: expand into Polish and Ukrainian markets where the same demand exists but supply is thin. The problem: producing enough high-quality, structured educational content to rank in search at scale is a massive content operation, far too slow and expensive to do manually.

Discovery

Analysing the content structure revealed that homework solutions follow predictable templates: subject and then grade , textbook, chapter, exercise and then solution with step-by-step explanation. The structure is consistent enough to be generated systematically. The variable is quality, LLMs needed careful prompting and validation to produce educationally sound answers rather than plausible-looking nonsense.

Options Considered

  1. Hire content writers per locale: rejected. Unit economics don't work at scale; quality variance between writers is high.
  2. Translate existing Russian content, partially used but insufficient. Polish and Ukrainian curricula differ; direct translation produces wrong answers.
  3. AI generation pipelines with curriculum-aware prompting: chosen. ChatGPT and Gemini with structured prompts tuned per subject and grade produce accurate, step-by-step solutions at the required scale.

Decision

Python pipelines consume curriculum data (textbook metadata, exercise lists) and generate solutions through ChatGPT and Gemini APIs. Output is validated against expected answer formats, structured into the site's data schema, and published to the appropriate locale domain. SEO metadata is generated alongside the content.

Implementation

Built a multi-stage pipeline: curriculum ingestion, prompt construction per subject/grade/exercise and then parallel LLM generation, structured output validation and then CMS publication. Each stage has error handling and a review queue for edge cases the validator flags. Different models are used per subject type: Gemini handles maths and sciences well; ChatGPT-4o performs better on humanities and language subjects.

Three locale-specific platforms launched: gdzclass.ru (RU), domowapraca.com (PL), padruchnik.com (UA). Each domain is independently deployed with locale-specific SEO configuration, internal linking structure, and sitemap generation.

OCR for Kazakh Textbooks

Adding new textbooks means digitising a lot of pages, and a share of them are in Kazakh. The off-the-shelf OCR engines handle that language poorly, so a single-engine pipeline was not going to carry it.

What worked was a combined solution: Tesseract and PaddleOCR together, each covering where the other fails. The Python code was debugged in Google Colab notebooks, which is simply faster to iterate in than a local setup.

Recognising a Kazakh-language page.

Results on rich text and tables, the layouts that break naive OCR first.

Digitising the Books

One of the tasks was to digitise the textbooks for recognition. We bought the originals and scanned them, but the scans came out too poor to recognise reliably, so each page went through a neural network that upscaled it several times over. The result was far easier for OCR to work with.

Original scan of a Kazakh-language test page: blurry, uneven letters
The same page after neural upscaling: sharp, even text ready for OCR

Before and after upscaling

Picking the OCR Stack

We tried several approaches and went through many libraries for the text itself: Tesseract, PaddleOCR, Docling, and Pix2Text with its separate models for formulas and tables. Plain text was the easy part. Tables and formulas were the real challenge: a layout model had to find them on the page before anything could be read, and formulas came back as LaTeX that often broke on scanned math.

Pix2Text configuration with separate models for layout, formulas, text and tables
A scanned math page annotated by the OCR: formulas recognised as LaTeX, many of them broken

Pix2Text setup and a math page it struggled with

Tables and the Kazakh Language

Tables took the most effort. What finally worked was a combined solution: one model recognised the table's structure, and another read the contents of each cell. Language made it harder still, because most of the books were in Kazakh and both Tesseract and PaddleOCR support it only partially, so the text itself also needed a combined setup where each engine covers the other's gaps.

Table on a scanned page: the layout model marks the grid and each cell as a separate region
Python debugger: Tesseract returning Kazakh words with a confidence score for each

Table structure detection and Tesseract output on Kazakh text

Pages like this one were a real nightmare: a formula, a table, an illustration and Kazakh text all on the same page. The final pipeline handled them in combination. Illustrations were detected and saved as separate images, formulas were converted to LaTeX notation, and tables went through a process of their own that first read the structure and then scanned each cell.

Kazakh combinatorics textbook page with formulas, a table of letter permutations, a chord diagram and text on one page
A page that combines everything at once

Outcome

Thousands of structured content pages published across three locales without proportional headcount growth. Organic search traffic began accruing from the first weeks post-launch as pages were indexed. The pipeline architecture allows new grades, subjects, or textbooks to be added by updating the curriculum input, with no code changes required.

Projects

Open for contract collaboration

I am available for contract-based collaboration. If you have an interesting project idea, schedule a call via Calendly.

Schedule a 30-min call