~/projekat
Iris: Aplikacija za operacije štamparije
Aplikacija za upravljanje operacijama za klijenta u štampariji, izgrađena kao monorepo sa Vite React web aplikacijom, Electron desktop klijentom i deljenim Go/SQLite API-jem.
- Go
- SQLite
- Docker
- Vite
- Electron
- React
- TypeScript
- Tailwind CSS v4
- shadcn/ui
- React Hook Form
- Zod
- Recharts
- Vitest
- electron-builder
Uloga: Samostalni · full-stack · Godina: 2026 - u toku · Status: u razvoju
ukratko: Operacije štamparije kroz web, desktop i API. Web klijent rukuje radnim nalozima, klijentima, lokacijama, dashboard-ima i javnim praćenjem; Electron aplikacija daje terminalima u štampariji tipizovan IPC put do istog Go backend-a. Lekcija: deljeni ugovori su važniji nego pretvarati da je svaki runtime isti proizvod.
Iris pokriva role-based auth, radne naloge, klijente, lokacije, javno praćenje narudžbina, dashboard reporting, tipizovan desktop IPC i Docker deployment.
Sažetak
- Uloga: Samostalni full-stack programer
- Tehnologije: Electron, React, TypeScript, Go, SQLite, Tailwind CSS, Recharts
- Izazov: Cross-platform desktop aplikacija za kompleksne poslovne tokove, pristup po ulogama i analitiku na klijentu sa apsolutnom tačnošću podataka.
Problem
Terminali u štampariji zahtevaju visoko-dostupne desktop aplikacije za obradu teških operativnih radnih naloga bez kašnjenja serverskog renderovanja. Cross-platform desktop proizvodi koji se integrišu sa starijim štampačkim hardverom a ostaju sinhronizovani sa web dashboard-ima su istorijski skloni greškama. Aplikacija mora garantovati da modifikacije stanja, detalji naplate i komande štampača teku pouzdano preko granica procesa bez degradacije podataka.
Ograničenja
- Zahtevi integriteta podataka: Narudžbine prolaze kroz kompleksne životne cikluse (od novog do završenog i fakturisanog). Tranzicije state machine-a moraju biti verifikovane lokalno i enforce-ovane preko backend API-ja.
- IPC bezbednosne granice: Electron main i renderer procesi moraju ostati strogo odvojeni da ne izlože Node.js system call-ove direktno UI sloju.
- Lokalizaciona ograničenja: UI mora prikazivati sadržaj za srpske operatere, što znači da status i kalkulacije valute zahtevaju lokalizovane formate (sr-Latn-RS) uz čiste database šeme.
Tehničke odluke
- Strogo tipizovan IPC most: Electron contextBridge expose-uje samo eksplicitno tipizovane IPC endpoint-e, wrap-ovane TypeScript ugovorima da eliminišu runtime serialization greške.
- React 19 + Vite 8 za desktop renderer: React najnovija arhitektura za responzivnu sinhronizaciju stanja na klijentu, Vite za ultra-brze inkrementalne build-ove.
- Go + SQLite backend: Go zbog brzine kompilacije i zero dependency footprint-a. SQLite za transakcionu pouzdanost i trivijalne file-based backup-e.
- Recharts za agregacije: Analitički agregati na klijentu (prihod, volumen narudžbina, redovi operatera) sa specijalizovanim memory buffer-ima, bez skupih ponovljenih DB upita.
Kompromisi i rezultati
- Lokalne klijentske kalkulacije naspram serverskih agregacija: Paginirani sirovi radni nalozi sa finansijskim agregacijama na klijentu kroz čiste JS utility-je. Značajno smanjen server CPU, jednostavniji API endpoint-i, uz nešto veći memorijski otisak na klijentu (~12MB dodatni runtime heap).
- Rezultati: Iris pakovan i isporučen za macOS, Windows i Linux preko electron-builder-a. Klijentski test suite visoke pokrivenosti na kritičnim prijavi i plaćanjima.