Svi projekti

sirom.app

Razvio sam i pokrenuo aplikaciju za učenje jezika kroz kulturu. Sadržaj se pažljivo bira sa fokusom na region i njegovu kulturu: ljude, mesta, tradicije i događaje. Tekstovi se prilagođavaju nivou čitaoca, a prevod na klik, rečnik i kartice objedinjeni su u jednom interfejsu. Počeo sam od čitanja, a slede novi formati.

Uloga
Proizvod, bekend, frontend, dizajn, infrastruktura
Jezici
Srpski, ruski, engleski
Status
Radi i razvija se
Otvori sirom.app

Kako pristupam projektu

Skuplje ne znači bolje

Uporedio sam više od 20 AI modela na konkretnom zadatku. Najbolji kvalitet pokazao je model koji je bio daleko od najskupljeg. Gotovi rezultati se čuvaju i ponovo koriste, a ograničenja štite od neočekivanih računa.

Prvo ono najvažnije

Iz prve verzije sam izostavio sporedne funkcije i usredsredio se na osnovni tok: čitanje, prevod, rečnik i ponavljanje. Taj tok odredio je redosled razvoja i dalja unapređenja proizvoda.

Ekonomika pre pokretanja

Izračunao sam troškove generisanja, prevođenja i audio čitanja i procenio uslove isplativosti. Ti proračuni odredili su arhitekturu i prioritete razvoja proizvoda.

Šta je urađeno

Sadržaj koji pomaže čitaocima da se snađu

Definisao sam kriterijume za izbor tekstova o ljudima, mestima, tradicijama i događajima, sa fokusom na region. Čitaoci uče jezik kroz teme bliske izvornim govornicima i istovremeno upoznaju kulturni kontekst.

Prilagođavanje osobenostima svakog jezika

Definisao sam zahteve za složenost i dužinu teksta za svaki CEFR nivo. Osobenosti srpskog, ruskog i engleskog izdvojio sam u zasebne jezičke pakete, kako bi prilagođavanje uzimalo u obzir svaki jezik pojedinačno. Automatske provere strukture, dužine i mešanja pisama odbacuju neispravne rezultate pre prikaza korisniku.

Izbor modela na konkretnom zadatku

Uporedio sam više od 20 modela i režima na skupu tekstova na srpskom. Rezultate je ocenjivao panel AI ocenjivača, prethodno proveren na tekstovima sa namerno unetim greškama. Modele za prilagođavanje i prevod izabrao sam prema kvalitetu, brzini i ceni.

Prevod na zahtev i zajednički keš

Za svaki jezički par pripremio sam zasebna uputstva za prevod, uzimajući u obzir osobenosti izvornog i ciljnog jezika. Prevod se radi po rečenicama u kontekstu članka. Reči i izrazi čuvaju se u zajedničkom kešu, pa se ponovljeni prevodi prikazuju brže i ne zahtevaju nove AI pozive.

Od čitanja do ponavljanja

Povezao sam čitanje, lični rečnik i kartice sa razmaknutim ponavljanjem. Reči se čuvaju sa prevodom i izvornom rečenicom, a čitaoci sami biraju šta žele da ponavljaju.

Kontrola troškova i opterećenja

Dodao sam praćenje AI troškova i vremena odziva. Ograničenja novih prevoda štite budžet servisa, dok sačuvani prevodi ne troše limit. Prijava putem mejla ima zasebna ograničenja.

Interfejs za čitanje na telefonu

Osmislio sam interfejs za telefon: prevod pored izabrane reči, upravljanje karticama pokretima prsta i brz izbor jezika i nivoa. Napravio sam vizuelni identitet aplikacije — od nacrta do logotipa.

Od razvoja do pokretanja

Razvio sam frontend, API i bazu podataka i podesio migracije i postavljanje na server. Servisi se pokreću pomoću Docker Compose-a, a podaci ostaju sačuvani pri ažuriranju aplikacije.

Tehnologije

Frontend

  • Next.js
  • TypeScript

Backend

  • Python
  • FastAPI
  • PostgreSQL
  • Alembic
  • Redis

LLM

  • Anthropic
  • OpenAI
  • DeepSeek

Infrastruktura

  • Docker Compose
  • Caddy
  • Rate limiting

Šta sledi

  • Asistent za čitanje koji odgovara na pitanja o tekstu u skladu sa nivoom čitaoca
  • Audio čitanje reči i članaka
  • Učenje jezika uz YouTube video-snimke sa prevodom reči i izraza
  • Stranice članaka na više jezika za bolju vidljivost u pretrazi
backSvi projektiOtvori sirom.app