Inspiration In Uzbekistan, the large majority of public schools teach in Uzbek: of more than 10,000 public schools, roughly 9,000 use Uzbek as the language of instruction. But when a student wants to go further than the textbook (an online course, a video lesson, an olympiad problem, a university entrance guide), the material is usually in English or Russian. The hard part is rarely the science itself. A student can know perfectly well what ishqalanish is and still get stuck on a physics problem because they don't recognise the word friction. The vocabulary gap quietly locks capable students out of free, high-quality learning. It hits hardest where students have no access to tutors or paid language courses, which often means rural regions and families with fewer resources. There is a second, very Uzbek complication: the country is still moving from Cyrillic to Latin script, and the Latin spelling is not fully standardised yet. So older textbooks, parents' notes and newer materials often use different scripts for the same word. We wanted to build the smallest possible thing that removes that barrier: a bridge, which in Uzbek is Koʻprik. What it does Koʻprik has four parts: Paste any English problem, textbook paragraph or video transcript. Koʻprik highlights every science term it knows, including plurals and multi-word terms like "right triangle" or "electric current". Tap a term and a card shows it in Uzbek, Russian and English with a short, plain-language explanation in Uzbek. Practise. One tap turns the terms from that text into a 10-question quiz. There are four directions (Uzbek→English, Uzbek→Russian, English→Uzbek, Russian→Uzbek). A simple spaced-repetition system brings back missed words sooner and known words later, and shows how many terms are new, being learned or mastered. Three-language glossary. 92 core school terms across maths, physics, chemistry, biology and computer science. Search works in any of the three languages and in either Uzbek script, so typing kasr, каср, дробь or fraction all find the same entry. English and Russian pronunciation is available with one tap For teachers. A printable class glossary sheet by subject, with an optional blank notes column, for classrooms where students don't have phones or computers. The whole interface works in Uzbek or English, and a single toggle switches every Uzbek word between Latin and Cyrillic. Some explanations flag real traps for learners. For example, the entry for solution warns that in chemistry it means eritma but in a maths problem it means the answer (yechim). How we built it Koʻprik is a single self-contained HTML file written in plain HTML, CSS and JavaScript. We chose no framework and no server so that it loads fast on weak mobile connections, costs nothing to host, and can be saved and opened offline. Term detection: every English term and alias is expanded into its plural forms, sorted longest-first and combined into one regular expression, so "right triangle" is matched before "triangle". Uzbek Latin → Cyrillic: a rule-based transliterator that handles oʻ/gʻ, sh/ch, yo/yu/ya/ye, word-initial e → э, Russian loanword endings (evolyutsiya → эволюция, funksiya → функция) and protects formulas such as pH, H₂O and ρ = m/V from being converted. Spaced repetition: a Leitner-box model (boxes 1–5) stored in the browser's localStorage. No accounts, no data leaves the device. Pronunciation: the browser's built-in Web Speech API. Printing: a dedicated print stylesheet that prints only the glossary sheet. Testing: we used Playwright with headless Chromium to click through every feature, check for errors and take the screenshots. All 92 glossary entries (Uzbek, Russian and English terms plus explanations in Uzbek and English) were written for this project. Challenges we ran into Transliteration edge cases. Uzbek Cyrillic is not a letter-for-letter copy of Latin. "sikl" must become "цикл", "parol" must become "пароль", and "ketsa" must not get a "ц". We combined general rules with a small override list, then tested every term. Formulas and English words inside Uzbek text. Our first version happily turned "pH" into "пҲ". We added a protected-text marker so formulas and English words stay as they are. Words with two meanings. "Solution", "base" and "nucleus" mean different things in different subjects, so the explanations say so. Keeping it simple. It was tempting to add accounts and a backend. We kept it to one file so that any school can use it tomorrow. Accomplishments that we're proud of

  • It solves a real, specific problem that we see around us, not a generic one.
  • It works with no sign-up, no server and no internet after the page is saved.
  • It respects how Uzbek is actually written today, in both scripts.
  • It serves both students with phones and classrooms without them. What we learned We learned that for learners, the barrier to world-class free content is often a few dozen key words, not the ideas themselves. We also learned how much careful language work (script rules, false friends, words with double meanings) matters in an education tool. What's next for Koʻprik
  • Detect terms in Russian texts too (needs a stemmer for Russian word endings).
  • Add Karakalpak, Tajik and Kazakh for other language-minority students in the region.
  • Let teachers add their own terms and share a word list with their class via a link.
  • Have Uzbek-medium subject teachers review and grow the glossary. SDG alignment SDG 4: Quality Education** 4.1: helps students in Uzbek-medium secondary schools reach effective learning outcomes by giving them access to free, high-quality STEM material beyond their textbook. 4.4: builds the technical vocabulary students need for further STEM study and technical careers. 4.5: reduces a disparity based on language of instruction and location; students without tutors or paid courses get the same bridge, and the printable sheets reach students without devices. Sources: Expat Arrivals, "Education and schools in Uzbekistan" (number of Uzbek-medium public schools); AACRAO EDGE, Uzbekistan country profile (Cyrillic-to-Latin script transition).

Built With

Share this project:

Updates

Submission history