Case study12 / 18
Jsefer
School learning platform · WordPress LMS · support and new features
Jsefer is a learning platform for a network of schools. Teachers run lessons with PDF textbooks, audio, video and tests, and students see their progress and grades. Another developer built the first version in 2025, and from February to June 2026 I took over the theme and kept adding features.
- Role
- WordPress developer · support and new features
- Period
- Feb – Jun 2026
- Context
- Agency · RocketSEO
- Format
- Hybrid · Chișinău
- WordPress
- PHP
- ACF Pro
- WPML
- PDF.js
- PhpSpreadsheet
- Vanilla JS
The task
The platform already worked, but new schools needed it in their own language, teachers needed faster ways to find students, and the textbook viewer could not open some PDFs. All of this had to go into a large custom codebase without breaking lessons that schools were already using.
- An interface language for each school
- Faster search and filters for teachers and admins
- A lesson page and a textbook viewer that open every PDF
What I built
A language per school
- Added a language setting to every school, with Russian, Ukrainian, English and Georgian. The student and teacher interface follows the language of the school.
- Split the student page and general settings into ACF field groups per language (RU, EN and UK).
Lessons and textbooks
- Built a new lesson page template and reworked the single lesson view.
- Upgraded the PDF.js textbook viewer with its WebAssembly decoders, so scanned textbooks with JPEG 2000 images open too.
- Added a page that embeds tests in an iframe and extended lesson progress for students.
Tools for teachers and admins
- Transliterated name search, so a teacher finds a student whether the name is typed in Latin or Cyrillic.
- Rewrote the request that loads students by class for teachers and added filters to the admin lists.
- Improved the bulk import of students from XML and Excel files and the sync between student records and WordPress users.
- Readable links to student profiles and fixes in the student analytics module.
Outcome
- of my commits, Feb to Jun 2026
- 16
- interface languages, set per school
- 4
- content types in the platform
- 7
I kept the original architecture and built on top of it, so schools kept working through every update.