Personal project4 min read
GDZ - Homework Solutions Platform

Tech stack
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
- Hire content writers per locale: rejected. Unit economics don't work at scale; quality variance between writers is high.
- Translate existing Russian content, partially used but insufficient. Polish and Ukrainian curricula differ; direct translation produces wrong answers.
- 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.


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 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 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.

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.
Related
Projects

Traffic Connect, AI Content Orchestration for WordPress Sites
Before: AI article generation had to be run across many WordPress sites, with no single place to control it. After: one admin dashboard queues tasks for every site, and each site picks up its own work through a plugin, built from scratch in about a month.

PREZA, School Presentation Sites with 80,000+ Generated PDFs
Before: school presentation sites needed tens of thousands of ready files that nobody could produce by hand. After: grabbers, parsers and automated multi-threaded generation produced more than 80,000 PDFs, stored in Selectel cold S3 and published on preza.kz and preza.top.

AtomPk Grabber - Product Lists into CSV on Demand
Before: a partner needed the product list off a website collected into CSV again and again, by hand. After: a double-clickable executable that walks the catalogue and writes the CSV, with no Python to install and nothing to configure.
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