// projekat ·
Iris: Web aplikacija za operacije štamparije
Napravio sam jedno mesto za radne naloge, ljude i dnevni haos štamparije, sa React frontendom, Go API-jem i SQLite bazom.
Uloga: Samostalni · full stack · Godina: 2026 - u toku · Status: u razvoju
ukratko: Iris je aplikacija za operacije štamparije. React frontend koristi Go REST API koji pokriva prijavu, radne naloge, klijente, izveštaje, javno praćenje naloga i čuvanje podataka u SQLite bazi. Lekcija: OpenAPI, Go tipovi i TypeScript modeli moraju da se menjaju zajedno, inače se klijent razilazi sa backend-om.
Problem
Štamparija sa 15 zaposlenih vodila je radne naloge, klijente, rokove i naplatu u tabelama. Osoblju su trebali brzi tokovi u browser-u za sve to, a stanje naloga (novi, u radu, završen, fakturisan) moralo je da bude jasno bez ručnog prenošenja statusa od osobe do osobe.
Ograničenja
- Nalozi imaju životni ciklus. Svaki prelaz od novog do fakturisanog mora da izgleda isto u formama, tabelama, detaljima i dashboard-ima.
- Ugovori se razilaze. OpenAPI, Go domenski tipovi, TypeScript modeli, SQLite skladište i fixture-i moraju da se menjaju zajedno.
- Izolacija tenanata. Prijava i svaki upit drže korisnike i podatke svake štamparije unutar njenog tenanta.
- Operateri govore srpski. Statusi, datumi, valuta i labele u formama su lokalizovani, a da logika jezika ne curi u modele.
- Vodi je mala firma. Instalacija i backup moraju da budu nešto što vlasnik može sam.
Odluke
- Go API na
chi-ju sa OpenAPI ugovorom za prijavu, radne naloge, klijente, lokacije, katalog, podešavanja, izveštaje i javno praćenje. - HTTP-only session cookie-ji umesto tokena u skladištu browser-a.
- SQLite po tenantu sa migracijama šeme i Go CLI alatom za seed, CSV uvoz, upravljanje korisnicima i backup.
- React Hook Form sa Zod-om drži guste forme za naloge i naplatu brzim i validira ih prema oblicima koje API očekuje.
- Recharts dashboard-i za prihod, broj naloga, redove operatera i klijente kojima treba pažnja.
Ishod
Iris je zamenila tabele: pristup po ulogama, CRUD tokovi za naloge i klijente, PDF izveštaji radnih naloga, javno praćenje naloga i dashboard sa pet grafikona. Štampariji štedi više od 10 sati administracije nedeljno. Dva kompromisa su namerna. Agregacija za dashboard radi na klijentu, pa su se ekrani izveštaja brzo menjali. SQLite umesto servera baze drži instalaciju i backup praktičnim, a upiti po tenantu i migracije ostavljaju prostor za rast.
