Preskoči na sadržaj

~/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.